第一次尝试在REDHAT AS4上安装64位Oracle,由于缺少资料且操作系统知识相对匮乏,导致安装过程中错误频繁出现,不过幸好通过两天的不断折腾,终于将Oracle安装成功。这里将安装步骤简单总结一下,尽量使后来人少走弯路。
这篇文档参考了Oracle9i for Linux x86-64的官方安装文档,不过这篇文档中遗留的东西很多。另外还参考了metalink上的几篇文档,这几篇文章主要是介绍如何解决isqlplus链接失败的。
下面就开始介绍安装步骤,对于简单的部分就不多做说明了:
首先检查系统是否满足安装Oracle的要求,其实这个对于目前大部分的服务器都是满足的,不过为了完整起见,还是把Oracle的最低要求和检查脚本列出来:
512M以上内存;
1G以上交换空间;
/tmp目录下400M以上空间。
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
# df -k /tmp
# grep "model name" /proc/cpuinfo
另外,需要保证Oracle的安装目录至少有超过2.5G的空间,才能保证企业版的正常安装。
通过下面的脚本检查操作系统信息
# more /etc/issue
# uname -a
下面通过rpm –qa来检查操作系统是否已经包含了安装Oracle所需要的包。由于没有官方版的AS4所需的包的列表,我根据官方AS3所需列表将我的环境中对应的包列出,并将个人认为比较重要的放在前面。
kernel-2.6.9-42.EL
glibc-devel-2.3.4-2.25
glibc-2.3.4-2.25
gcc-3.4.6-3
gcc-c -3.4.6-3
compat-libgcc-296-2.96-132.7.2
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c -3.2.3-47.3
libstdc -devel-3.4.6-3
libstdc -3.4.6-3
make-3.80-6.EL4
gtk -1.2.10-33
gnome-libs-1.4.1.2.90-44.1
tcp_wrappers-7.6-37.2
www.ixdba.net
ORBit-0.5.17-14
libpng10-1.0.16-1
libungif-4.1.3-1.el4.2
imlib-1.9.13-23
setarch-1.6-1
libaio-0.3.105-2
audiofile-0.2.6-1.el4.1
esound-0.2.35-2
上面列出的包并不见得都是必须的,最后几个包没有的话,应该也可以安装成功。不过根据Oracle官方文档的建议都加上肯定不会有问题。这里要额外注意compat-libgcc-296-2.96-132.7.2这个包,这个包必须要加上,否则后面的安装无法继续进行。
下面需要修改一下系统的核心参数,具体的含义就不多解释了,Oracle的推荐默认参数为:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
我只修改了kernel.shmmax参数,设置其大小超过我预计SGA的值。
将上面的核心参数添加到/etc/sysctl.conf文件中。
完成设置后,重启操作系统。通过/sbin/sysctl –p可以修改当前核心参数,不过如果系统可以重启,还是通过这种方式比较保险。
下面为Oracle用户设置进程数和打开文件数的限制:修改/etc/security/limits.conf文件,将下面内容填入:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
修改/etc/pam.d/login文件,添加如下的内容:
session required /lib/security/pam_limits.so
这些操作完成之后,开始安装的前期工作了,首先是创建Oracle帐户:
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
# mkdir -p /opt/oracle/product/9.2
# chown -R oracle.oinstall /opt/oracle
至此,root用户的设置基本结束,可以切换到oracle用户了。
# su - oracle
$ vi .bashrc
在oracle用户的初始化脚本中添加如下内容:
if [ $USER = "oracle" ]; then
ulimit -u 16384 -n 65536
fi
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2
export ORACLE_SID=testdb
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
export PATH=$ORACLE_HOME/bin:$PATH
export DISPLAY=172.25.6.201:0
export LD_ASSUME_KERNEL=2.4.1
其中上面设置进程和文件的限制是Oracle