oracle 2009-01-02
本文是一篇在RedHat Advance Server 3.0上安装和配置Oracle10g RAC的文档,不仅仅是个安装试验,而是一个生产系统的实际布置过程,所以包括RAC安装,本地监听配置,JDBC连接串书写,CRS服务重新安装, VIP地址修改等等,相信比一般的安装教程更有应用上的意思。
1、安装环境
硬件平台:HP 380 PC服务器2台。
主机 Hostname IP VIP VIP名称
Node1 dbtest1 192.168.100.201 10.96.100.103 db-vip01
Node2 dbtest2 192.168.100.203 10.96.100.104 db-vip02
操作系统:RedHat Enterprise Linux 3.0 Update 5。
磁盘阵列:HP ms1000。
数据库:Oracle10g 10.1.0.3。
2、安装 Linux
所需内核:
2.4.21-4.EL 或更高版本
验证内核版本:
# uname -r
2.4.21-32.ELsmp
其他所需程序包的版本(或更高版本):
make-3.79
binutils-2.11.90.0.8-12
gcc-3.2.3-2
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
openmotif21-2.1.30-8
setarch-1.3-1
验证已安装的程序包:
# rpm –qa make binutils gcc compat-db compat-gcc compat-gcc-c++ compat-libstdc++
compat-libstdc++-devel openmotif setarch
make-3.79.1-17
binutils-2.14.90.0.4-26
gcc-3.2.3-20
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
openmotif-2.2.2-16
setarch-1.3-1
3、为 Oracle 配置 Linux
创建 Oracle 组和用户帐户
接下来我们将创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。 用户帐户名是‘oracle’,组是‘oinstall’和‘dba’。 在drpdb01上以 root 用户身份执行以下命令:
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle
id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
用户 ID 和组 ID 在所有集群主机上必须相同。 使用从 id oracle 命令得到的信息,在drpdb02上创建 Oracle 组和用户帐户:
/usr/sbin/groupadd -g 500 oinstall
/usr/sbin/groupadd -g 501 dba
/usr/sbin/useradd -m -u 500 -g oinstall -G dba oracle
id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
设置 oracle 帐户的口令:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.
创建挂载点
现在创建存储 Oracle 10g 软件的挂载点。
以 root 用户身份执行以下命令:
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
配置内核参数
以 root 用户身份登录并在每个主机上配置 Linux 内核参数。
cat >> /etc/sysctl.conf >>EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.threads-max = 131072
fs.file-max = 131072
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
EOF
/sbin/sysctl -p
为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数量和打开文件的数量设置限制。
cat >> /etc/security/limits.conf >>EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login >>EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile >>EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login >>EOF
if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
配置 Hangcheck 计时器
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
cat >> /etc/rc.d/rc.local >>EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
配置 /etc/hosts
有些 Linux 发行版本将主机名与回送地址 (127.0.0.1) 相关联。 如果出现这种情况,则从回送地址中删除主机名,本次安装已经修改。
用于此指南的 /etc/hosts 文件:
127.0.0.1 localhost.localdomain localhost
192.168.100.201 dbtest1 dbtest1
192.168.100.203 dbtest2 dbtest2
192.168.200.1 dbtest1-priv dbtest1-priv
192.168.200.2 dbtest2-priv dbtest2-priv
192.168.100.202 dbtest1-vip dbtest1-vip
192.168.100.204 dbtest2-vip dbtest2-vip
~为用户等效性配置SSH
在安装 Oracle RAC 10g 期间,OUI 需要把文件复制到集群中的其他主机上并在其上执行程序。 为了允许 OUI 完成此任务,必须配置 SSH 以启用用户等效性。 用 SSH 建立用户等效性就提供了一种在集群中其他主机上复制文件和执行程序时不需要口令提示的安全方式。
第一步是生成 SSH 的公共密钥和专用密钥。 SSH 协议有两个版本;版本 1 使用 RSA,版本 2 使用 DSA,因此我们将创建这两种类型的密钥,以确保 SSH 能够使用任一版本。 ssh-keygen 程序将根据传递给它的参数生成任一类型的公共密钥和专用密钥。