安装 Oracle 数据库快捷版 11g 的问题
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16545412/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Problems installing Oracle Database Express Edition 11g
提问by Remco Haszing
I'm trying to install Oracle Database in (X)ubuntu 13.04 64-bit using this guide. Everything goed well until I get to the following step:
我正在尝试使用本指南在 (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
The log files show the following output:
日志文件显示以下输出:
:/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
What am I doing wrong?
我究竟做错了什么?
回答by kodeart
I was in the same boat, trying to configure XE on a virtual machine (openSUSE13.01 64bit).
我在同一条船上,试图在虚拟机(openSUSE13.01 64bit)上配置 XE 。
The solution in my case was the missing hostname in /etc/hosts
.
You can examine the errors in /u01/app/oracle/product/11.2.0/xe/config/log/CloneRmanRestore.log
at the very beginning (the path depends on your XE version).
在我的情况下,解决方案是/etc/hosts
. 您可以/u01/app/oracle/product/11.2.0/xe/config/log/CloneRmanRestore.log
在最开始检查错误(路径取决于您的 XE 版本)。
Search for an info similar to:
ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=linux-cn65.site)(PORT=1521))
搜索类似于以下内容的信息:
ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=linux-cn65.site)(PORT=1521))
So linux-cn65.site(the VM host) was missing. Add your host in /etc/hosts (as root):
所以linux-cn65.site(VM 主机)丢失了。在 /etc/hosts 中添加您的主机(以 root 身份):
127.0.0.1 linux-cn65.site
<-- your host here
127.0.0.1 linux-cn65.site
<-- 你的主人在这里
and run the configuration again (as root): sh /etc/init.d/oracle-xe configure
并再次运行配置(以 root 身份): sh /etc/init.d/oracle-xe configure
Additional trickery
额外的诡计
if you do not have the error files in the log folder, you may re-install XE without hflag, like this:
- to find your package:
sudo rpm -qa | grep -i oracle
- to remove it:
sudo rpm -e oracle-xe-11.2.0-1.0.x86_64
<-- your package here
- to find your package:
install again without h flag:
sudo rpm -iv oracle-xe-11.2.0-1.0.x86_64.rpm
如果日志文件夹中没有错误文件,则可以重新安装不带h标志的XE ,如下所示:
- 找到您的包裹:
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, replace the version (oracle-xe-11.2.0-1.0.x86_64.rpm) with yours. Cheers ;)
哦,用你的版本替换(oracle-xe-11.2.0-1.0.x86_64.rpm)。干杯;)
回答by Laurent B
nano /etc/init.d/oracle-shm
add text
添加文字
#! /bin/sh
# /etc/init.d/oracle-shm
#
case "" 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
make the file executable
使文件可执行
chmod 755 /etc/init.d/oracle-shm
/etc/init.d/oracle-shm start
At this stage reboot, then check
在这个阶段重启,然后检查
df -kh /dev/shm
further proceed to emulate chkconfig and continue with rest of configuration and install
进一步模拟 chkconfig 并继续其余的配置和安装
dpkg -i oracle-xe-11.2.0-1.0.x86_64.deb
Check the environment variables and ORACLE_HOME and start database
检查环境变量和 ORACLE_HOME 并启动数据库
回答by davioncheg
Check your /etc/hosts file. It should looks like
检查您的 /etc/hosts 文件。它应该看起来像
127.0.0.1 localhost.localdomain localhost hostname.domain hostname
127.0.0.1 localhost.localdomain localhost 主机名.domain 主机名
回答by Marius
I struggled with this too. I have tried a few different solutions, but still got the problem. I "fixed" it by removing memory_target from the database configuration:
我也为此苦苦挣扎。我尝试了几种不同的解决方案,但仍然遇到问题。我通过从数据库配置中删除 memory_target 来“修复”它:
sqlplus / as sysdba
create pfile=‘<path>' from spfile
!vi <path>
Add # in front of the line with memory_Target, save and close file.
在带有memory_Target的行前添加#,保存并关闭文件。
startup from pfile=‘<path>'
create spfile from pfile=‘<path>'
This solution works nice with my XE database, hope it helps.
此解决方案适用于我的 XE 数据库,希望对您有所帮助。
回答by Ken Riley
I had this exact issue with Ubuntu 14.04. The issue came down to Oracle-XE expecting sufficient space at /dev/shm while ubuntu has changed to using /run/shm with a symlink from /dev/shm.
我在 Ubuntu 14.04 上遇到了这个问题。问题归结为 Oracle-XE 期望 /dev/shm 有足够的空间,而 ubuntu 已更改为使用带有 /dev/shm 符号链接的 /run/shm。
The solution that worked for me was to create the file /etc/rc2.d/S01shm_load containing:
对我有用的解决方案是创建文件 /etc/rc2.d/S01shm_load 包含:
#!/bin/sh
case "" 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
I got this from http://sysadminnotebook.blogspot.de/2012/10/installing-oracle-11g-r2-express.htmlwhich is similar to many other pages on installing XE but was the only one with this solution.
我从http://sysadminnotebook.blogspot.de/2012/10/installing-oracle-11g-r2-express.html得到了这个,它类似于安装 XE 的许多其他页面,但它是唯一一个有这个解决方案的页面。
PS. The file permissions are set at 755 so you will need to execute:
附注。文件权限设置为 755,因此您需要执行:
sudo chmod 755 /etc/rc2.d/S01shm_load
sudo chmod 755 /etc/rc2.d/S01shm_load
to set the permissions on this file.
设置此文件的权限。
回答by antlersoft
This link looks like it has the answer.You need to make sure that /dev/shm is mounted on your system, and assign it memory of at least MEMORY_TARGET.
这个链接看起来有答案。您需要确保 /dev/shm 已安装在您的系统上,并为其分配至少 MEMORY_TARGET 的内存。
You can do this by adding the following to your fstab, and rebooting. (This will set the /dev/shm size to 2gb):
您可以通过将以下内容添加到 fstab 并重新启动来完成此操作。(这会将 /dev/shm 大小设置为 2gb):
shmfs /dev/shm tmpfs size=2048m 0 0
回答by ELadner
There are several packages that need to be installed first, plus some kernel parameters that have to be changed before you can actually start the database. Consult Oracle's installation guide for Linux, or search Google for specific guides for Oracle 11gR2 XE on Ubuntu.
有几个包需要先安装,加上一些内核参数,在你真正启动数据库之前必须改变。请参阅 Oracle 的 Linux 安装指南,或在 Google 上搜索有关 Ubuntu 上 Oracle 11gR2 XE 的特定指南。