一.安装环境规划:
1. 实验环境:
a) 虚拟机:vmware server 2.0
b) 操作系统:RHEL4 2.6.9-55
c) ORACLE:10G R2
d) 主机名:rac1与rac2
2. IP规划:
a) publicIP(nat):
rac1:1.1.1.111
rac2:1.1.1.222
b) privIP(hostonly):
rac1-priv:2.2.2.111
rac2-priv:2.2.2.222
c) VIP:
rac1-vip:1.1.1.11
rac1-vip:1.1.1.22
3. 磁盘规划(添加四块磁盘):
a) /dev/sdb1用裸设备做为OCR磁盘
b) /dev/sdc1用裸设备做为表决磁盘
c) /dev/sdd1、/dev/sde1做为ASM共享磁盘
4. 很多安装文档上是使用先安装好一台机器再使用vmware克隆一个新的节点的方式,但是中心有一些细节比较容易出问题,为保证实验的效果和模拟真实环境下的配置操作,我直接采用安装两台全新虚拟机的方式来完成。
二.CRS安装步骤
1. 按平时的操作创建两台vmware的虚拟机,操作系统安装RHEL4,安装过程中最好把GCC能选上去,把防火墙和selinux关掉,这个很简单,不做过多介绍
2. 安装rac前对rac1虚拟机的配置如下:
a) 将rac1虚拟机init 0关机后对硬件做配置,保证机器上有两块分另属于不同通道的网卡
b) 为虚拟机添加四块scsi磁盘,我直接加了四块1g的scsi磁盘,注意指定不同的scsi通道(scsi1:x)和我们本机使用的磁盘不要在同一通道上,依次添加四块磁盘,分别对应scsi1:0/scsi1:1/scsi1:2/scsi:3,我下面标红的三个地方请注意最好能调整过来
c) 磁盘添加完成后,需要对vmware的.vmx配置文件做修改,取消对磁盘的锁定,使这四个磁盘成为共享磁盘,在虚拟机的vmx文件后添加如下语句:
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1:0.deviceType = "disk"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
配置完成后将rac1启动
d) 创建rac的安装目录
mkdir –p /u01/oracle/product/10.2/crs/
mkdir –p /u01/oracle/product/10.2/db1/
f) 检查用户与组ID,两个rac节点的用户与组id必须一致
g) 将oracle安装目录的所有者改为oracle用户和dba组
[root@rac1 ~]# chown -R oracle:oinstall /u01/
[root@rac1 ~]# chmod -R 775 /u01/
h) 检查并安装RAC、oracle程序需要使用的包:
binutils-2.15.92.0.2-18
compat-libstdc++-33.2.3-47.3
elfutils-libelf-0.97-5
elfutils-libelf-devel-0.97-5
glibc-2.3.9.4-2.19
glibc-common-2.3.9.4-2.19
glibc-devel-2.3.9.4-2.19
gcc-3.4.5-2
gcc-c++-3.4.5-2
libaio-devel-0.3.105-2
libaio-0.3.105-2
libgcc-3.4.5
libstdc++-3.4.5-2
libstdc++-devel-3.4.5-2
make-3.80-5
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
openmotif-2.2.3
rsh-0.17-25.4
rsh-server-0.17-25.4
setarch-1.6-1
i) 检查并安装ASM需要使用的包(ASM所使用的包需要到oracle官方网站上根据自己CPU及linux内核的对应版本去选择下载):
oracleasm-support-2.1.4-1.el4.i386.rpm
oracleasm-2.6.9-55.EL-2.0.3-1.i686.rpm
oracleasmlib-2.0.4-1.el4.i386.rpm
oracleasm-2.6.9-55.ELhugemem-2.0.3-1.i686.rpm
oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm
oracleasm-2.6.9-55.ELxenU-2.0.3-1.i686.rpm
j) 修改主机名,hosts文件,网络配置
改主机名vi /etc/sysconfig/network
改ip与主机名对应关系vi /etc/hosts,按之前的规划将ip与主机名映射进行编辑
(在hosts文件中注意127.0.0.1对应localhost,不要对应主机名~~~)
1.1.1.111 rac1
2.2.2.111 rac1-priv
1.1.1.11 rac1-vip
1.1.1.222 rac2
2.2.2.222 rac2-priv
1.1.1.22 rac2-vip修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth1
修改rac1的内核参数文件vi /etc/sysctl.conf添加如下内容
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
添加完后执行sysctl -p
k) 修改etc/security/limits.conf,添加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
l) Vi /etc/pam.d/login,添加如下内容(64位系统不需要):
session required /lib/security/pam_limits.so
session required pam_limits.so
m) 修改/etc/profile,加入以下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
n) 配置hangcheck:vi /etc/modprobe.conf
添加options hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
再执行modprobe -v hangcheck-timer
vi /etc/grub.conf
clock=pit nosmp noapic nolapic
o) 开启sshd服务
chkconfig sshd on
service sshd start
p) 使用oracle用户登录后修改修改~/.bash_profile添加如下环境变量:
export ORACLE_SID=racdb
export ORACLE_BASE=/u01/oracle/product
export ORACLE_HOME=/u01/oracle/product/10.2/db1
export ORA_CRS_HOME=/u01/oracle/product/10.2/crs
export ORACLE_ADMIN=$ORACLE_BASE/admin
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jlib
export JAVA_HOME=$ORACLE_HOME/jdk
export ORA_NLS10=$ORACLE_HOME/nls/data
export PATH=$PATH:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/lib:$JAVA_HOME/bin:$ORA_CRS_HOME/bin
至此rac1的初期配置完成,后面开始rac2的配置
3. 安装rac前对虚拟机rac2的配置过程如下:
a) 在关机状态下为虚拟机rac2添加网卡(两块)与共享磁盘,因为之前rac1已经创建磁盘,所以在rac2上不用创建新磁盘,直接使用rac1上已经建好的四块共享磁盘即可,注意我打标记的地方
b) 四块磁盘加完后,在rac2虚拟机的vmx文件中添加以下内容后开机:
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1:0.deviceType = "disk"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
c) Rac2的操作请重复rac1前面所做的操作,完全一样,最后一步创建分区可以不用做,在rac1上创建好分区后,rac2上可以用fdisk –l直接看到所有已经创建好的磁盘分区
4. 为rac1与rac2配置时间同步:
a) 在rac1上执行以下命令开启时间服务
[root@rac1 ~]# chkconfig ntpd on
[root@rac1 ~]# service ntpd status
ntpd is stopped
[root@rac1 ~]# service ntpd start
Starting ntpd: [ OK ]
[root@rac1 ~]#
b) 在rac2上输入system-config-date配置,输入rac1的ip后选择add,ok
c) 再vi /etc/rc.local
输入以下内容:
while [ 1 ];do ntpdate rac1 1>/dev/null 2>&1; sleep 2;done&
时间同步配置完成
5. 配置SSH
a) 切换为oracle用户,在rac1与rac2上的用户根目录下分别创建.ssh目录并给与指定权限:
mkdir ~/.ssh/
chmod 700 ~/.ssh
b) 在rac1上分别使用ssh-keygen命令生成rsa与dsa的非对称密钥。
ssh-keygen –t rsa
ssh-keygen –t dsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys >> rac1.authorized_keys
c) 在rac2上分别使用ssh-keygen命令生成rsa与dsa的非对称密钥。
ssh-keygen –t rsa
ssh-keygen –t dsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys >> rac2.authorized_keys
d) 将rac1与rac2的密钥文件进行交换
在rac1上:
在rac2上:
e) 将rac2的密钥文件合并到rac1的密钥文件中:
在rac1上执行
cat rac2.authorized_keys >>authorized_keys
f) 将rac1的密钥文件合并到rac2的密钥文件中:
在rac2上执行:
cat rac1.authorized_keys >>authorized_keys
g) Chmod 700 authorized_keys(必须要配置,否则会需要密码)
h) 检测ssh配置是否成功:
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
如果执行以上命令不需要输入密码则ssh配置成功
6. 在rac1及rac2上配置裸设备与ASM磁盘:
a) 在rac1和rac2上配置裸设备(将/dev/sdb1与/dev/sdc1配置为ocr磁盘与表决磁盘)
Vi /etc/sysconfig/rawdevices
在其中增加两行代码:
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdc1
然后vi /etc/udev/permissions.d/50-udev.permissions,将与raw有关的权限选项进行修改
# raw devices
ram*:root:disk:0660
#raw/*:root:disk:0660
raw/*:oracle:dba:0660
再执行检查配置是否成功:
chkconfig --list rawdevices
service rawdevices restart
b) 在rac1与rac2上配置ASM磁盘(确保前面在两台机器上已经安装了asm的相关包)
使用root用户登录:
i. 执行以下命令:/etc/init.d/oracleasm configure
ii. 使用/etc/init.d/oracleasm createdisk vol1 /dev/sdd1创建asm磁盘
在rac1与rac2分别进行如上配置后,磁盘配置完成:
7. 执行如下命令,检查安装环境是否匹配安装要求:
/u01/cluster/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2
8. 在rac1上执行安装程序:
. /u01/cluster/runInstall
11. 指定两个网卡的连接类型,将eth0设置为public,eth1设置为private
12. 将事先配置好的裸设备/dev/raw/raw1与/dev/raw/raw2分别指定为ocr磁盘与表决磁盘后开始执行安装.
13. 使用集群软件在两个节点进行安装,安装完成后按要求分别在rac1与rac2上执行指定脚本:
. /u01/oracle/product/oraInventory/orainstRoot.sh
. /u01/oracle/product/10.2/crs/root.sh
rac1:
rac2:
15. 在两个节运行完脚本后,修改两个配置文件:
修改vipca文件(需要在两个节点上操作)
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/vipca /home/oracle/app/crs/bin/vipca.bak
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/bin/vipca
找到如下内容:
Remove this workaround when the bug 3937317 is fixed
arch=`uname -m`
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround
在fi后新添加一行:
unset LD_ASSUME_KERNEL
以及srvctl文件 (需要在两个节点上操作)
[oracle@rac2 bin]$ cp /home/oracle/app/crs/bin/srvctl /home/oracle/app/crs/bin/srvctl.bak
[oracle@rac2 bin]$ gedit /home/oracle/app/crs/bin/srvctl
找到如下内容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同样在其后新增加一行:
unset LD_ASSUME_KERNEL
16. 使用root用户登录在rac2上执行:
/u01/oracle/product/10.2/crs/bin/vipca
选择public网卡点next
对vip与别名进行相应设置
如果在/u01/oracle/product/oraInventory/logs/installActions2011-03-21_11-23-35文件中
报WARNING: RAC2:6200 already configured.WARNING: RAC1:6200 already configured.的错误
请执行
$cd /home/oracle/app/crs/bin
/u01/oracle/product/10.2/crs/bin/racgons remove_config rac1:6200
/u01/oracle/product/10.2/crs/bin/racgons remove_config rac2:6200
17. 在rac2上执行完netca后,在rac1上点击ok,crs安装完成
三.群集数据库安装
1. 将oracle10g安装软件复制到rac1并进行解压
2. 运行. /u01/database/runInstal选择安装企业版
选择安装目录
6. 安装数据库并配置ASM:
在rac1上执行dbca安装群集数据库:
13. 点击ok后会提示没有创建监听,直接yes让oracle自动配置监听程序,并开始配置Asm实例
20. 会报一个最小内存要求的信息,不管,直接ok,再next
本文转自ttzztt 51CTO博客,原文链接:http://blog.51cto.com/tianzt/930063,如需转载请自行联系原作者