Проблемы с установкой Oracle Database Express Edition 11g - программирование

Проблемы с установкой Oracle Database Express Edition 11g

Я пытаюсь установить Oracle Database в (X) ubuntu 13.04 64-bit, используя это руководство. Все прошло хорошо, пока я не перешел к следующему шагу:

$ sudo /etc/init.d/oracle-xe configure

Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express 
Edition.  The following questions will determine whether the database should 
be starting upon system boot, the ports it will use, and the passwords that 
will be used for database accounts.  Press <Enter> to accept the defaults. 
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of 
different passwords for each database account.  This can be done after 
initial configuration:
Confirm the password:

Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:

Starting Oracle Net Listener...Done
Configuring database...
Database Configuration failed.  Look into /u01/app/oracle/product/11.2.0/xe/config/log for details

В файлах журналов отображается следующий вывод:

:/u01/app/oracle/product/11.2.0/xe/config/log$ for l in *.log
> do
> echo $l
> cat $l
> done
cloneDBCreation.log
Create controlfile reuse set database "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


BEGIN dbms_backup_restore.zerodbid(0); END;

*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
ORA-00845: MEMORY_TARGET not supported on this system
Create controlfile reuse set database "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter system enable restricted session
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter database "XE" open resetlogs
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter database rename global_name to "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter system switch logfile
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter system checkpoint
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter database drop logfile group 3
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/XE/temp.dbf' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


select tablespace_name from dba_tablespaces where tablespace_name='USERS'
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


select sid, program, serial#, username from v$session
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter user sys identified by "oracle"
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter user system identified by "oracle"
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


alter system disable restricted session
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


CloneRmanRestore.log
ORA-00845: MEMORY_TARGET not supported on this system
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


declare
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


postDBCreation.log
begin
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 



File created.

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
ORA-00845: MEMORY_TARGET not supported on this system
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


BEGIN utl_recomp.recomp_serial(); END;

*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


postScripts.log
CREATE OR REPLACE LIBRARY dbms_sumadv_lib AS '/u01/app/oracle/product/11.2.0/xe/lib/libqsmashr.so';
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


BEGIN dbms_datapump_utl.replace_default_dir; END;

*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


commit
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


create or replace directory XMLDIR as '/u01/app/oracle/product/11.2.0/xe/rdbms/xml'
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


DROP DIRECTORY ORACLE_OCM_CONFIG_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


DROP DIRECTORY ADMIN_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


DROP DIRECTORY WORK_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


BEGIN dbms_swrf_internal.cleanup_database(cleanup_local => FALSE); END;

*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 


commit
*
ERROR at line 1:
ORA-01034: ORACLE not available 
Process ID: 0 
Session ID: 0 Serial number: 0 

Что я делаю неправильно?

4b9b3361

Ответ 1

Я был в одной лодке, пытаясь настроить XE на виртуальной машине ( openSUSE 13.01 64 бит).

В моем случае решением было отсутствующее имя хоста в /etc/hosts. Вы можете проверить ошибки в /u01/app/oracle/product/11.2.0/xe/config/log/CloneRmanRestore.log в самом начале (путь зависит от вашей версии XE).

Найдите информацию, похожую на: ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=linux-cn65.site)(PORT=1521))

Так что linux-cn65.site (хост VM) отсутствует. Добавьте хост в /etc/hosts (с правами root):

127.0.0.1 linux-cn65.site < - ваш хост здесь

и снова запустите конфигурацию (с правами root): sh /etc/init.d/oracle-xe configure

Дополнительная обман

  • Если у вас нет файлов ошибок в папке журнала, вы можете повторно установить XE без h, например:

    • чтобы найти ваш пакет: sudo rpm -qa | grep -i oracle
    • чтобы удалить его: sudo rpm -e oracle-xe-11.2.0-1.0.x86_64 < - ваш пакет здесь
  • установить снова без флага h: sudo rpm -iv oracle-xe-11.2.0-1.0.x86_64.rpm

oh, замените версию (oracle-xe-11.2.0-1.0.x86_64.rpm) на вашу. Приветствия;)

Ответ 2

nano /etc/init.d/oracle-shm

добавить текст

#! /bin/sh 
# /etc/init.d/oracle-shm 
# 
case "$1" in 
start) 
echo "Starting script /etc/init.d/oracle-shm" 
# Run only once at system startup  
if [ -e /dev/shm/.oracle-shm ]; then 
echo "/dev/shm is already mounted, nothing to do" 
else 
rm -f /dev/shm 
mkdir /dev/shm 
mount --move /run/shm /dev/shm 
mount -B /dev/shm /run/shm 
touch /dev/shm/.oracle-shm 
fi 
;; 
stop) 
echo "Stopping script /etc/init.d/oracle-shm" 
echo "Nothing to do" 
;; 
*) 
echo "Usage: /etc/init.d/oracle-shm {start|stop}" 
exit 1 
;; 
esac 
# 
### BEGIN INIT INFO 
# Provides: oracle-shm 
# Required-Start: $remote_fs $syslog 
# Required-Stop: $remote_fs $syslog 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: Bind /run/shm to /dev/shm at system startup. 
# Description: Fix to allow Oracle 11g use AMM. 
### END INIT INFO

сделать исполняемый файл

chmod 755 /etc/init.d/oracle-shm
/etc/init.d/oracle-shm start

На этом этапе перезагрузитесь, затем проверьте

df -kh /dev/shm

продолжите эмуляцию chkconfig и продолжите с остальной конфигурацией и установите

dpkg -i oracle-xe-11.2.0-1.0.x86_64.deb

Проверьте переменные среды и ORACLE_HOME и запустите базу данных

Ответ 4

Я тоже боролся с этим. Я пробовал несколько разных решений, но все еще проблема. Я "исправил" его, удалив memory_target из конфигурации базы данных:

sqlplus / as sysdba
create pfile=‘<path>’ from spfile 
!vi <path>

Добавьте # перед строкой с memory_Target, сохраните и закройте файл.

startup from pfile=‘<path>'
create spfile from pfile=‘<path>’

Это решение отлично работает с моей базой данных XE, надеюсь, что это поможет.

Ответ 5

У меня была эта точная проблема с Ubuntu 14.04. Проблема сводилась к тому, что Oracle-XE ожидал достаточного пространства в /dev/shm, в то время как ubuntu изменился на использование /run/shm с символической связью из /dev/shm.

Решением, которое работало для меня, было создание файла /etc/rc 2.d/S01shm_load, содержащего:

#!/bin/sh
case "$1" in
start)
    mkdir /var/lock/subsys 2>/dev/null
    touch /var/lock/subsys/listener
    rm /dev/shm 2>/dev/null
    mkdir /dev/shm 2>/dev/null
    mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
*)
    echo error
    exit 1
    ;;    
esac

Я получил это от http://sysadminnotebook.blogspot.de/2012/10/installing-oracle-11g-r2-express.html, который похож на многие другие страницы при установке XE, но был единственным с этим решением.

PS. Разрешения для файлов установлены на уровне 755, поэтому вам необходимо выполнить:

sudo chmod 755 /etc/rc2.d/S01shm_load

чтобы установить разрешения для этого файла.

Ответ 6

Эта ссылка выглядит так, как будто у нее есть ответ. Вам нужно убедиться, что /dev/shm смонтирован в вашей системе и назначил его память не менее MEMORY_TARGET.

Вы можете сделать это, добавив следующее в свой fstab и перезагрузив. (Это установит размер /dev/shm на 2gb):

shmfs /dev/shm tmpfs size=2048m 0 0

Ответ 7

Вначале необходимо установить несколько пакетов, а также некоторые параметры ядра, которые необходимо изменить, прежде чем вы сможете запустить базу данных. Ознакомьтесь с руководством по установке Oracle для Linux или найдите в Google конкретные руководства для Oracle 11gR2 XE на Ubuntu.