基于Windows 2019域成员构建0告警Oracle 19c RAC

之前基于Windows工作组架构演示过Oracle RAC的搭建,GI安装过程中Skip了一些警告,Database安装过程还是有相同的警告信息,Skip后还是能完成安装。这次改用AD环境开始以为能自动解决这些告警,实际上问题依旧。没办法,网上根本没人写这块儿东西,相同的告警Linux平台都能轻松解决,放到Windows上却行不通,官方有KB,但是没有support账号,只能去仔细研读Oracle官方文档了:grid-infrastructure-installation-and-upgrade-guide-microsoft-windows.pdf

有了工作组环境下的RAC安装经验,AD环境基本雷同,这次我们先运行安装前自检,
如果你的Public网卡配置了DNS,则自检输出很尴尬的显示如下:
.\runcluvfy.bat stage -pre crsinst -n rac21,rac22 -verbose
PRVF-0002 : could not retrieve local node name
OTDBS03: DNS server failure [response code 2]
//以上是什么鬼信息?找不到相关解析记录?要知道我们的正反双向解析都是OK的哦!

还是仔细看看官方文档对于网络配置准备都说了什么:

上图说的很清楚:1、通过注册表禁用媒体感知;
2、禁用Public网卡的DNS注册;
3、手工配置NIC度量值;
4、指定TCP/UDP的端口区间;

具体做法如下:

1、通过注册表禁用媒体感知;
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
Value Name: DisableDHCPMediaSense
Value: 1

4、指定TCP/UDP的端口区间;
netsh int ipv4 set dynamicport udp start=9000 num=56000
netsh int ipv4 set dynamicport tcp start=9000 num=56000
netsh int ipv4 show dynamicport udp
netsh int ipv4 show dynamicport tcp
3、禁用Public网卡的DNS注册
4、手工配置NIC度量值;建议Public 100/Private 200/SAN 300

这里很奇怪,无论怎样折腾DNS服务器,自检都是两行报错,即使将DNS服务部署在RAC节点上,地址设置成127.0.0.1都没有用,一度怀疑自检脚本有问题或是DNS不支持Windows家的,我没有用Linux下的Named Server去验证,后面有时间可以一试,最后选择不配DNS地址,但此时别忘了配置你的hosts信息,这里提醒下即使所有的record都在DNS上,这里的hosts记录也不能少:

192.168.0.21		rac21.citrix.org.cn
192.168.0.22		rac22.citrix.org.cn
192.168.0.24		rac-cluster-scan.citrix.org.cn
192.168.0.27		rac-cluster-scan.citrix.org.cn
192.168.0.28		rac-cluster-scan.citrix.org.cn
192.168.0.25		rac21-vip.citrix.org.cn
192.168.0.26		rac22-vip.citrix.org.cn
10.254.100.21		rac21-pri-ip.citrix.org.cn
10.254.100.22		rac22-pri-ip.citrix.org.cn
借助ps命令解压缩:
PS C:\> Expand-Archive -LiteralPath C:\WINDOWS.X64_193000_db_home.zip -DestinationPath C:\app\19.0.0\database
PS C:\> Expand-Archive -LiteralPath C:\WINDOWS.X64_193000_grid_home.zip -DestinationPath C:\app\19.0.0\grid

看看输出和//后的注释信息:

PS C:\app\19.0.0\grid> .\runcluvfy.bat stage -pre crsinst -n rac21,rac22 -verbose
java.lang.RuntimeException: no nameservers provided
        at sun.net.spi.nameservice.dns.DNSNameService.<init>(DNSNameService.java:256)
        at sun.net.spi.nameservice.dns.DNSNameServiceDescriptor.createNameService(DNSNameServiceDescriptor.java:35)
        at java.net.InetAddress$3.run(InetAddress.java:951)
        at java.net.InetAddress$3.run(InetAddress.java:940)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.InetAddress.createNSProvider(InetAddress.java:939)
        at java.net.InetAddress.<clinit>(InetAddress.java:984)
        at sun.management.VMManagementImpl.getVmId(VMManagementImpl.java:140)
        at sun.management.RuntimeImpl.getName(RuntimeImpl.java:59)
        at oracle.ops.mgmt.trace.Trace.<clinit>(Trace.java:198)
        at oracle.ops.verification.client.CluvfyDriver.main(CluvfyDriver.java:224)
Cannot create name service:dns,sun: java.lang.RuntimeException: no nameservers provided   //没检测到DNS信息

Verifying Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac22         15.9996GB (1.6776756E7KB)  8GB (8388608.0KB)         passed
  rac21         15.9996GB (1.6776756E7KB)  8GB (8388608.0KB)         passed
Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac22         7.1884GB (7537604.0KB)    50MB (51200.0KB)          passed
  rac21         7.0141GB (7354840.0KB)    50MB (51200.0KB)          passed
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac22         18.8746GB (1.9791412E7KB)  15.9996GB (1.6776756E7KB)  passed
  rac21         18.8746GB (1.9791412E7KB)  15.9996GB (1.6776756E7KB)  passed
Verifying Swap Size ...PASSED
Verifying Free Space: rac22:C:\app\19.0.0\grid,rac22:C:\Users\root\AppData\Local\Temp ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  C:\app\19.0.0\grid  rac22         C             75.6046GB     7GB           passed
  C:\Users\root\AppData\Local\Temp  rac22         C             75.6046GB     1GB           passed
Verifying Free Space: rac22:C:\app\19.0.0\grid,rac22:C:\Users\root\AppData\Local\Temp ...PASSED
Verifying Free Space: rac21:C:\app\19.0.0\grid,rac21:C:\Users\root\AppData\Local\Temp ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  C:\app\19.0.0\grid  rac21         C             75.3999GB     7GB           passed
  C:\Users\root\AppData\Local\Temp  rac21         C             75.3999GB     1GB           passed
Verifying Free Space: rac21:C:\app\19.0.0\grid,rac21:C:\Users\root\AppData\Local\Temp ...PASSED
Verifying Architecture ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac22         64-bit                    64-bit                    passed
  rac21         64-bit                    64-bit                    passed
Verifying Architecture ...PASSED
Verifying Host name ...PASSED
Verifying Node Connectivity ...
Interface information for node "rac22"

 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 private 10.254.100.22   10.254.100.0                    192.168.0.254   00:50:56:89:0A:B2 1500
 public 192.168.0.22    192.168.0.0                     192.168.0.254   00:50:56:89:FC:90 1500
 public 192.168.0.26    192.168.0.0                     192.168.0.254   00:50:56:89:FC:90 1500
 public 192.168.0.27    192.168.0.0                     192.168.0.254   00:50:56:89:FC:90 1500
 public 192.168.0.28    192.168.0.0                     192.168.0.254   00:50:56:89:FC:90 1500

Interface information for node "rac21"

 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 private 10.254.100.21   10.254.100.0                    192.168.0.254   00:50:56:89:D0:8B 1500
 public 192.168.0.21    192.168.0.0                     192.168.0.254   00:50:56:89:7B:98 1500
 public 192.168.0.24    192.168.0.0                     192.168.0.254   00:50:56:89:7B:98 1500
 public 192.168.0.25    192.168.0.0                     192.168.0.254   00:50:56:89:7B:98 1500

Check: MTU consistency on the private interfaces of subnet "10.254.100.0"

  Node              Name          IP Address    Subnet        MTU
  ----------------  ------------  ------------  ------------  ----------------
  rac22             private       10.254.100.22  10.254.100.0  1500
  rac21             private       10.254.100.21  10.254.100.0  1500

Check: MTU consistency of the subnet "192.168.0.0".

  Node              Name          IP Address    Subnet        MTU
  ----------------  ------------  ------------  ------------  ----------------
  rac22             public        192.168.0.22  192.168.0.0   1500
  rac22             public        192.168.0.26  192.168.0.0   1500
  rac22             public        192.168.0.27  192.168.0.0   1500
  rac22             public        192.168.0.28  192.168.0.0   1500
  rac21             public        192.168.0.21  192.168.0.0   1500
  rac21             public        192.168.0.24  192.168.0.0   1500
  rac21             public        192.168.0.25  192.168.0.0   1500

  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  rac21[public:192.168.0.21]      rac22[public:192.168.0.26]      yes
  rac21[public:192.168.0.21]      rac22[public:192.168.0.27]      yes
  rac21[public:192.168.0.21]      rac22[public:192.168.0.28]      yes
  rac21[public:192.168.0.21]      rac22[public:192.168.0.22]      yes
  rac21[public:192.168.0.21]      rac21[public:192.168.0.24]      yes
  rac21[public:192.168.0.21]      rac21[public:192.168.0.25]      yes
  rac22[public:192.168.0.26]      rac22[public:192.168.0.27]      yes
  rac22[public:192.168.0.26]      rac22[public:192.168.0.28]      yes
  rac22[public:192.168.0.26]      rac22[public:192.168.0.22]      yes
  rac22[public:192.168.0.26]      rac21[public:192.168.0.24]      yes
  rac22[public:192.168.0.26]      rac21[public:192.168.0.25]      yes
  rac22[public:192.168.0.27]      rac22[public:192.168.0.28]      yes
  rac22[public:192.168.0.27]      rac22[public:192.168.0.22]      yes
  rac22[public:192.168.0.27]      rac21[public:192.168.0.24]      yes
  rac22[public:192.168.0.27]      rac21[public:192.168.0.25]      yes
  rac22[public:192.168.0.28]      rac22[public:192.168.0.22]      yes
  rac22[public:192.168.0.28]      rac21[public:192.168.0.24]      yes
  rac22[public:192.168.0.28]      rac21[public:192.168.0.25]      yes
  rac22[public:192.168.0.22]      rac21[public:192.168.0.24]      yes
  rac22[public:192.168.0.22]      rac21[public:192.168.0.25]      yes
  rac21[public:192.168.0.24]      rac21[public:192.168.0.25]      yes

  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  rac21[private:10.254.100.21]    rac22[private:10.254.100.22]    yes

  Verifying subnet mask consistency for subnet "192.168.0.0" ...PASSED
  Verifying subnet mask consistency for subnet "10.254.100.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...
Checking subnet "10.254.100.0" for multicast communication with multicast group "224.0.0.251"
Verifying Multicast or broadcast check ...PASSED
Verifying Windows firewall status ...
  Node Name     Enabled?                  Comment
  ------------  ------------------------  ------------------------
  rac22         no                        passed
  rac21         no                        passed
Verifying Windows firewall status ...PASSED
Verifying ASM Integrity ...PASSED
Verifying Network Time Protocol (NTP) ...  //这里是关于NTP的几个配置,需要修改注册表
  Verifying service "W32Time" is running ...PASSED
  Verifying service "W32Time" registry settings ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED    //加入AD后,时间同步自动解决;
Verifying Check: If user "root" is a domain user ...PASSED   //这里可以看出Oracle还是建议大家基于AD环境构建RAC,可实际上很少有人这么做;此外还要将域用户root加入到本地Administrators用户组;
Verifying Time zone consistency ...PASSED
Verifying Time offset between nodes ...PASSED
Verifying Disk Automount feature status ...      //RAW磁盘都要配置Automount;
  Node Name     Enabled?                  Comment
  ------------  ------------------------  ------------------------
  rac22         yes                       passed
  rac21         yes                       passed
Verifying Disk Automount feature status ...PASSED
Verifying Check NIC bind order ...
  Node Name                             Status
  ------------------------------------  ------------------------
  rac22                                 passed
  rac21                                 passed

  Node Name                             Status
  ------------------------------------  ------------------------
  rac22                                 passed
  rac21                                 passed
Verifying Check NIC bind order ...PASSED
Verifying Windows user account consistency check across nodes ...PASSED
Verifying Grid Infrastructure home path: C:\app\19.0.0\grid ...
  Verifying 'C:\app\19.0.0\grid' ...PASSED
Verifying Grid Infrastructure home path: C:\app\19.0.0\grid ...PASSED
Verifying Cluster nodes are not Windows domain controllers. ...   //不允许在DC上安装Cluster节点
  Node Name     Is Windows domain controller  Status
  ------------  ------------------------  ------------------------
  rac22         no                        passed
  rac21         no                        passed
Verifying Cluster nodes are not Windows domain controllers. ...PASSED
Verifying ASM Filter Driver configuration ...PASSED

Pre-check for cluster services setup was successful.   //这里结果很重要;

CVU operation performed:      stage -pre crsinst
Date:                         Jan 19, 2020 1:19:29 PM
CVU home:                     C:\app\19.0.0\grid\
User:                         CITRIX\root
PS C:\app\19.0.0\grid>

其中提到的几个重要的配置如下:

立即生效就用w32tm.exe /config /update命令!

综上所述,我们采取不配置DNS的方式进行GI和Database的安装,果然达到理想效果,GI和Database全程不再有任何基础环境报错:

全部安装完成后添加上DNS记录即可。视频演示如下:

https://www.youtube.com/watch?v=eUwkdlGJ6-s

如果看不到,只能自己想办法了!

https://www.youtube.com/watch?v=eUwkdlGJ6-s