linux下oracle9204安装笔记

一、准备工作
1、检查组件的安装情况
完全安装的话,系统就只差两个补丁compat-libcwait-2.0-2.i386.rpm 和 compat-oracle-rhel4-1.0-5.i386.rpm ,
若你不是完全安装的话 那就要检查很多的组件是不是安装了。
以下这些是必须的:
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-oracle-rhel4-1.0-3
compat-libcwait-2.0-1
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gnome-libs-1.4.1.2.90-44
gnome-libs-devel-1.4.1.2.90-44
libaio-devel-0.3.102-1
libaio-0.3.102-1
make-3.80-5
openmotif21-2.1.30-11
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
xorg-x11-deprecated-libs-6.8.1-23.EL

用以下命令检查
# rpm -qa | grep ‘compat’
rpm -qa | grep gcc 等
方法是一样的,没有的话,光盘里,然后安装一下就可以了。
但compat-libcwait-2.0-2.i386.rpm 和compat-oracle-rhel4-1.0-5.i386.rpm光盘中没有
可以从网站上下载 这些补丁还是好找的
地址:http://oss.oracle.com/projects/compat-oracle/files/RedHat/

2、检查软件和补丁情况,必须先要下载好的补丁为
p3006854_9204_LINUX.zip 安装前就要打好的补丁(AS4 这个版本以经打完了)
p2617419_210_GENERIC.zip 安装后要打的(这只是一个伴随补丁,只要设置它的环境变量)
p3238244_9204_LINUX.zip 安装后要打的9204的补丁
compat-libcwait-2.0-2.i386.rpm LINUX AS 4 的补丁在安装前就要打
compat-oracle-rhel4-1.0-5.i386.rpm LINUX AS 4 的补丁在安装前就要打
准备好oracle安装文件
ship_9204_linux_disk1.cpio.gz
ship_9204_linux_disk2.cpio.gz
ship_9204_linux_disk3.cpio.gz
我已经将所有的文件都下载好了放在/tmp目录下了

3、准备工作
以root 用户登陆
第一部就要检查一下你剩余的空间,最好大于5G以上,要不会提示你空间不足,而阻止你安装。
压缩安装包
zcat ship_9204_linux_disk1.cpio.gz | cpio –idmv
zcat ship_9204_linux_disk2.cpio.gz | cpio –idmv
zcat ship_9204_linux_disk3.cpio.gz | cpio –idmv
解压缩后会产生DISK1 DISK2 DISK3

用root 用户登陆
# unzip p3006854_9204_LINUX.zip
creating: 3006854/
inflating: 3006854/rhel3_pre_install.sh
inflating: 3006854/README.txt

# cd 3006854
# sh rhel3_pre_install.sh
Applying patch...
Patch successfully applied
如果安装了,会提示你,以经处在。
如果打这个补丁的话在安装时会提示你这样的错误
Initializing Java Virtual Machine from /tmp/OraInstall2005-01-18_06-01-55PM/jre/bin/java. Please wait...
Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2005-01-18_06-01-55PM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

用root用户登陆
rpm -Uvh compat-libcwait-2.0-2.i386.rpm
rpm -Uvh compat-oracle-rhel4-1.0-5.i386.rpm
或图形下安装,双击就可以了。

4、创建用户
groupadd oinstall (在安装oracle时会提示输入UNIX Group name:oinstall)
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle (注意:此不能忘记,如果没有建立密码,可能下次无法用oracle登陆)

5、创建目录
mkdir -p /opt/oracle/product/9.2.0
mkdir -p /opt/oradata

chmod 777 /opt/oracle

chmod -R 777 /opt/oracle/product/9.2.0

chown oracle.dba /opt/oradata
chown -R oracle.dba /opt/oracle/product/9.2.0


6、设置内核的参数
修改 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 268435456 这里设置为物理内存的一半 1G内存的话为:512×1024×1024 我们的内存为512的所为268435456(指定共享内存)
kernel.shmmni = 4096 2G内存的话为:1024×1024×1024
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128 其他的值都不用动
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
执行sysctl以反映修改 使内核参数立刻生效,重启也可以
# sysctl –p

7、设置oracle对文件的要求
编辑文件:/etc/security/limits.conf 加入以下语句:

oracle    soft nofile    65536
oracle    hard    nofile 65536
oracle    soft nproc    16384
oracle    hard    nproc    16384
这些值直接手工输入进去,最好不要用复制的方法,因为复制的时候,可能会产生很多的奇怪的符号,
在安装时会出现很多的错误如 map lss.key ins_net-client.mk ins_plsql.mk ins_oem_agent 等等
很多的错误,有一次安装的时候我就是从文本文件里直接复制过去也没有做检查 就开始安装,安装
过程报了一大堆的错误。

8、设置环境变量
vi /home/oracle/.bash_profile
加入以下内容
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=tbdb ---SID根据实际情况修改
export ORACLE_TERM=xterm
export NLS_LANG="AMERICAN_AMERICA.zhs16gbk"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
PATH=$PATH ORACLE_HOME/bin:/sbin:/usr/sbin
export PATH


export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export PATH=$ORACLE_HOME/bin$ORACLE_HOME/Apache/Apache/bin$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=oratest
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/oracle/product/9.2.0/lib$LD_LIBRARY_PATH
export NLS_LANG=JAPANESE_JAPAN.JA16SJIS
export PATH=$PATH ORACLE_HOME/bin
#export LC_CTYPE=en_US.UTF-8

还有有关 export LANG的问题,我怕安装过程出现和语言相关的问题所以在安装时将.bash_profile中
export LANG=en_US在运行./runInstaller前手工输入一遍export LANG=en_US或直接改成export LANG=en_US
然后# source /home/oracle/.bash_profile 刷新一下

9、gcc降级
#su – root
#mv /usr/bin/gcc /usr/bin/gcc34
#ln –s /usr/bin/gcc32 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++34
#ln –s /usr/bin/g++32 /usr/bin/g++
别忘了安装全部结束后再还原回来(若有需要的话)

10、cd Disk1
./runInstall
这里有一个要注意的地方,如果你直接运行./runInstall的话有一个错误,

Exception in thread "main" java.lang.InternalError: Can''t connect to X11 window server using ''127.0.0.1:0.0'' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:59)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
at java.awt.Window.(Window.java:188)
at java.awt.Frame.(Frame.java:315)
at java.awt.Frame.(Frame.java:262)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)
原因可能是由于JDK的版本过老,在使用AWT时的一个属性出了问题。可以使用如下方法解决:
如果你设置了环境变量DISPLAY,请先到/home/oracle/.bash_profile中把DISPLAY删掉,然后打开一个新的终端
(注:必须是图形界面下的Koncole,如果在文字界面下将不成功),以root登陆,输入如下命令:
#xhost +
如果成功,会输出其他用户可以连接此窗口的结果。
之后就开始安装了,如果按照上面的方法做,安装期间应该是一个错误都没有
一步步进行就可以了。

11、安装过程中有二个提示,让你运行一下角本,你运行一下就可以了。
其中有一个让你运行/opt/ora9/root.sh然后输入oracle_home 的路径
/opt/oracle/product/9.2.0/bin此时安装就算完成了。

12、打相应的补丁
解压缩那个伴随的补丁
#unzip p2617419_210_GENERIC.zip
cd /tmp/Opatch
export export PATH=$PATH:/tmp/OPatch:/sbin (修改PATH时要要包括解压缩出来的Opatch 和 sbin目录)
然后解压缩另外一个补丁
unzip p3238244_9204_LINUX.zip
# cd 3238244
# opatch apply
如果提示HOME变量错误可执行语句:#export ORACLE_BASE=/opt/ora9
#export ORACLE_HOME=/opt/ora9/product/9.2出现success的提示就全部安装成功。
或者以oracle用户来安装
chown oracle /home/zhouheng/3238244
chmod 777 /home/zhouheng/3238244
# cd 3238244
# opatch apply
应该也是可以的
补丁打完后,还要relinked一个.mk文件,切换到oracle用户窗口cd $ORACLE_HOME/network/lib make –f ins_oemagent.mk install之后就可以启动Agent服务了。
$ ./agentctl start

DBSNMP for Linux: Version 9.2.0.4.0 - Production on 27-OCT-2006 12:11:21

Copyright (c) 2003 Oracle Corporation. All rights reserved.

Starting Oracle Intelligent Agent......
Agent started


最后若你安装的是中文的AS4 每次进到终端的时候要用DBCA的话还要用export LANG=en_US
如果不在 .bash_profile中没有写,有个方法 修该/etc/sysconfig/i18n文件 其中默认的为
LANG=zh_CN.UTF-8 更改为 LANG=en_US.UTF-8 然后source i18n 文件就OK了。

13、安装完成
安装完成运行dbca正常,也可以正常的建库
sqlplus / nolog
等都没有问题

14、如果删除数据库
把ORACLE安装目录删除及/etc/ora*.*删除就行了#rm –f /etc/ora*.* #rm -rf /opt/ora9



问题及解决办法:





1)Exception String: Error in invoking target relink of makefile /home/oracle/precomp/lib/ins_precomp.mk 错误是因为gcc版本太高了

解决办法:gcc降级

#su – root

#mv /usr/bin/gcc /usr/bin/gcc34

#ln –s /usr/bin/gcc32 /usr/bin/gcc

#mv /usr/bin/g++ /usr/bin/g++34

#ln –s /usr/bin/g++32 /usr/bin/g++





2)当运行  ./runInstaller    过程中

  当link进行到61%时出现一个关于ins_oemagent错误,选择ignore,安装完后修复     

  当link进行到84%时出现一个关于ins_ctx错误,编辑$ORACLE_HOME/ctx/lib/env_ctx.mk文件,把$(LDLIBFLAG)dl加到以下位置     

  INSO_LINK=-L$(CTXLIB)$   (LDLIBFLAG)m   $(LDLIBFLAG)dl处。     

  安装完成     

   

  修复第一个错误     

  在shell下,oracle用户     

  cd   $ORACLE_HOME/network/lib     

  make   –f   ins_client.mk   install     

  编辑$ORACLE_HOME/ctx/lib/ins_ctx文件     

  13—14行处     

  $(LINK)   $(CTXHXOBJ)   $(INSO_LINK)     

  为     

  $(LINK)   –ldl   $(CTXHXOBJ)   $(INSO_LINK)  

3)运行dbca 出错(运行几步后现图形界面不见了)

  修改:/opt/u01/app/oracle/product/9.2.0.4/bin/dbca文件

      把下面两行注释掉:# if [-f /etc/rac_on];then

                        #Run DBCA