为了搭一个测试用的9i数据库,找了一台DELL的6850,安装上最新的Oracle Enterprise Linux 5,准备开始安装。
由于前一段时间发现4的update 4以前对4核CPU支持有问题,而手头又没有4的最新更新版,因此选择了Enterprise Linux 5。由于是Oracle自己的操作系统,对Oracle数据库的支持肯定是最好的,因此也没有多想。
正是这里没有去验证,造成了这次失败的经历。
首先仍然是检查一下硬件和系统情况,其实这个检查有点多余,9i对配置的要求本来就比较低,何况服务器还是DELL的6850。
[root@bjtest ~]# grep MemTotal /proc/meminfo
MemTotal: 16418944 kB
[root@bjtest ~]# grep SwapTotal /proc/meminfo
SwapTotal: 8385888 kB
[root@bjtest ~]# df -k /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 20315812 176280 19090892 1% /tmp
[root@bjtest ~]# grep "model name" /proc/cpuinfo
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
model name : Intel(R) Xeon(TM) CPU 3.00GHz
[root@bjtest ~]# df -k /data
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda7 1023246840 204268 970226076 1% /data
[root@bjtest ~]# more /etc/issue
Enterprise Linux Enterprise Linux Server release 5 (Carthage)
Kernel r on an m
[root@bjtest ~]# uname -a
Linux bjtest 2.6.18-8.el5xen #1 SMP Tue Jun 5 23:53:34 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
下面检查所需的包,由于9i比Enterprise linux 5早得多,没有官方的安装包描述。因此根据AS3上所需的安装包检查下面的包是否存在:
kernel-2.6.18-8.el5
glibc-devel-2.5-12
glibc-2.5-12
gcc-4.1.1-52.el5
gcc-c++-4.1.1-52.el5
compat-gcc-34-3.4.6-4
compat-gcc-34-c++-3.4.6-4
libstdc++-devel-4.1.1-52.el5
libstdc++-4.1.1-52.el5
make-3.81-1.1
gtk2-2.10.4-16.el5
tcp_wrappers-7.6-40.2.1
ORBit2-2.14.3-4.el5
libpng-1.2.10-7
setarch-2.0-1.1
libaio-0.3.106-3.2
audiofile-0.2.6-5
esound-0.2.36-3
libXp-1.0.0-8.i386.rpm
检查一下系统的/etc/sysctl.conf设置,一般来说,Oracle给出的默认设置足够,不用修改,如果修改的话,需要重启系统使之生效。
下面为Oracle用户设置进程数和打开文件数的限制:修改/etc/security/limits.conf文件,将下面内容填入:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
下面创建Oracle用户:
[root@bjtest ~]# groupadd oinstall
[root@bjtest ~]# groupadd dba
[root@bjtest ~]# useradd -g oinstall -G dba oracle
[root@bjtest ~]# passwd oracle
[root@bjtest ~]# mkdir -p /data/oracle/product/9.2
[root@bjtest ~]# chown -R oracle.oinstall /data
切换到oracle用户,在初始化脚本中添加下面内容:
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=/data/oracle/product/9.2
export ORACLE_SID=bjtest
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
export PATH=$ORACLE_HOME/bin:$PATH
export DISPLAY=172.25.198.230:1
下面可以使用图形化界面开始安装。
到了这个时候,问题终于暴露出来了,碰到了在AS4上安装64位Oracle9204时出现的错误:在安装Oracle的时候,安装到17%,提示拷贝文件naeet.o的时候,整个安装就停住了。根据在AS4上的安装经验,需要在用户环境变量中设置LD_ASSUME_KERNEL=2.4.1。
不过设置这个参数后,不只是Oracle的安装程序无法启动,就是一个简单的ls命令都会报错:
[oracle@bjtest ~]$ export LD_ASSUME_KERNEL=2.4.1
[oracle@bjtest ~]$ ls
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
看来这种方法在Enterprise Linux 5中已经行不通了。别说2.4.1,就是将KERNEL设置为2.6.1都会报上面的错误。
想了不少变通的方法,但是没有一个有效的。如果加载共享库不报错的话,就会导致安装Oracle的时候在17%的位置死掉。
难道没有方法在Enterprise Linux 5上安装9i,尝试在metalink上寻找类似的问题和解决方法,未果。
最后才想起来,检查一下Oracle的产品在不同平台的支持情况,结果发现Enterprise Linux 5和Red Hat Enterprise Linux 5根本就不支持9i。
实在没有办法,只好找了一个AS4上的64位Oracle9204,将整个ORACLE_HOME目录tar到Enterprise Linux 5上。然后启动dbca在本地建库。
[oracle@bjtest ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on星期一12月24 18:03:24 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bitProduction PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL>
看来Oracle只是在安装过程中对KERNEL有限制,对数据库的使用则没有限制。
不过,这种方法实在不能叫做安装,Oracle既然声明不支持,那么在使用过程中也很可能会遇到未知的问题。
对于正式环境,不要采用类似的方法,还是应该选择Oracle支持的环境。