最近在学习Oracle9i数据库,在RedHat9.0上安装的时候碰到了一些问题,参考了各种能够找到的资料,终于成功。现写成文章,希望给后来人以帮助。
1安装好RedHat9.0操作系统,确保安装了以下的RPM开发包
gcc
cpp
glibc-devel
compat-libstdc++
glibc-kernheaders
binutils
可以使用命令来查看是否已安装了这些包
rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
2从Oracle官方网站下载Oracle9i安装文件并使用如下命令解包
zcat lnx_920_disk1.cpio.gz | cpio –idmv
zcat lnx_920_disk2.cpio.gz | cpio –idmv
zcat lnx_920_disk3.cpio.gz | cpio –idmv
然后会有Disk1 Disk2 Disk3三个子目录。
3设置内核参数
echo 4294967295 > /proc/sys/kernel/shmmax,建议放到/etc/rc.local文件里。
或
编辑/etc/sysctl.conf
kernel.shmmax=4294967295
我有512MB内存,所以设置这个数值。可根据实际情况设置。
4创建Oracle用户帐号和安装目录
在shell下,作为root
groupadd dba
groupadd oinstall
useradd –g oinstall –G dba oracle
passwd oracle
mkdir /opt/oracle
mkdir /opt/oracle/product
mkdir /opt/oracle/product/9.2.0
chown –R oracle.oinstall /opt/oracle
mkdir /var/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle
5设置环境变量
编辑/home/oracle/.bash_profile文件,添加下列行
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=ora9i
export ORACLE_TERM=xterm
$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICAN.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/asmin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
6安装
进入Disk1目录
./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)
7启动数据库、监听程序、web server。
启动数据库
Sqlplus “ / as sysdba”
SQL>startup
启动监听程序
lsnrctl
启动web server
cd $ORACLE_HOME/Apache/Apache/bin
./startJServ.sh
注意RedHat9.0没有通过Oracle9i测试,所以不建议用在实际生产环境中。
请参考有关资料。