安装Oracle数据库速成版11g的问题

我正在尝试使用本指南在(X)ubuntu 13.04 64位中安装Oracle数据库。 一切顺利,直到我到了以下步骤:

$ 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 

我究竟做错了什么?

我在同一条船上,尝试在虚拟机上配置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

其他的诡计

  • 如果日志文件夹中没有错误文件,则可以不加h标志地重新安装XE,如下所示:

    • 找到你的软件包: sudo rpm -qa | grep -i oracle 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

哦,用你的版本替换(oracle-xe-11.2.0-1.0.x86_64.rpm)。 干杯;)

 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并启动数据库

检查你的/ etc / hosts文件。 它应该看起来像

127.0.0.1 localhost.localdomain localhost hostname.domain主机名

http://blog.christian-stankowic.de/?p=5276&lang=en

我也为此而挣扎。 我尝试了几个不同的解决方案,但仍然有问题。 我通过从数据库配置中删除memory_target来“修复”它:

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

在memory_Target的前面添加#,保存并关闭文件。

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

这个解决方案与我的XE数据库很好,希望它有帮助。

我有这个确切的问题与Ubuntu 14.04。 问题归结为Oracle-XE在/ dev / shm期望足够的空间,而Ubuntu已经更改为使用/运行/ shm从/ dev / shm的符号链接。

为我工作的解决方案是创建文件/etc/rc2.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的许多其他页面类似的东西,但是这个解决方案是唯一的&#x3002;

PS。 文件权限设置为755,因此您需要执行:

sudo chmod 755 /etc/rc2.d/S01shm_load

在这个文件上设置权限。

这个链接看起来像是有答案的。 您需要确保/ dev / shm安装在您的系统上,并将其分配给至少MEMORY_TARGET的内存。

您可以通过将以下内容添加到您的fstab并重新启动。 (这将设置/ dev / shm大小为2GB):

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

有几个软件包需要先安装,还有一些内核参数必须在实际启动数据库之前进行更改。 请参阅Oracle的Linux安装指南,或者搜索Google,以获取Ubuntu上Oracle 11gR2 XE的特定指南。