$ORACLE_HOME/bin/dbstart 启动数据库,使用 $ORACLE_HOME
/bin/dbshut 停止数据库。甚至可以将 $ORACLE_HOME/bin/dbstart 写入 /etc/rc.d/rc.
local 启动脚本,当系统启动时,自动启动数据库。为了使 $ORACLE_HOME/bin/dbstart
和 $ORACLE_HOME/bin/dbshut 正常工作,需要将 /etc/oratab 文件中第 3 个字段的
值由 N 改为 Y。
例如,
Oracle SID 是 test,/etc/oratab 相关行由
test:/opt/oracle/product/9.2.0:N
变为
test:/opt/oracle/product/9.2.0:Y
在一些情况下,为了使 dbstart 和 dbshut 正常工作,不得不将 SID test 的初始化文件从
/opt/oracle/admin/test/pfile 拷贝到 $ORACLE_HOME/dbs 目录:
cp /opt/oracle/admin/test/pfile/inittest.ora.643 $ORACLE_HOME/dbs/inittest.ora
但是,在拷贝之前,先确认初始化文件是否已经在 $ORACLE_HOME/dbs 中存在!
第 18 页
为了完全整合 Oracle 9i 到 Red Hat 8 Sys V 初始化进程,请查看 http://www.gurulabs.
com。“Oracle 9i RHL Run Package” 是基于 Suse 提供的 GPLd RPM,但做了很多尽可能
与 Red Hat 的无缝连接的修改。
Oracle
安装问题,技巧和提示 (Oracle Installation
Problems, Tips and Hits)
这里列出的问题一些仅出现于 9.0.1!
不要切换目录至 /mnt/cdrom,运行 ./runInstaller
如果这样做了,安装过程将因为不能更换光盘而失败。
如果忘记了设置 DISPLAY 环境变量(如 export DISPLAY=oracleserver:0.0),或者忘
记了授权给远程控制台 -- Oracle 服务器 -- 在桌面 PC 上显示 X 信息(如 xhost
+oracleserver),那么将出现如下错误:
Xlib:connection to “:0.0” refused by
serverXlib:Client is not authorized to connect to Server
这种情况下,不得不杀死仍然在后台运行的 runInstaller 进程。如果不这样做,
runInstaller 将不再提示错误,也不出现安装界面。还要清除 /tmp/OraInstall 目录。
当 runInstaller 开始配置工具 (“Configuration Tools”),Oracle Net Configuration
Assistant 有时会挂起。可以停止该步再重新运行;或继续安装,当安装完成,再重试
Oracle Net Configuration Assistant。
当系统在安装过程中停止响应,尤其是在数据库创建过程中,这可能是由于没有足够的
内存或交换空间。当没有足够的交换空间,我遇到了几分钟响应迟钝或“挂起”。如果
出现这种情况,等待直到系统再次响应为止。
Oracle 安装过程也运行 make 等。在生产环境下,可能没有编译器 (compiler) 或未
安装其它开发包。所以请在安装前确认 gcc, cpp, glibc-devel, compat-libstdc++,
kernel-headers (RH 7.1, 7.2, AS 2.1), glibc-kernheaders (RH 7.3, 8.0, 9), binutils 已安装。
如果因为其它原因安装过程没有成功,请在再次运行之前,清除以下文件和目录:
/etc/oraInst.loc /etc/oratab /tmp/ $ORACLE_BASE/*
其它问题,可以查看 “Oracle on Linux Discussion Forum” (http://www.oracle.com/
forums/forum.jsp?forum=135)
Oracle 安装错误 (Oracle Installation Errors)
这里罗列了 Oracle 9i (9.0.1 & 9.2.0) 安装过程中出现的错误和问题。一些错误和问题及其
解决办法仅出现于 9.0.1 的安装过程中,一些 9.2.0 存在。因为我没有遇到所有的问题,
所以我不能核实所有解决办法的正确性,然而,这里列出所有出现的问题。如果你遇到了其
它问题,而且你无法解决,请发邮件通知我 (webmaster@puschitz.com),以便于我增加到
列表中。
下面列出了安装过程中可能出现的错误和问题及其解决办法:
􀁺 Log Files
当遇到问题,首先检查错误日志。9.2.0 在 /tmp/OraInstall (如 /tmp/OraInstall
2002-07-04_09-50-19PM);9.0.1 在 /tmp/OraInstall。当遇到 make 问题,检查
$ORACLE_HOME/install/make.log 文件。
􀁺 Various make Problems
确认系统中安装了 gcc:
$which gcc
/usr/bin/gcc
以下命令可以检查 /usr/bin/gcc 包名:
$rpm –qf /usr/bin/gcc
gcc-2.96-98
􀁺 Error in invoking target install of
make file /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk
这个问题仅出现在安装 Oracle 9iR2 (9.2.0),当我在 Red Hat 8.0 上安装 Oracle
9iR2 时遇到该问题。但并不是说,在别的平台上安装时,不会遇到这个问题。
当这个问题出现时,在 $ORACLE_HOME/install/make.log 文件中存在下面的内容:
/lib/libdl.so.2:undefined reference to ‘_dl_addr@GLIBC_PRIVATE’
/lib/libdl.so.2:undefined reference to ‘_dl_open@GLIBC_PRIVATE’
/lib/libdl.so.2:undefined reference to ‘_dl_close@GLIBC_PRIVATE’
/lib/libdl.so.2:undefined reference to ‘_dl_sym@GLIBC_PRIVATE’
/lib/libdl.so.2:undefined reference to ‘_dl_vsym@GLIBC_PRIVATE’
这个问题是在执行下面语句时出现的:
/usr/bin/make –f ins_ctx.mk install ORACLE_HOME=/opt/oracle/product/9.2.0
编辑 $ORACLE_HOME/ctx/lib/env_ctx.mk,找到 INSO_LINK= 行,增加
$(LDLIBFLAG)dl,保存。这时完整内容是:
INSO_LINK = -LS(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)DL
$(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex
$(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch
$(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c –Wl, -rpath,
$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
在弹出窗口中,重试。
如果不能工作,请尝试下面的方法:
再次编辑文件 $ORACLE_HOME/ctx/lib/env_ctx.mk,找到 INSO_LINK = 行,取
消上面的改变,增加 ‘cat $(LIBHOME)/sysliblist’,保存。这时完整内容是:
INSO_LINK = -LS(CTXLIB) $(LDLIBFLAG)m ‘cat $(LIBHOME)/sysliblist’
$(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex
$(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch
$(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c –Wl, -rpath,
$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
在弹出窗口中,重试。
􀁺 ORA-27123:unable to attach to shared memory segment.
仅在安装 Oracle 9iR2 时遇到这个问题。
当数据库配置助手 (the Database Configuration Assistant) 运行时,出现这个错误。
执行以下命令临时增加最大共享内存 (the maximum shared memory):
$su – root
#cat /proc/sys/kernel/shmmax
33554432
#echo ‘expr 1024 * 1024 * 1024’ > /proc/sys/kernel/shmmax
#cat /proc/sys/kernel/shmmax
1073741824
#
重试数据库配置助手 (the Database Configuration Assistant)。
建议为了 Oracle 9i 永久增加 shmmax 设置。为了永久增加最大共享内存,在
/etc/sysctl.conf 文件中增加下面内容:
kernel.shmmax=1073741824
􀁺 ORA-03113:end-of-file on communication channel
当运行数据库配置助手和 sqlplus 时遇到了这个错误。当在 Red Hat AS 2.1 安装
Oracle 9iR2 (9.2.0),数据库配置助手出现这个错误时,使用 oracle 用户,删除共享
内存段 (the shared memory segment),并重新启动数据库配置助手 (the Database
Configuration Assistant)。我确定这是不是正确的方法,但是这个方法能解决问题,使
数据库配置助手 (the Database Configuration Assistant) 正常工作。
数据库配置助手 (the Database Configuration Assistant)
执行 ipcs 命令得到由 Oracle 分配的共享内存段 (the shared memory segment) 的
地址:
$su – root
#ipcs
第 21 页
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 0 root 600 196608 2
0x00000001 32769 root 600 655360 2
0x00000000 458755 oracle 660 4194304 0
0x00000000 491524 oracle 660 33554432 0
0x00000000 524293 oracle 660 33554432 0
0x00000000 557062 oracle 660 33554432 0
0x00000000 589831 oracle 660 33554432 0
0x00000000 622600 oracle 660 33554432 0
0x00000000 655369 oracle 660 33554432 0
0x00000000 688138 oracle 660 33554432 0
0x3ecee0b0 720907 oracle 660 4194304 0
------ Semaphore Arrays --------
key semid owner perms nsems status
------ Message Queues --------
key msqid owner perms used-bytes messages
#
在安装过程中,使用 oracle 用户删除 Oracle 分配的所有共享内存段 (the shared
memory segment):
#ipcrm shm 458755 491524 524293 557062 589831 622600 655369 688138 720907
当重新启动数据库配置助手之后,一旦安装过程继续,我也立即重新启动了数据库。
警告:我不敢保证,如果在安装过程中,这样做是否会引起其它未知的问题。但是至今
为止使用这个办法,我没有遇到任何问题。
sqlplus:
如果连接 sqlplus 时出错这个错误,那么关闭数据库和退出 sqlplus。之后,删除所有
属于 Oracle 用户的共享内存段。据我所知,这样做不会引起任何问题。
查看 “Determining Which Semaphore Sets and Shared Memory Segments Belong to
Each Oracle Database or Instance” (http://www.puschitz.com/TuningLinuxFor
Oracle.shtml#DeterminingSemaphoreSetsAndSharedMemory),可以得到关于共享内
存段的详细信息。
注意:为了永久的解决这个问题,增加内核 shmmax 值。
􀁺 Error invoking target install of makefile
/opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk
Error invoking target install of makefile
/opt/oracle/product/9.0.1/precomp/lib/ins-precomp.mk
Error invoking target install of makefile
/opt/oracle/product/9.0.1/precomp/lib/ins-net-client
仅在安装 Oracle 9i (9.0.1