最近接手项目客户需要在WINDOWS上安装ORACLE RAC。
客户之前的HIS系统使用WINDOWS 2003 32位系统,ORACLE 10G 32位软件,ROSE双机。
由于新的服务器硬件最低支持操作系统版本为WINDOWS 2012R2,所以对应的ORACLE版本也要升级最低为11.2.0.4,经过与软件沟通,该HIS系统可以支持11.2.0.4版本的数据库(软件版本是有点老- -!好在没说不支持,哈哈),之后参考各种官方文档及咨询小伙伴们的安装经验(从业8年居然第一次遇到UNIX/LINUX以外的RAC安装需求,毕竟就稳定性和性能上来说WINDOWS还是不如LINUX/UNIX)记录了安装步骤,避免了很多安装后会遇到的莫名奇妙坑,也算是个最佳实践吧。
安装的环境如下:
1、WINDOWS 2012R2 标准版本的系统主机两台;
2、华为S2200V3磁盘阵列1台,两台光纤交换机;
3、数据软件版本为11.2.0.4,另外还需要补丁p6880880以及p29596609以便解决后面安装时遇到的BUG问题。
修改WINDOWS操作系统的HOSTS文件,填写相关的记录
192.168.1.204 RAC1
192.168.1.205 RAC2
10.10.10.1 RAC1-PRIV
10.10.10.2 RAC2-PRIV
192.168.1.206 RAC1-VIP
192.168.1.207 RAC2-VIP
192.168.1.208 RAC-SCAN
必须禁用 DHCP 媒体感知。对于 Windows 2000,必须手动实施此项更改,但在 2003 中,该功能是默认禁用的。Windows 2008,此功能又是默认启用的。要禁用 2008 中的 DHCP 媒体感知,请以管理员用户身份在命令窗口中执
行以下命令:
netsh interface ipv4 set global dhcpmediasense=disabled
netsh interface ipv6 set global dhcpmediasense=disabled
使用以下命令验证更改:
netsh interface ipv4 show global
netsh interface ipv6 show global
修改过程如下图所示:
安装 Windows Server 2003 Service Pack 2 (SP2) 或 Windows Server 2003 Scalable Networking Pack (SNP) 之后,关闭默认的 SNP 功能。在安装了启用 TCP/IP Offload的网络适配器的计算机上,您可能会遇到许多与网络相关的问题,例如网络适配器消耗了大量的未分页池内存或者适配器请求较大的连续内存块,进而导致计算机在尝试释放内存时停止响应。此问题也会影响 Windows 2008 操作系统及以上版本
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled
使用以下命令验证更改:
C:\Users\Administrator> netsh interface tcp show global
根据ORACLE官方参考Doc ID 1384337.1,解决 section管理内存问题,该问题会导致WINDOWS数据库的监听无法工作,报错TNS-12531 TNS: Failed to allocate memory
官方文档修改的描述如下:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\ In the right pane, click on Windows and pull down Edit then select Modify. You should see a string that resembles this in its entirety: %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
需要修改768为适当的值,我这里修改为了4096
Windows SharedSection=1024,20480,768
关闭WINDOWS系统的UAC控制,将其设为“从不通知”
并且确认本地安全策略中—“本地策略”—“安全选项”中的用户账户控制内容如下图选中的所示,为“不提示,直接提升”
由于11g rac没有明确支持IPV6,最好禁用掉操作系统的IPV6
修改注册表(修改之前备份注册表)
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters\ ,新建 DisabledComponents 项(DWORD 32 位 类型),输入十六进制值 ffffffff(8个f)。
设置TEMP、TMP为c:\windows\temp
设置虚拟内存16G以上
修改操作系统DEP
上述配置后,重启生效。
根所官方文档描述,对于公网和私网 (NIC),请勿将“PUBLIC”和“PRIVATE”(全部大写)用于网络名称,请参考未发布的 Bug 6844099。您可以使用 public 和 private 这两个词的其他形式,例如:Public 和 Private 是可以接受的,修改网卡名如下图所示:
网卡配置IP的时候,取消勾选的IPV6。另外禁用无用的其它网卡
根据官方最佳实践描述,WIN2012R2中做相同修改操作,具体内容如下:
取消选中“在 DNS 中注册此连接的地址”(特定于 Windows 2008)。参考:Grid Infrastructure / RAC on Windows:IP Addresses for HOST, VIP, AND SCAN Get Scrambled Upon Reboot (Doc ID 1504625.1)默认情况下,在 Windows 2008 中,所有网卡的“在 DNS 中注册此连接的地址”选项均处于打开状态。在先前版本的Windows(例如 Windows 2000/2003)中,选中“在 DNS 中注册此连接的地址”(位于特定的网卡 (NIC) 的 TCP/IP属性中)只会在 DNS 中注册主要/第一个 NIC IP 地址。在 Windows 2008 中,选中“在 DNS 中注册此连接的地址”似乎会自动注册为该 NIC 配置的所有 NIC IP 地址。这可能会导致主机、VIP 和 SCAN IP 在节点重启时出现干扰。因此,应取消选中 Windows 2008 RAC 环境中的所有公网 NIC 的“在 DNS 中注册此连接的地址”,如下所示:
在两台主机上都安装好存储多路径软件,聚合好存储路径生成存储设备,在磁盘管理器中显示如下:
右键磁盘,选择“属性”,查看策略标签中,去掉勾选“启用设备上的写入缓存”。以防止意外掉电导致数据丢失的风险。
进入到cmd中设置磁盘开机自动挂载
diskpart
automount
创建磁盘逻辑分区执行如下命令
Select disk 1 Create partition extend Create partition logical Select disk 2 Create partition extend Create partition logical Exit
最后完成退出
在RAC1节点上刷新一下磁盘。
再去RAC2节点上磁盘管理器中重新扫描一下磁盘,RAC2节点会自动给两块磁盘填上驱动器标号,这时不要格式化磁盘,删除驱动器号。
然后使用grid安装包中的工具对磁盘做标示。
在CMD中进入到GRID安装外的asmtool目录
执行asmtool –list显示磁盘分区
再执行如下命令,标记磁盘
asmtool.exe –add \Device\Harddisk1\Partition1 OCRVOTE
asmtool.exe –add \Device\Harddisk2\Partition1 DATA
最后再执行查看asmtool –list标记是否成功
确保管理员组可以管理审核和安全日志:
WINDOWS共享测试,确保要安装ORACLE软件的目录可以共享访问
在两节点上执行如下命令都能成功
net use \rac1\d$
net use \rac2\d$
最后执行grid安装目录下的检查脚本进行检查
Runcluvfy.bat stage -pre crsinst -n RAC1,RAC2 –verbose
确认最后返回结果为成功
右键以管理员身份运行grid目录里的SETUP.EXE安装包,跳过软件更新
选择“为集群安装和配置Oracle Grid Infrastructure”
选择“高级安装”
默认选择安装语言
取消“配置GNS”,修改集群名与SCAN名称,保持与HOSTS文件一致
手动填写RAC2节点
标记网卡的接口类型
使用“oracle 自动存储管理”
软件会自动识别之前标记好的磁盘,选择OCRVOTE用,冗余为外部
配置ASMSYS密码
不使用IPMI
确定好软件安装目录
用户检查会出现检查项,直接选择“全部忽略”即可。
开始进行安装
重点来了!!
重复试过几次,都是安装到84%时报错,检查日志也并没有发现什么!
经过多次求证官方文档,发现基础的11.2.0.4 GRID软件安装在windows 2012R2版本会有一些BUG导致安装失败,比如:
[INS-20802] Grid Infrastructure failed During Grid Installation On Windows OS
(Doc ID 1987371.1)
除此之外还有其它的相关文档也描述了安装到84%是会报同样的INS-20802错误
针对安装其间出现的问题,ORACLE有两个建议避免
第1种是安装之前做好准备:
建议先在两个节点分别只安装GRID软件,不进行配置,然后安装相就的补丁,之后再执行config.bat进行集群配置
第2种是安装过程中遇到问题:
关闭现有的集群安装界面,通过在1节点执行rootcrs.pl -doconfig -force 取消集群配置,在两个节点分别安装补丁后,再运行config.bat重新进行集群配置
我这里是在安装过程中遇到问题,那么按第2种方法进行处理
1、关闭安装窗口。
2、在RAC1节点,以管理员身份运行CMD
进入到GRID_HOME目录下的perl\bin目录
执行perl d:\app\11.2.0\grid\crs\install\rootcrs.pl -deconfig -force
直到出现successfully deconfigured oracle clusterware stack on this node
3、解压OPATCH补丁p6880880,把现有GRID_HOME里的OPATCH改名为OPATCH.OLD然后拷贝新的OPATCH到该目录下
4、然后解压p29596609补丁(此补丁为2019年最新补丁),然后在CMD下进入到该解压目录下,执行d:\app\11.2.0\grid\opatch\opatch apply -local
按提示按y进行安装.
5、在RAC2节点安装补丁,按3-4步操作执行即可。
6、补丁安装结束后在RAC1节点的d:\app\11.2.0\grid\crs\config目录下,以管理员身份运行config.bat文件
会重新弹出配置界面
其余设置与之前一样,填写好RAC2节点,配置ASM磁盘,然后进行安装,直到安装完毕。
DB软件安装也无其它特殊,除一个BUG需要避免外无其它问题。该BUG会在运行DB软件后,进行集群安报错INS-35423,找不到集群节点
该BUG按参照官方文档
Window: Prerequisite Error INS-35423 And Warnings When Installing RAC
Database Software (Doc ID 2164220.1)
执行相关集群检查都可以通过,集群运行状态正常
官方文档描述如下:
Known issue in INTERNAL Bug 19065263, will be fixed in release 12.2.
要规避该BUG按如下方法执行安装,以管理员身份进行CMD,然后进入到database安装目录,执行:
setup.exe ORACLE_HOSTNAME=RAC1
然后正常安装即可。
注意,安装完DB后先不要创建实例,替换OPATCH,然后分别安装DB数据库补丁,最后再DBCA创建数据库,以避免其它BUG.
也欢迎关注我的公众号【徐sir的IT之路】,一起学习!
————————————————————————————
公众号:徐sir的IT之路
CSDN :https://blog.csdn.net/xxddxhyz?type=blog
墨天轮:https://www.modb.pro/u/3605
PGFANS:https://www.pgfans.cn/user/home?userId=5568
————————————————————————————