文档内容
|
|
用途 |
|
|
适用范围 |
|
|
详细信息 |
| 情况1. 修改公网对应的主机名 |
| 情况2. 只修改公网 IP, 但是不修改网卡、子网或网络掩码信息,或者只是修改MAC地址,而不需要修改其他信息 |
| 情况3. 修改公网网卡,子网或网络掩码信息 |
| 情况4. 修改 VIP 相关的公网信息 |
| 准备修改VIP |
| 获得当前的 VIP 配置 |
| 停止资源 |
| 修改 VIP 和相关属性 |
| 重新启动资源 |
| 其它 |
| 情况5:修改 SCAN VIP 相关的公网信息 |
|
|
参考 |
本文的目标是通过举例说明的方式说明在 Oracle 集群/GI 环境下如何修改公网对应的主机名,公网 IP、VIP、VIP 对应的主机名或者其他 VIP 相关的属性。
客户端使用 VIP(虚拟 IP)连接 Oracle 数据库的版本为 10g 和 11g 的集群环境。这些虚拟 IP 是和虚拟主机名对应的静态 IP 地址并且通过 DNS 解析(除非您使用了 11gR2 GNS)。
在安装 Oracle 集群管理软件时,用户会被要求为集群中的每一个节点输入一个虚拟 IP 和虚拟主机名。这些信息会被记录在 OCR
(Oracle Cluster Registry)中,而且 HA 框架中的不同组件会依赖于这些 VIP。如果出于某种原因,需要修改
VIP、VIP 对应的主机名或者公网的子网、网络掩码等信息,请按照本文介绍的过程。
集群公网对应的主机名是在安装时输入的,并且被记录在 OCR 中。这个主机名在安装之后是不能修改的。唯一的修改方法是删除节点,修改主机名,之后将节点重新添加到集群,或者直接重新安装集群软件,并完成后续的克隆配置。
如果只需要修改公网 IP 地址,而且新的地址仍然在相同的子网,或者只是修改公网IP的MAC地址,IP/interface/subnet/netmask仍旧保持不变,集群层面不需要做任何修改,所有需要的修改是在 OS 层面反映 IP 地址的变化。
1. 关闭 Oracle 集群管理软件
2. 在网络层面,DNS 和 /etc/hosts 文件中修改 IP 地址,或者直接修改MAC地址
3. 重新启动 Oracle 集群管理软件
以上的修改可以使用滚动的方式完成,例如:每次修改一个节点。
如果修改涉及到了不同的子网(网络掩码)或者网卡,需要将 OCR 中已经存在的网卡信息删除并重新添加新的信息。在以下的示例中子网从 10.2.156.0 被修改为 10.2.166.0,需要执行两个步骤 –首先‘delif’,接下来 ‘setif’:
然后,在操作系统层面进行修改。除非 OS 层面的修改需要重新启动节点,否则不需要重启 Oracle 集群管理软件。修改可以使用滚动的方式完成。
一旦公网信息被修改,与其相关的 VIP 和 SCAN VIP 也需要修改,请参考情况4和情况5。
一般而言,只有 10.2.0.3 之前的版本需要完全的停机。从 10.2.0.3 开始,ASM 和数据库实例对 VIP 资源的依赖关系已经被删除,所以修改 VIP 不需要停止 ASM 和数据库实例,只有当修改 VIP 时产生的客户端连接会受影响。如果修改只涉及到特定的节点,那么只有连接到对应节点的客户端链接在修改时会受影响。
首先,请参考情况3以确保公网信息被修改。如果在 OS 层面的网络修改后发生了节点或者集群管理软件重启,VIP 将不会被启动,请跳过步骤“修改 VIP 和相关属性”。
1. 获取当前设置
对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:
对于版本 11gR2, 使用 Grid Infrastructure 的拥有者执行下面的命令:
2. 验证 VIP 状态
3. 停止 nodeapps 资源 (如果有必要的话,停止存在依赖关系的 ASM 和数据库资源):
对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:
对于版本 11gR2, 使用 Grid Infrastructure 的拥有者执行下面的命令:
4. 验证 VIP 现在处于 OFFLINE 状态,并且 VIP 不再绑定到公网网卡
5. 确定新的 VIP 地址/子网/网络掩码或者 VIP 对应的主机名,在 OS 层面修改网络配置信息,确认新的 VIP 地址应经注册到 DNS 或者确认 /etc/hosts 文件(Unix/Linux 平台),\WINDOWS\System32\drivers\etc\hosts 文件(Windows平台)已经被修改。如果网卡信息被修改,确认在修改之前新的网卡在服务器上已经可用。
6. 使用 root 用户修改 VIP 资源:
注意 1:从版本 11.2 开始,VIP 依赖于 network 资源(ora.net1.network),OCR 只记录 VIP 主机名或者 VIP 资源相关的 IP 地址。集群公网的属性(子网/网络掩码)通过网络资源记录。当 nodeapps 资源被修改后,network资源(ora.net1.network)相关的属性也会随之被修改。
从 11.2.0.2 开始,如果只修改子网/网络掩码信息,网络资源可以通过以下的 srvctl modify network 命令直接修改。
使用 root 用户:
# srvctl modify network -k <network_number>] [-S <subnet>/<netmask>[/if1[|if2...]]
例如:
# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2
如果其他属性没有变化,不需要修改 VIP 或 SCAN VIP。
注意 2:在12.1.0.1的版本上由于Bug 16608577 - CANNOT ADD SECOND PUBLIC INTERFACE IN ORACLE 12.1 ,srvctl modify network 的命令会失败并提示:
# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2
PRCT-1305 : The specified interface name "eth2" does not match the existing network interface name "eth1"
需要通过以下workaround来解决:
# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0
# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2
* 一个 11gR2 修改 VIP 主机名,但是不修改 IP 地址的例子。
7. 验证改变
8. 启动 nodeapps 和其它资源
对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:
对于版本 11gR2, 使用 Grid Infrastructure 的拥有者执行下面的命令:
$ srvctl start vip -n <node_name>
$ srvctl start listener -n <node_name>
$ srvctl start instance -d <db_name> -n <node_name> (可以忽略)
$ srvctl start vip -n racnode1
$ srvctl start listener -n racnode1
$ srvctl start instance -d RACDB -n racnode1
注意:如果网络的属性做了修改,比如netmask 等做了修改,需要重新启动nodeapps
9. 验证新的 VIP 状态为 ONLINE 并且已经绑定到集群公网网卡
10. 如果集群中的其它节点也需要类似的改变,请重复同样的步骤。
11. 如果需要,修改 listener.ora, tnsnames.ora 和 LOCAL_LISTENER/REMOTE_LISTENER 参数反应 VIP 的改变。
对于 11gR2 Grid Infrastructure,客户端可以通过 SCAN 和 SCAN VIP 连接数据库。请参考下面的 Note 修改 SCAN VIP。
Note 952903.1 How to update the IP address of the SCAN VIP resources (ora.scan<n>.vip)
Note 972500.1 How to Modify SCAN Setting or SCAN Listener Port after Installation
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31393455/viewspace-2130397/ ,如需转载,请注明出处,否则将追究法律责任。