一、贵宾:
VIP 是一个虚拟 IP 地址,应该在 DNS 中定义,而不是分配给任何主机或接口。当您安装 GRID/ASM 主目录时,您将指定在 DNS 中分配的 VIP 名称。当 Oracle Clusterware 启动时,它会为集群中的每个节点分配一个 VIP。这个想法是,如果一个节点出现故障(崩溃),集群件可以立即将该 VIP 重新分配给一个新的(幸存的)节点。这样,您可以避免 TCP 超时问题。
接下来,扫描:
SCAN(单一客户端访问名称)是 VIP 的一种特殊情况。SCAN 也应该在 DNS 中定义,而不是分配给任何主机或接口。在 DNS 中应该有与 SCAN 名称关联的三个 IP,并且应该定义 DNS 条目,以便每次查询 DNS 时以循环方式返回三个 IP 之一。
在集群件启动时,组成 SCAN 的三个 VIP 中的每一个都将被分配到集群中的不同节点。(除了在双节点集群的特殊情况下,其中一个节点将分配有 2 个 SCAN VIP。) SCAN 的要点是,无论在集群中添加或删除多少节点,所有tnsnames.ora(或 LDAP 等效项)中的网络服务名称定义永远不需要更改,因为它们都引用 SCAN,无论对集群添加或删除多少节点,SCAN 都不会更改。
例如,在三节点集群中,您可能有:
物理和虚拟主机名/IP 分配如下:
Hostname Physical IP Virtual hostnmae Virtual IP
rac1 10.1.1.1 rac1-vip 10.1.1.4
rac2 10.1.1.2 rac2-vip 10.1.1.5
rac3 10.1.1.3 rac3-vip 10.1.1.6
此外,您可能将 SCAN 定义为:
rac-scan
具有三个 IP 10.1.1.7, 10.1.1.8, 10.1.1.9
,. 同样,将定义 DNS 定义,以便以循环顺序提供这些 IP。
请注意,SCAN VIP、主机 VIP 和物理 IP 都在同一个子网中。
最后,尽管您没有询问它,但要完成图片,您还需要为每个主机分配一个私有的、不可路由的 IP,并且该 IP 将与私有互连相关联。所以,你可能有类似的东西:
rac1-priv 172.16.1.1
rac2-priv 172.16.1.2
rac3-priv 172.16.1.3
请注意,“-priv”地址不应该在 DNS 中,只能在 RAC 集群中每个主机的 /etc/hosts 文件中。(它们是私有的、不可路由的,并且只有集群件会知道或使用这些地址,因此添加到 DNS 没有意义。)
还要注意,'-priv' 和物理 IP/主机名定义应该放在 /etc/hosts 中,而物理 IP 和 VIP 应该放在 DNS 中。因此,DNS 和 /etc/hosts 中的物理 IP,仅在 DNS 中的 VIP,仅在 /etc/hosts 中的“-priv”地址。