【MOS】Clusterware 和 RAC 中的域名解析的配置校验和检查 (Doc ID 1945838.1)

0    783    5

👉 本文共约6012个字,系统预计阅读时间或需23分钟。

Clusterware 和 RAC 中的域名解析的配置校验和检查 (Doc ID 1945838.1)

适用于:

Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Backup Service - 版本 N/A 和更高版本
Generic Linux
Generic UNIX

用途

Cluster Verification Utility(简称 CVU,命令式 runcluvfy.sh 或者 cluvfy)是个非常实用的检查网络和域名解析的工具,但是它也可能无法捕获到所有的问题。如果网络和域名解析在安装之前没有正常的配置,通常直接导致安装的失败。如果网络或者域名解析出现故障,通常会导致 clusterware 或者 RAC 会出现错误。本文的目的在于列出一些和网络以及域名相关的检查项目来检验网络和域名解析对 Grid Infrastructure(clusterware)和 RAC 的配置是否是正确的。

适用范围

本文提供给 Oracle Clusterware/RAC 数据库管理员和 Oracle 的技术支持工程师参考。

详细信息

A. 必要条件

  • 无论是公网或者私网,通过 network ping 的方式通过网卡传输 MTU 大小的数据包能够正常工作。并且ping的时间非常短。
  • IP 地址 127.0.0.1 需要映射到 localhost 或者 localhost.localdomain 上。
  • 不要把任何网卡的地址配置成 127...*。
  • 公网网卡的名称在所有节点上都必须是相同的。
  • 私网网卡的名称在 11gR2 的版本上,推荐使用相同的,在 11.2 之前的版本必须是相同的。
  • 无论是公网还是私网,都不能使用本地的子网(169.254..),公网和私网应该分布在不同的子网中。
  • MTU 的设置在所有的节点的网络配置中都应该是相同的。
  • Network size 的配置在所有的节点的网络配置中也都应该是相同的。
  • 由于私有网络连接的实效性,traceroute 需要能够在网卡的 MTU 设置上没有碎片的传输或者在所有节点的路由表中通过一“跳”完成。
  • 私网之间的防火墙必须是关闭的状态。
  • 对于 10.1 到 11.1 的版本,域名解析需要对公共名称(public name),私有名称(private name),虚拟名称(virtual name)都生效。
  • 对于 11.2 的版本,如果没有 Grid Naming Service (简称 NS),域名解析需要对公共名称(public name),私有名称(private name),虚拟名称(virtual name),SCAN 名称都生效。而且如果 SCAN 是通过 DNS 配置的,那么 scan name 就不能包含在本地的 host 文件中。
  • 对于 11.2.0.2 以及以上的版本,多播群 230.0.1.0 需要能够在私网的网络配置中工作;如果打了补丁 9974223 230.0.1.0 和 224.0.0.251 是都支持的。如果打了补丁 10411721 (问题在 11.2.0.3 的版本上做了修复),广播会被支持。详细请参考 Multicast/Broadcast 的验证部分。
  • 对于 11.2.0.1 到 11.2.0.3 的版本,安装的过程中,如果您没有配置正确 pubic IP, node VIP, and SCAN VIP ,OUI 安装的过程中会提示 warning。这个 bug9574976 在版本 11.2.0.4 中做了修复,warning 的信息将不再提示。
  • 11.2.0.2 之前,Oracle 推荐您使用 OS 级别的网卡绑定功能,根据操作系统平台的不同,您可以能布置不同的绑定方式,如:Etherchannel, IPMP, MultiPrivNIC 等等,您需要咨询 OS 的管理员来做网卡的绑定功能。从 11.2.0.2 之后,私网冗余和 HAIP 被引入来支持本地的多个私网网卡的冗余功能,详细信息,请查看考文档 note 1210883.1
  • 如果您的网络中启用了 jumbo frames,您也可以通过命令来进行检查,关于 jumbo frames 的详细信息,请参考文档 note 341788.1

B. 正常配置的案例

以下例子中是验证网络配置的过程中我们期望看到的正常的结果。由于 11.2 和 11.1 之前的版本,在网络配置上稍有不同,我们这里提供了两个例子。11gR1 中或以下 11gR2 中之间的区别是 11gR1 中,我们需要公共的名称,VIP 的名称,私有的名称,我们依赖于私有的名称来找出集群的私网的 IP 地址。从 11.2 开始我们将不再依赖于私网,当集群启动时私网的配置将建立在 GPNP profile 上。假设我们有一个 3 个节点的集群,我们看到的信息是如下显示:

以下是每个节点上都应该验证的,我们给出的例子是 Linux 平台的示例:

  1. 找到 MTU 设置
    /bin/netstat -in
    Kernel Interface table
    Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0 1500 0 203273 0 0 0 2727 0 0 0 BMRU

# 以上示例中 MTU 的设置是 eth0 设置的是 1500

  1. 找到 IP 地址和子网,比对所有节点上的 broadcast 和 netmask 的信息
    /sbin/ifconfig
    eth0 Link encap:Ethernet HWaddr 00:16:3E:11:11:11
    inet addr:120.0.0.1 Bcast:120.0.0.127 Mask:255.255.255.128
    inet6 addr: fe80::216:3eff:fe11:1111/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:203245 errors:0 dropped:0 overruns:0 frame:0
    TX packets:2681 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:63889908 (60.9 MiB) TX bytes:319837 (312.3 KiB)
    ..

在以上示例中,eth0 的 IP 地址配置是 120.0.0.1,broadcast 是 120.0.0.127,子网掩码是 255.255.255.128,它的子网是 120.0.0.0,这里最多可以配置 126 个 IP 地址。更多详细信息,请参考“子网的基础信息”部分。

注意:每一个被激活的网卡必须具备“UP”和“RUNNING”的标识。在Solaris平台,"PHYSRUNNING"表示物理网卡是否运行。

  1. 通过运行两次 ping 的命令来确保和以下结果是一致的:

以下是 ping 的例子(从节点 1 public name 到节点 2 的 public name)。

PING rac2 (120.0.0.2) from 120.0.0.1 : 1500(1528) bytes of data.
1508 bytes from rac1 (120.0.0.2): icmp_seq=1 ttl=64 time=0.742 ms
1508 bytes from rac1 (120.0.0.2): icmp_seq=2 ttl=64 time=0.415 ms

--- rac2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.415/0.578/0.742/0.165 ms

请注意丢包和时间。如何丢包不是0%,或者不是sub-second,那说明网络有问题,请联系网络管理员检查。

3.1 在本地通过 public 的 ip 地址,来 ping 所有节点的 public node names,同时使用 MTU 大小的包,来确保网络的连通性。
/bin/ping -s -c 2 -I 120.0.0.1 rac1
/bin/ping -s -c 2 -I 120.0.0.1 rac1
/bin/ping -s -c 2 -I 120.0.0.1 rac2
/bin/ping -s -c 2 -I 120.0.0.1 rac2
/bin/ping -s -c 2 -I 120.0.0.1 rac3
/bin/ping -s -c 2 -I 120.0.0.1 rac3

3.2.1 通过本地的私网 IP 地址,使用 MTU 大小的包,检查所有节点的私网连通性
# 适合 11gR2 的案例,私网名称是可选的
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.1
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.1
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.2
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.2
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.3
/bin/ping -s -c 2 -I 10.0.0.1 10.0.0.3

3.2.2 通过本地的私网名称,使用 MTU 大小的包,检查所有节点的私网IP的连通性
# 适用于 11gR1 和之前的版本。
/bin/ping -s -c 2 -I 10.0.0.1 rac1p
/bin/ping -s -c 2 -I 10.0.0.1 rac1p
/bin/ping -s -c 2 -I 10.0.0.1 rac2p
/bin/ping -s -c 2 -I 10.0.0.1 rac2p
/bin/ping -s -c 2 -I 10.0.0.1 rac3p
/bin/ping -s -c 2 -I 10.0.0.1 rac3p

  1. Traceroute 私有网络

以下例子,演示了通过 traceroute 从节点 1 的私网 IP 到节点 2 的私有名称的过程。

# MTU包大小 - 在Linux平台 包长度需要减去28字节,否则出错:Message too long is reported.
# 例如,MTU值是1500,那么我们应该使用1472:

traceroute to rac2p (10.0.0.2), 30 hops max, 1472 byte packets
1 rac2p (10.0.0.2) 0.626 ms 0.567 ms 0.529 ms

MTU 大小的包,通过1跳完成,没有透过路由表,输出中没有出现故障信息,如:"*" or "!H" 的存在表示有故障。

注意:traceroute 中的选项”-F” 在RHEL3/4 OEL4 的版本上由于 OS 的 bug 是不支持的,详细信息,请参考 note: 752844.1

4.1 通过本地的私网 IP 地址,traceroute 所有节点的私网 IP 地址
# 11gR2 版本及更高版
/bin/traceroute -s 10.0.0.1 -r -F 10.0.0.1
/bin/traceroute -s 10.0.0.1 -r -F 10.0.0.2
/bin/traceroute -s 10.0.0.1 -r -F 10.0.0.3

如果 "-F" 选项不能工作,那么不使用"-F" 选项,但是包大小设置为3倍MTU值

/bin/traceroute -s 10.0.0.1 -r 10.0.0.1

4.2 通过本地的私网 IP 地址,traceroute 所有节点的私网 IP 地址
# 11gR1 和之前的版本
/bin/traceroute -s 10.0.0.1 -r -F rac1p
/bin/traceroute -s 10.0.0.1 -r -F rac2p
/bin/traceroute -s 10.0.0.1 -r -F rac3p

  1. Ping VIP hostname
    # Ping 所有 VIP nodename 确保可以解析成正确而的 ip 地址。
    # 在 clusterware 之前,ping 的命令需要可以解析所有的 VIP 的节点名字,但是 vip 的地址会失败,因为 vip 是由 clusterware 来管理的。
    # Clusterware 启动之后,ping 的命令应该会成功:
    /bin/ping -c 2 rac1v
    /bin/ping -c 2 rac1v
    /bin/ping -c 2 rac2v
    /bin/ping -c 2 rac2v
    /bin/ping -c 2 rac3v
    /bin/ping -c 2 rac3v

  2. Ping SCAN name
    # 11gR2 版本
    # Ping SCAN name 应该可以解析到正确的 IP 地址
    # 和 VIP 一样,当在 clusterware 安装之前,ping 的命令仅仅能够解析出来 SCAN name,但是会失败。但是当 clusterware 启动后,ping 的命令式能够正常解析并运行的:
    /bin/ping -s -c 2 -I 120.0.0.1 scancl1
    /bin/ping -s -c 2 -I 120.0.0.1 scancl1
    /bin/ping -s -c 2 -I 120.0.0.1 scancl1

  3. Nslookup VIP hostname 和 SCAN name
    # 11gR2 版本:
    # 检查 VIP 的 nodename 和 SCAN name 是否正常的在 DNS 中进行了配置。
    /usr/bin/nslookup rac1v
    /usr/bin/nslookup rac2v
    /usr/bin/nslookup rac3v
    /usr/bin/nslookup scancl1

  4. 检查域名解析的顺序:
    # Linux,Solaris 和 HP-UX,请检查 /etc/nsswitch.conf,Aix,请检查 /etc/netsvc.conf
    /bin/grep ^hosts /etc/nsswitch.conf
    hosts: dns files

  5. 检查本地的 host 文件配置
    # 如果本地的域名解析是配置在交换机上(nsswitch.conf),请确保解析文件中没有任何笔误或者错误的配置信息,通过 grep 检查所有的 hostname 和 IP 地址。

C. 语法介绍

对于不同的平台上,由于语法的不同,这里给出一些示例:

Linux:

Solaris:

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

HP-UX:

AIX:

Windows:

D. 多播(Multicast)

从版本 11.2.0.2 开始,在引导启动的过程中,多播组 230.0.1.0 需要能够正常工作。patch 9974223 中介绍了关于另外一个支持的多播组 224.0.0.251。

参考 note 1212703.1 来检查多播是否正常工作。

由于 11.2.0.3 的版本中包含了 bug 10411721 的修复,在启动的过程中会尝试 230.0.1.0 和 224.0.0.251 中的任何一个组进行多播传输,如果任何一个是成功的,GI 就能够正常启动。

在 HP-ux 的平台上,如果使用 10GB 的网卡作为私网网卡,如果没有 B.11.31.1011 版本以上的驱动或者 10GigEthr-02 版本或以上的 software bundle,多播可能无法正常工作。请运行
"swlist 10GigEthr-02"命令来检查当前的驱动版本。

E. 运行过程中的网络问题

OSWatcher 或者 Cluster Health Monitor(IPD/OS) 可以用来捕获运行过程中出现的网络问题。

F. 网络故障的现象

  • ping 地址无法正常工作

  • traceroute 无法正常工作

  • 域名解析也无法正常工作。

G. 关于子网的信息

请参考 note 1386709.1 获取更多关于子网的信息。

参考

NOTE:752844.1 - RHEL3, RHEL4, OEL4: traceroute Fails with -F (do not fragment bit) Argument
NOTE:341788.1 - Recommendation for the Real Application Cluster Interconnect and Jumbo Frames

NOTE:1507482.1 - Oracle Clusterware Cannot Start on all Nodes: Network communication with node

missing for 90% of timeout interval
NOTE:1386709.1 - The Basics of IPv4 Subnet and Oracle Clusterware
NOTE:1056322.1 - Troubleshoot Grid Infrastructure/RAC Database installer/runInstaller Issues
NOTE:1210883.1 - Grid Infrastructure Redundant Interconnect and ora.cluster_interconnect.haip
NOTE:1212703.1 - Grid Infrastructure Startup During Patching, Install or Upgrade May Fail Due to Multicasting Requirement

NOTE:301137.1 - OSWatcher (Includes: [Video])

[1]:

    头像

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表评论

    您的电子邮箱地址不会被公开。

    17 − 16 =

     

    嘿,我是小麦,需要帮助随时找我哦
    • 18509239930
    • 个人微信

    • 麦老师QQ聊天
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部
    返回顶部