安装Oracle Database Express Edition 11g时出现问题

时间:2013-05-14 14:07:30

标签: oracle ubuntu

我正在尝试使用this guide在(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 

我做错了什么?

7 个答案:

答案 0 :(得分:28)

我在同一条船上,试图在虚拟机上配置XE( openSUSE 13.01 64bit)。

我的案例中的解决方案是/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&lt; - 您的主人

再次运行配置(以root身份):sh /etc/init.d/oracle-xe configure

额外的诡计

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

    • 找到您的包裹:sudo rpm -qa | grep -i oracle
    • 将其删除:sudo rpm -e oracle-xe-11.2.0-1.0.x86_64&lt; - 您的包裹
  • 在没有h标志的情况下再次安装:sudo rpm -iv oracle-xe-11.2.0-1.0.x86_64.rpm

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

答案 1 :(得分:8)

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

答案 2 :(得分:2)

检查/ etc / hosts文件。它看起来应该是

127.0.0.1 localhost.localdomain localhost hostname.domain hostname

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

答案 3 :(得分:2)

我也在努力解决这个问题。我尝试了一些不同的解决方案,但仍然遇到了问题。我&#34;修复&#34;它通过从数据库配置中删除memory_target:

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

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

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

此解决方案适用于我的XE数据库,希望它有所帮助。

答案 4 :(得分:2)

我对Ubuntu 14.04有这个问题。问题归结为Oracle-XE期望在/ dev / shm中有足够的空间,而ubuntu已经改为使用带有/ dev / shm的符号链接的/ run / 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的许多其他页面类似,但是唯一一个有此解决方案的页面。

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

sudo chmod 755 /etc/rc2.d/S01shm_load

设置此文件的权限。

答案 5 :(得分:1)

This link looks like it has the answer.您需要确保在您的系统上安装/ dev / shm,并为其分配至少MEMORY_TARGET的内存。

您可以通过在fstab中添加以下内容并重新启动来完成此操作。 (这会将/ dev / shm大小设置为2gb):

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

答案 6 :(得分:0)

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