本文分为8个部分,以图文并茂的形式介绍了如何在VirtualBOX上安装与部署SLES11 SP3+Oracle 11gR2 RAC环境,旨在给有类似部署需求的读者作参考。
第一部分:安装SLES 11
第二部分:安装完成后的基本配置
第三部分:创建RAC安装所需要的目录和用户
第四部分:安装 RAC前的预配置工作
第五部分:clone出第二个节点
第六部分:配置共享存储
第七部分:安装配置GI
第八部分:安装DB与建库
其中最后两个部分仅把笔者实施过程中遇到的问题进行了描述,不详细展开整个过程,有兴趣的读者可以参阅oracle官方文档或者网上类似资料。
第一部分:安装SLES 11
新建虚拟机,选择openSUSE (64bit),图1
至少分配4G内存,图2
以下三个步骤在创建虚拟硬盘之前先设定硬盘属性,图3、4、5
图6:设定虚拟文件路径及大小,定义80G
图7:主界面已经显示出一个处于”已关闭”状态名为suse1的虚拟机了
图8:在”常规”选项里对虚拟机的快照路径以及是否启用主机与虚拟机间的复制粘贴功能按需进行设置,注意后面需要在虚拟机里安装增强包才能真正使用复制粘贴的功能,这里只是起到一个开关的作用
图9:在”系统”选项里可以设置虚拟机所能用到的cpu个数
图11 & 图12:因为RAC环境需要至少一张public的普通网卡和一张private的内联网卡,在”网络”选项里定义两张相应类型的网卡
图13:在”共享文件夹”选项里,设定主机与虚拟机之间的共享目录,用于文件共享,比ftp方便不少
图14:在Vbox右侧的界面里会把刚才的选择进行汇总,可以进一步确认是否还有需要改动的地方
图16:启动名为suse1的虚拟机,选中SLES 11安装介质对应的iso文件
图18:安装界面随即弹出
图19、20、22、23:开始安装
图24:在”expert”选项卡里对部分设置进行更改
图25:更改磁盘分区
图26:选中唯一一块硬盘sda进行分区,
--(1)、boot分区:200M,图27、28、29
--(2)、根分区:12G、图30、31
--(3)、SWAP:2G,图32、33、34
--(4)、/oracle文件系统:剩下的都加入进去,约65G,需要先创建一个扩展分区,创建后再此扩展分区上建立/oracle文件系统,图35、37、38、39
图40、41:这就是最终的分区布局
图42、43:回到”change”,选择”software”选项,勾上必要的软件包,如”Oracle Server Base”等(会创建oracle用户、oinstall和dba用户组)
图44、45、46:点击”install”进入安装界面
图47、48、49:安装完成后的基本配置向导:设定root密码,主机名域名
图50:进入”Network Interface”界面,给网卡配置IP地址
--(1) Public网卡,图51
--(2) private网卡,图52
图53、54:网卡汇总信息,点”Next”系统将进行配置
图55:跳过网络连接测试
图56:跳过网络服务配置
图57:本地认证
图58:先不创建任何用户
图59:等待系统写入配置
图60、61:最后一步:扫描硬件
图62:大功告成,勾选了”Clone This system for AutoYaST”表示安装期间的所有配置保存在/root/autoyast.xml文件里
第二部分:安装完成后的基本配置
安装Vbox的增强功能,便于方便的在hostOS与guestOS间进行CV操作
图63:在Vbox的安装目录下有一个名为VboxGuestAdditions.iso的安装映像文件,选中它
图64:系统会自行启动Vbox增强工具的安装
如果遇到上图中的” building the main guest additions module failed”错误的情况,按照提示安装上名为kernel-default-devel*的package即可,安装过程就不展开了。
关闭防火墙
suse1:/etc # service SuSEfirewall2_init status
Checking the status of SuSEfirewall2 running
suse1:/etc # service SuSEfirewall2_setup status
Checking the status of SuSEfirewall2 running
suse1:/etc # service SuSEfirewall2_init stop
suse1:/etc # service SuSEfirewall2_setup stop
Shutting down the Firewall done
suse1:/etc # service SuSEfirewall2_setup status
Checking the status of SuSEfirewall2 unused
suse1:/etc # service SuSEfirewall2_init status
Checking the status of SuSEfirewall2 unused
suse1:/media/sf_suse1_share # chkconfig --list | grep -i fire
SuSEfirewall2_init 0:off 1:off 2:off 3:on 4:off 5:on 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:on 4:off 5:on 6:off
suse1:/media/sf_suse1_share # chkconfig --level 35 SuSEfirewall2_init off
suse1:/media/sf_suse1_share # chkconfig --level 35 SuSEfirewall2_setup off
suse1:/media/sf_suse1_share # chkconfig --list | grep -i fire
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
必须要安装的包:
binutils-2.21.1-0.7.25 (实际安装版本:binutils-2.23.1-0.17.18)
gcc-4.3-62.198
gcc-c++-4.3-62.198
glibc-2.11.3-17.31.1 (实际安装版本:glibc-2.11.3-17.54.1)
glibc-devel-2.11.3-17.31.1(实际安装版本:glibc-devel-2.11.3-17.54.1)
ksh-93u-0.6.1(实际安装版本:ksh-93u-0.18.1)
libaio-0.3.109-0.1.46
libaio-devel-0.3.109-0.1.46
libcap1-1.10-6.10
libstdc++33-3.3.3-11.9
libstdc++33-32bit-3.3.3-11.9
libstdc++43-devel-4.3.4_20091019-0.22.17(实际安装版本:libstdc++43-devel-4.3.4_20091019-0.37.30)
libstdc++46-4.6.1_20110701-0.13.9 (实际安装版本:libstdc++46-4.6.9-0.11.38)
libgcc46-4.6.1_20110701-0.13.9 (实际安装版本:libstdc++46-4.6.9-0.11.38)
make-3.81 (实际安装版本:make-3.81-128.20)
sysstat-8.1.5-7.32.1 (实际安装版本:sysstat- 8.1.5-7.45.24)
xorg-x11-libs-32bit-7.4 (实际安装版本:xorg-x11-libs-32bit-7.4-8.26.32.1)
xorg-x11-libs-7.4 (实际安装版本:xorg-x11-libs-7.4-8.26.32.1)
xorg-x11-libX11-32bit-7.4 (实际安装版本:xorg-x11-libX11-32bit-7.4-5.9.1)
xorg-x11-libX11-7.4 (实际安装版本:xorg-x11-libX11-.4-5.9.1)
xorg-x11-libXau-32bit-7.4 (实际安装版本:xorg-x11-libXau-32bit-7.4-1.15)
xorg-x11-libXau-7.4 (实际安装版本:xorg-x11-libXau-7.4-1.15)
xorg-x11-libxcb-32bit-7.4 (实际安装版本:xorg-x11-libxcb-32bit-7.4-1.29.1)
xorg-x11-libxcb-7.4 (实际安装版本:xorg-x11-libxcb-7.4-1.29.1)
xorg-x11-libXext-32bit-7.4 (实际安装版本:xorg-x11-libXext-32bit-7.4-1.16.21)
xorg-x11-libXext-7.4 (实际安装版本:xorg-x11-libXext-7.4-1.16.21)
unixODBC-2.2.14 (64-bit) (实际安装版本:unixODBC-2.2.12-198.17)
unixODBC-devel-2.2.14 (64-bit) (实际安装版本:unixODBC-devel-2.2.12-198.17)
第三部分:创建RAC安装所需要的目录和用户
---创建用户组
groupadd -g 2000 oinstall
groupadd -g 2001 dba
groupadd -g 2002 asmdba
groupadd -g 2003 asmadmin
groupadd -g 2004 asmoper
---创建用户,设定密码
useradd -G asmdba,dba -g oinstall -s /bin/ksh -u 3000 oracle
useradd -G asmdba,asmadmin,asmoper -g oinstall -s /bin/ksh -u 3001 grid
passwd oracle
passwd grid
---创建GI与DB安装目录,设置权限
mkdir -p /oracle/app <---central Inventory的上层目录
mkdir -p /oracle/app/11.2.0/grid <---grid用户的ORACLE_HOME
mkdir -p /oracle/app/grid <---grid用户的ORACLE_BASE
chown -R grid.oinstall /oracle/app/
mkdir -p /oracle/app/oracle/ <---oracle用户的ORACLE_BASE
mkdir -p /oracle/app/oracle/product/11.2.0/db_1 <---oracle用户的ORACLE_HOME
chown -R oracle.oinstall /oracle/app/oracle
chmod g+w /oracle/app <---GI安装完属主会变成root.oinstall,提前加上同组写权限,以便Inventory目录能够正常创建
第四部分:安装 RAC前的预配置工作
---配置/etc/hosts
192.168.1.121 suse1 suse1.oracle.com
192.168.1.122 suse1-vip
172.168.1.121 suse1-priv
192.168.1.123 suse2 suse2.oracle.com
192.168.1.124 suse2-vip
172.168.1.123 suse2-priv
192.168.1.126 suse-cluster suse-cluster-scan
---定义grid用户环境变量
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/11.2.0/grid
export PATH=$PATH:$ORACLE_HOME/bin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH:
export CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
set -o vi
---定义oracle用户环境变量
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH:
export CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
set -o vi
---设定grid、oracle用户的limit参数,在/etc/security/limits.conf里加入
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
---设定系统内核参数,在/etc/sysctl.conf里加入,并使之生效
kernel.sem=250 32000 100 128 #(系统缺省1250 32000 100 256)
kernel.shmall=524288 #(系统缺省2097152)
kernel.shmmax= 2147483648 #(系统缺省3294967296)
kernel.shmmni=4096
fs.file-max=6815744
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
vm.hugetlb_shm_group= 2000 #(oinstall的groupid)
sysctl -p
chkconfig boot.sysctl on #系统启动时能读取/etc/sysctl.conf
---在/etc/pam.d/xdm和/etc/pam.d/su两个文件里加入PAM相关设定
session required pam_limits.so
---配置时间同步
(1) /etc/ntp.conf里
删除
server 127.127.1.0 # local clock (LCL)行
加入
server 192.168.1.121 # local clock (LCL)
注释掉
fudge 127.127.1.0 stratum 10 # LCL is unsynchronized
(2) /etc/sysconfig/ntp里
NTPD_OPTIONS="-g -u ntp:ntp"
修改成
NTPD_OPTIONS="-x -g -u ntp:ntp"
(3) ntp服务设置并启动
suse1:/etc/sysconfig # chkconfig --level 35 ntp on
insserv: warning: current start runlevel(s) (3 5) of script `vboxadd-x11' overwrites defaults (empty).
suse1:/etc/sysconfig # chkconfig --list ntp
ntp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
suse1:/etc/sysconfig # rcntp status
Checking for network time protocol daemon (NTPD): unused
suse1:/etc/sysconfig # rcntp start
Starting network time protocol daemon (NTPD) done
suse1:/etc/sysconfig # rcntp status
remote refid st t when poll reach delay offset jitter
==============================================================================
suse1 .INIT. 16 u - 64 0 0.000 0.000 0.000
Checking for network time protocol daemon (NTPD):
suse1:/etc/sysconfig # ps -ef|grep -i ntp | grep -v grep
ntp 24032 1 0 17:13 ? 00:00:00 /usr/sbin/ntpd -p /var/run/ntp/ntpd.pid -x -g -u ntp:ntp -i /var/lib/ntp -c /etc/ntp.conf
第五部分:clone出第二个节点
图65、66、67:从suse1.tpl这个虚拟机Clone出一个名为suse1的虚拟机
以上clone的过程默认会将目标主机与源主机的.vdi文件放在同一个盘符下,如果想放在不同的盘符里,可以在clone完之后使用如下方法将目标主机的.vdi文件挪至新的盘符:
A) 把suse1-disk1.vdi从源目录F:/VBoxVMs/SUSE 11/suse1移到目标目录G:/VBoxVMs/SUSE 11/suse1
B) 执行如下命令在VBOX命令行为新路径下的.vdi文件生成一个新的UUID
"E:/Program Files/VirtualBox/VBoxManage.exe" internalcommands sethduuid "G:/VBoxVMs/SUSE 11/suse1/suse1-disk1.vdi"
UUID changed to: a9f2a180-8c4b-4558-bef1-a7af09139f8a
C) 在”存储”设置界面中删除原来的.vdi文件,指向新的.vdi文件,图67-1、67-2、67-3
备份位置和共享目录有必要的话也改一下,图68、69
---要使clone出来的节点能正常启动,还须完成如下配置
首次启动clone节点是会停在以下界面,图70:
原因在于clone出来的节点上的硬盘编号与源主机硬盘编号不同,但在clone主机的/boot/grub/menu.lst文件里仍保留着源主机上的硬盘编号,启动时按照menu.lst文件中的编号在clone主机上找当然找不到对应的硬盘,于是就出现了上述界面,’ata-VBOX_HARDDISK_VB52946b9d-44ce5752’这一串就是源主机上的硬盘编号在clone主机无法找到对应硬盘。
解决方法:
按照界面的提示输入”n”进入shell提示符,在/dev/disk/by-id目录下找到clone主机真正的硬盘编号,图71:
通过SLES 11安装光盘引导重启clone主机到Rescue模式,图72、73:
手工mount /boot,图74:
mount /dev/sda1 /boot
修改/boot/grub/menu.lst里的”52946b9d-44ce5752”替换成”73b3b14c-7e51ecb7”,图75,保存后重启主机,注意这次从硬盘启动
启动时还是会有些小问题,在fsck的时候还是去找了源主机上的硬盘,图76,按提示进入maintenance模式:
图77,/etc/fstab文件中上半部分还是使用了源主机的硬盘编号,把这部分也改成新的编号
修改后再次重启成功,事后经过多次测试可以在mount /boot的同时mount /dev/sda2 /mnt,将/mnt/etc/fstab里的硬盘编号也改成新的,这样就少了一次重启
---对clone出来的节点作配置修改
因为RAC要求不同节点对应的网卡名称必须相同,先删除多余网卡、配置IP地址,再到/etc/udev/rules.d/70-persistent-net.rules里修改网卡名称”eth2”修改为”eth0”、 ”eth3”修改为”eth1”,然后重启主机,进行IP地址配置,图77-2、78、79、80
配置完成从源主机Ping测试网络连通性
suse1:/etc/sysconfig/network # ping suse2
PING suse2 (192.168.1.123) 56(84) bytes of data.
64 bytes from suse2 (192.168.1.123): icmp_seq=1 ttl=64 time=5.89 ms
64 bytes from suse2 (192.168.1.123): icmp_seq=2 ttl=64 time=0.257 ms
^C
--- suse2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.257/3.075/5.894/2.819 ms
suse1:/etc/sysconfig/network # ping suse2-priv
PING suse2-priv (172.168.1.123) 56(84) bytes of data.
64 bytes from suse2-priv (172.168.1.123): icmp_seq=1 ttl=64 time=4.80 ms
^C
--- suse2-priv ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 4.804/4.804/4.804/0.000 ms
第六部分:配置共享存储
---在Vbox界面里给第1个节点后添加存储,图81、82、83
总共添加了1G、2G、4G三种规格的盘,每种盘各8块,将这些盘的属性改为共享,图84
---让第2个节点认出刚才在第1个节点上配置的共享存储,同样需要先关闭节点,图85、86
---重启suse1、suse2两个节点完成udev的配置,使之成为ASM candidate device
suse1:/dev # ls -l sd*
brw-rw---- 1 root disk 8, 0 Jun 15 07:33 sda
brw-rw---- 1 root disk 8, 1 Jun 15 07:33 sda1
brw-rw---- 1 root disk 8, 2 Jun 15 07:33 sda2
brw-rw---- 1 root disk 8, 3 Jun 15 07:33 sda3
brw-rw---- 1 root disk 8, 4 Jun 15 07:33 sda4
brw-rw---- 1 root disk 8, 5 Jun 15 07:33 sda5
brw-rw---- 1 root disk 8, 16 Jun 15 07:33 sdb
brw-rw---- 1 root disk 8, 32 Jun 15 07:33 sdc
brw-rw---- 1 root disk 8, 48 Jun 15 07:33 sdd
brw-rw---- 1 root disk 8, 64 Jun 15 07:33 sde
brw-rw---- 1 root disk 8, 80 Jun 15 07:33 sdf
brw-rw---- 1 root disk 8, 96 Jun 15 07:33 sdg
brw-rw---- 1 root disk 8, 112 Jun 15 07:33 sdh
brw-rw---- 1 root disk 8, 128 Jun 15 07:33 sdi
brw-rw---- 1 root disk 8, 144 Jun 15 07:33 sdj
brw-rw---- 1 root disk 8, 160 Jun 15 07:33 sdk
brw-rw---- 1 root disk 8, 176 Jun 15 07:33 sdl
brw-rw---- 1 root disk 8, 192 Jun 15 07:33 sdm
brw-rw---- 1 root disk 8, 208 Jun 15 07:33 sdn
brw-rw---- 1 root disk 8, 224 Jun 15 07:33 sdo
brw-rw---- 1 root disk 8, 240 Jun 15 07:33 sdp
brw-rw---- 1 root disk 65, 0 Jun 15 07:33 sdq
brw-rw---- 1 root disk 65, 16 Jun 15 07:33 sdr
brw-rw---- 1 root disk 65, 32 Jun 15 07:33 sds
brw-rw---- 1 root disk 65, 48 Jun 15 07:33 sdt
brw-rw---- 1 root disk 65, 64 Jun 15 07:33 sdu
brw-rw---- 1 root disk 65, 80 Jun 15 07:33 sdv
brw-rw---- 1 root disk 65, 96 Jun 15 07:33 sdw
brw-rw---- 1 root disk 65, 112 Jun 15 07:33 sdx
brw-rw---- 1 root disk 65, 128 Jun 15 07:33 sdy
输出配置内容加入到99-oracle-asmdevices.rules
cd /dev
ls -1 sd* | grep -v [0-90] | grep -v sda | cut -c 3-3|while read v_alpha
do
echo "KERNEL==/"sd*/", SUBSYSTEM==/"block/", PROGRAM==/"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev//$name/", RESULT==/"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$v_alpha`/", NAME=/"asm$v_alpha/", OWNER=/"grid/", GROUP=/"asmadmin/", MODE=/"0660/""
done >> /etc/udev/rules.d/99-oracle-asmdevices.rules
同步到suse2
scp /etc/udev/rules.d/99-oracle-asmdevices.rules suse2:/etc/udev/rules.d/
启动udev
suse1:/dev # /etc/init.d/boot.udev stop
Stopping udevd: done
suse1:/dev # /etc/init.d/boot.udev start
Starting udevd: done
Loading drivers, configuring devices:
检查asm device已在/dev/目录下生成
suse1:/dev # ls -ld asm*
brw-rw---- 1 grid asmadmin 8, 16 Jun 15 16:54 asmb
brw-rw---- 1 grid asmadmin 8, 32 Jun 15 16:54 asmc
brw-rw---- 1 grid asmadmin 8, 48 Jun 15 16:54 asmd
brw-rw---- 1 grid asmadmin 8, 64 Jun 15 16:54 asme
brw-rw---- 1 grid asmadmin 8, 80 Jun 15 16:54 asmf
brw-rw---- 1 grid asmadmin 8, 96 Jun 15 16:54 asmg
brw-rw---- 1 grid asmadmin 8, 112 Jun 15 16:54 asmh
brw-rw---- 1 grid asmadmin 8, 128 Jun 15 16:54 asmi
brw-rw---- 1 grid asmadmin 8, 144 Jun 15 16:54 asmj
brw-rw---- 1 grid asmadmin 8, 160 Jun 15 16:54 asmk
brw-rw---- 1 grid asmadmin 8, 176 Jun 15 16:54 asml
brw-rw---- 1 grid asmadmin 8, 192 Jun 15 16:54 asmm
brw-rw---- 1 grid asmadmin 8, 208 Jun 15 16:54 asmn
brw-rw---- 1 grid asmadmin 8, 224 Jun 15 16:54 asmo
brw-rw---- 1 grid asmadmin 8, 240 Jun 15 16:54 asmp
brw-rw---- 1 grid asmadmin 65, 0 Jun 15 16:54 asmq
brw-rw---- 1 grid asmadmin 65, 16 Jun 15 16:54 asmr
brw-rw---- 1 grid asmadmin 65, 32 Jun 15 16:54 asms
brw-rw---- 1 grid asmadmin 65, 48 Jun 15 16:54 asmt
brw-rw---- 1 grid asmadmin 65, 64 Jun 15 16:54 asmu
brw-rw---- 1 grid asmadmin 65, 80 Jun 15 16:54 asmv
brw-rw---- 1 grid asmadmin 65, 96 Jun 15 16:54 asmw
brw-rw---- 1 grid asmadmin 65, 112 Jun 15 16:54 asmx
brw-rw---- 1 grid asmadmin 65, 128 Jun 15 16:54 asmy
第七部分:安装配置GI
这部分大家都比较熟了,不作详细解释,只截取关键步骤的截图,图87、88、89、90、91、92、93、94
之后在按照提示运行root.sh的时候,出现了” USM driver install actions failed”错误
suse1:~ # /oracle/app/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /oracle/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /oracle/app/11.2.0/grid/crs/install/crsconfig_params
User ignored Prerequisites during installation
Installing Trace File Analyzer
USM driver install actions failed
/oracle/app/11.2.0/grid/perl/bin/perl -I/oracle/app/11.2.0/grid/perl/lib -I/oracle/app/11.2.0/grid/crs/install /oracle/app/11.2.0/grid/crs/install/rootcrs.pl execution failed
MOS上提供了p17475946_112040_Linux-x86-64.zip补丁解决该问题,先退出图形安装界面,安装17475946补丁
---1、节点1运行opatch auto安装17475946补丁
su - grid
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp <---生成OCM文件缺省是$HOME目录下的grid.rsp
su - root
suse1:/oracle/media/17475946p # ls
17475946 README.html README.txt bundle.xml
suse1:/oracle/media/17475946p # cd ..
suse1:/oracle/media # /oracle/app/11.2.0/grid/OPatch/opatch auto /oracle/media/17475946p -och /oracle/app/11.2.0/grid -ocmrf /home/grid/ocm.rsp <--改用-och,此选项用于CRS未启动的情况
以下是安装补丁期间的输出
Executing /oracle/app/11.2.0/grid/perl/bin/perl /oracle/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /oracle/media -patchn 17475946p -och /oracle/app/11.2.0/grid -ocmrf /home/grid/ocm.rsp -paramfile /oracle/app/11.2.0/grid/crs/install/crsconfig_params
This is the main log file: /oracle/app/11.2.0/grid/cfgtoollogs/opatchauto2016-06-17_19-10-55.log
This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/oracle/app/11.2.0/grid/cfgtoollogs/opatchauto2016-06-17_19-10-55.report.log
2016-06-17 19:10:55: Starting Clusterware Patch Setup
Using configuration parameter file: /oracle/app/11.2.0/grid/crs/install/crsconfig_params
/oracle/app/11.2.0/grid/bin/crsctl query crs activeversion ... failed rc=8 with message:
Oracle Cluster Registry initialization failed accessing Oracle Cluster Registry device: PROC-26: Error while accessing the physical storage ORA-29701: unable to connect to Cluster Synchronization Service
Stopping CRS...
Stopped CRS successfully
patch /oracle/media/17475946p/17475946 apply successful for home /oracle/app/11.2.0/grid <---表示17475946补丁安装成功
Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.
。。。中间隔了大约5分钟
Oracle Grid Infrastructure stack start initiated but failed to complete at /oracle/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 11814.
---安装完成后使用opatch lsinventory能看到该补丁安装成功
Interim patches (1) :
Patch 17475946 : applied on Fri Jun 17 19:15:51 CST 2016
Unique Patch ID: 18978376
Patch description: "ACFS Interim patch for 17475946"
Created on 29 May 2015, 06:35:10 hrs PST8PDT
Bugs fixed:
17475946
---2、节点2运行opatch auto安装17475946补丁
过程及输出同节点1
---3、由于之前配置CRS的过程中遇到了” USM driver install actions failed”报错而半途中断,这里需要重新配置CRS
先deconfig,清理掉上次残留下的配置
节点1、节点2:分别执行deconfig.sh
su - root
/oracle/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -verbose
Successfully deconfigured Oracle clusterware stack on this node <---出现这行表示Deinstall成功
节点1:重新执行config.sh
su - grid
cd $ORACLE_HOME/crs/config
./config.sh
再按照提示分别在node 1、node 2执行
/oracle/app/11.2.0/grid/root.sh <---命令输出如下,这次没有了"USM driver install actions failed"错误,说明17475946补丁确实生效了,但出现了下面这条的错误:
Creation of ASM spfile in disk group failed. Following error occured: ORA-29780: unable to connect to GPnP daemon [CLSGPNP_ERR]
上述错误MOS指出是由执行root.sh的用户设置的GRID_HOME不正确引起的,果然我们看到root用户的环境变量中存在ORA_CRS_HOME、ORA_ASM_HOME两个环境变量,这两变量并非我们人为设置,其它还有ORACLE_SID、ORACLE_BASE、ORACLE_HOME三个变量也不是我们所设置,猜测可能是因为我们在安装OS时选择了安装oracle_server包所致
suse1:/etc # env | grep ORA
ORA_CRS_HOME=/opt/oracle/product/11gR1/crs
ORA_ASM_HOME=/opt/oracle/product/11gR1/asm
ORACLE_SID=orcl
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/11gR1/db
暂时没找到这些环境变量放在那些个系统配置文件里,于是干脆在node 1、node 2两节点的/root/.profile里清空掉这些变量
unset ORA_CRS_HOME
unset ORA_ASM_HOME
unset ORACLE_SID
unset ORACLE_BASE
unset ORACLE_HOME
节点 1:完成上述调整后重新执行root.sh
su - root
/oracle/app/11.2.0/grid/root.sh
这回终于往下走了
。。。省略了部分内容
ASM created and started successfully.
Disk Group DATA mounted successfully.
clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 5dcd311cc84b4fe8bfb70fc21cea2d34.
Successful addition of voting disk 076d2279e9ad4fe9bfaf2fcf2d944d20.
Successful addition of voting disk 0f97acb2b7ea4fb1bfc2965317c2a0f2.
Successfully replaced voting disk group with +DATA.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 5dcd311cc84b4fe8bfb70fc21cea2d34 (/dev/asmb) [DATA]
2. ONLINE 076d2279e9ad4fe9bfaf2fcf2d944d20 (/dev/asmc) [DATA]
3. ONLINE 0f97acb2b7ea4fb1bfc2965317c2a0f2 (/dev/asmd) [DATA]
Located 3 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'suse1'
CRS-2676: Start of 'ora.asm' on 'suse1' succeeded
CRS-2672: Attempting to start 'ora.DATA.dg' on 'suse1'
CRS-2676: Start of 'ora.DATA.dg' on 'suse1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
节点 2:同样需要执行root.sh
su - root
/oracle/app/11.2.0/grid/root.sh
执行完后检查Clusterware状态正常,图95
节点1:回到原图形安装界面继续下面的步骤
图96
图97:忽略掉Oracle Cluster Verification Utiliy的Failed,因为”suse-cluster-scan”名称我们是通过本地hosts解析的没有通过DNS所以验证时报错
第八部分:安装DB与建库
---安装DB软件
这里也是把一些主要步骤的截图提供出来,不一一列举了,图98、99、100、101、102、103
在安装DB软件的过程中唯一需要注意的地方是:
oracle用户下的环境变量ORA_NLS10要么不要设置要么设置为$GRID_HOME/nls/data,如果设置为$ORACLE_HOME/nls/data,则在进行到”Prerequisite Checks”阶段时会遇到如下错误:
An internal error occurred within cluster verification framework
Unable to obtain network interface list from Oracle Clusterware PRCT-1011 : Failed to run "oifcfg". Detailed error: null。MOS文档1380183.1对此有记载。可以在DB安装完之后恢复ORA_NLS10参数的设定
---建库
这里也是把一些主要步骤的截图提供出来,不一一列举了,图104、105、106、107、108、109、110