适用于:

Oracle Database - Enterprise Edition - 版本 11.2.0.3 到 12.1.0.2 [发行版 11.2 到 12.1]
本文档所含信息适用于所有平台

用途

本文的目标是通过举例说明的方式说明在 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 对应的主机名或者公网的子网、网络掩码等信息,请按照本文介绍的过程。

如果修改涉及到集群私网,请参考 Note 283684.1

详细信息

情况1.   修改公网对应的主机名

集群公网对应的主机名是在安装时输入的,并且被记录在 OCR 中。这个主机名在安装之后是不能修改的。唯一的修改方法是删除节点,修改主机名,之后将节点重新添加到集群,或者直接重新安装集群。

情况2.  只修改公网 IP, 但是不修改网卡、子网或网络掩码信息

如果只需要修改公网 IP 地址,而且新的地址仍然在相同的子网,集群层面不需要做任何修改,所有需要的修改是在 OS 层面反映 IP 地址的变化。

1. 关闭 Oracle 集群管理软件
2. 在网络层面,DNS 和 /etc/hosts 文件中修改 IP 地址
3. 重新启动 Oracle 集群管理软件

以上的修改可以使用滚动的方式完成,例如:每次修改一个节点。

情况3. 修改公网网卡,子网或网络掩码信息

如果修改涉及到了不同的子网(网络掩码)或者网卡,需要将 OCR 中已经存在的网卡信息删除并重新添加新的信息。在以下的示例中子网从 10.2.156.0 被修改为 10.2.166.0,需要执行两个步骤 –首先‘delif’,接下来 ‘setif’:

% $CRS_HOME/bin/oifcfg/oifcfg delif -global <if_name>[/<subnet>]
% $CRS_HOME/bin/oifcfg/oifcfg setif -global <if_name>/<subnet>:public

例如:
% $CRS_HOME/bin/oifcfg delif -global eth0/10.2.156.0 
% $CRS_HOME/bin/oifcfg setif -global eth0/10.2.166.0:public

然后,在操作系统层面进行修改。除非 OS 层面的修改需要重新启动节点,否则不需要重启 Oracle 集群管理软件。修改可以使用滚动的方式完成。

一旦公网信息被修改,与其相关的 VIP 和 SCAN VIP 也需要修改,请参考情况4和情况5。

注意:对于11gR2,上面命令要求集群在所有节点运行,否则报错PRIF-33 和 PRIF-32,比如:
[grid@racnode1 bin]$ ./oifcfg delif -global eth0/192.168.1.0
PRIF-33: Failed to set or delete interface because hosts could not be discovered
CRS-02307: No GPnP services on requested remote hosts.
PRIF-32: Error in checking for profile availability for host racnode2
CRS-02306: GPnP service on host "racnode2" not found.

情况4. 修改 VIP 相关的公网信息

准备修改VIP

一般而言,只有 10.2.0.3 之前的版本需要完全的停机。从 10.2.0.3 开始,ASM 和数据库实例对 VIP 资源的依赖关系已经被删除,所以修改 VIP 不需要停止 ASM 和数据库实例,只有当修改 VIP 时产生的客户端连接会受影响。如果修改只涉及到特定的节点,那么只有连接到对应节点的客户端链接在修改时会受影响。

首先,请参考情况3以确保公网信息被修改。如果在 OS 层面的网络修改后发生了节点或者集群管理软件重启,VIP 将不会被启动,请跳过步骤“修改 VIP 和相关属性”。

获得当前的 VIP 配置

1. 获取当前设置
对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl config nodeapps -n <node> -a

例如:
$ srvctl config nodeapps -n racnode1 -a
VIP exists.: /racnode1-vip/101.17.80.184/255.255.254.0/eth1

对于版本 11gR2, 使用 Grid Infrastructure 的拥有者执行下面的命令:

$ srvctl config nodeapps -a

例如:
$ srvctl config nodeapps -a
Network exists: 1/101.17.80.0/255.255.254.0/eth1, type static
VIP exists: /racnode1-vip/101.17.80.184/101.17.80.0/255.255.254.0/eth1, hosting node racnode1
VIP exists: /racnode2-vip/101.17.80.186/101.17.80.0/255.255.254.0/eth1, hosting node racnode2

2. 验证 VIP 状态

版本 10.2 和 11.1:
$ crs_stat -t

版本 11.2:
$ crsctl stat res -t
- 以上命令应该显示 VIPs 状态为 ONLINE

$ ifconfig -a
(HP 平台请使用 netstat –in, Windows 平台请使用 ipconfig /all)
- VIP 逻辑网卡对应公网网卡

停止资源

3. 停止 nodeapps 资源 (如果有必要的话,停止存在依赖关系的 ASM 和数据库资源):

对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl stop instance -d <db_name> -i <inst_name>   (对于 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop asm -n <node_name>                     (对于 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop nodeapps -n <node_name>

例如: 
$ srvctl stop instance -d RACDB -i RACDB1
$ srvctl stop asm -n racnode1
$ srvctl stop nodeapps -n racnode1

对于版本 11gR2, 使用 Grid Infrastructure 的拥有者执行下面的命令:

$ srvctl stop instance -d <db_name> -n <node_name>   (可以忽略)
$ srvctl stop vip -n <node_name> -f

例如:
$ srvctl stop instance -d RACDB -n racnode1
$ srvctl stop vip -n racnode1 -f

注意1: 对于版本 11gR2,需要使用 -f 选项停止 listener 资源,否则会报以下错误:
PRCR-1014 : Failed to stop resource ora.racnode1.vip
PRCR-1065 : Failed to stop resource ora.racnode1.vip
CRS-2529: Unable to act on 'ora.racnode1.vip' because that would require stopping or relocating 'ora.LISTENER.lsnr', but the force option was not specified
...

4. 验证 VIP 现在处于 OFFLINE 状态,并且 VIP 不再绑定到公网网卡

$ crs_stat -t (对于版本 11gR2,使用命令 $ crsctl stat res –t)

$ ifconfig -a
(HP 平台请使用 netstat –in, Windows 平台请使用 ipconfig /all)

修改 VIP 和相关属性

5. 确定新的 VIP 地址/子网/网络掩码或者 VIP 对应的主机名,在 OS 层面修改网络配置信息,确认新的 VIP 地址应经注册到 DNS 或者确认 /etc/hosts 文件(Unix/Linux 平台),\WINDOWS\System32\drivers\etc\hosts 文件(Windows平台)已经被修改。如果网卡信息被修改,确认在修改之前新的网卡在服务器上已经可用。

例如:
新VIP 地址:110.11.70.11 racnode1-nvip
新子网信息:110.11.70.0
新网络掩码:255.255.255.0
新网卡:eth2

6. 使用 root 用户修改 VIP 资源:

# srvctl modify nodeapps -n <node> -A <new_vip_address or new_vip_hostname>/<netmask>/<[if1[if2...]]>

例如:
# srvctl modify nodeapps -n racnode1 -A racnode1-nvip/255.255.255.0/eth2

注意:从版本 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。

* 一个 11gR2 修改 VIP 主机名,但是不修改 IP 地址的例子。

例如:只把 VIP 主机名从 racnode1-vip 修改为 racnode1-nvip,IP 地址和其他属性保持不变。

如果 IP 地址保持不变,以上的命令将不会改变命令‘crsctl stat res ora.racnode1.vip -p’的输出中项目 USR_ORA_VIP 的值。请使用下面的命令:
# crsctl modify res ora.racnode1.vip -attr USR_ORA_VIP=racnode1-nvip

验证项目 USR_ORA_VIP 的改变:
# crsctl stat res ora.racnode1.vip -p |grep USR_ORA_VIP

注意:对于 Windows 平台,如果网卡名中包含了空格,那么网卡名需要包含在双引号(")中。例如:
使用管理员用户或者软件安装用户:
> srvctl modify nodeapps -n racnode1 -A 110.11.70.11/255.255.255.0/"Local Area Connection 1"

7. 验证改变

$ srvctl config nodeapps -n <node> -a (10g and 11gR1)
$ srvctl config nodeapps -a (11gR2)

例如:
$ srvctl config nodeapps -n racnode1 -a
VIP exists.: /racnode1-nvip/110.11.70.11/255.255.255.0/eth2

重新启动资源

8. 启动 nodeapps 和其它资源

对于版本 10g 和 11gR1, 使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl start nodeapps -n <node_name>       
$ srvctl start asm -n <node_name>               (对于 10.2.0.3 及以上版本,可以忽略)
$ srvctl start instance -d <dbanme> -i <inst>   (对于 10.2.0.3 及以上版本,可以忽略)

例如:
$ srvctl start nodeapps -n racnode1
$ srvctl start asm -n racnode1
$ srvctl start instance -d RACDB -i RACDB1

对于版本 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

9. 验证新的 VIP 状态为 ONLINE 并且已经绑定到集群公网网卡

$ crs_stat -t (对于版本 11gR2,使用命令 $ crsctl stat res –t)

$ ifconfig -a
(HP 平台请使用 netstat –in, Windows 平台请使用 ipconfig /all)

10. 如果集群中的其它节点也需要类似的改变,请重复同样的步骤。

其它

11. 如果需要,修改 listener.ora, tnsnames.ora 和 LOCAL_LISTENER/REMOTE_LISTENER 参数反应 VIP 的改变。

情况5:修改 SCAN 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

注意:如果需要回退修改,那么用原始值替换新值,然后重新运行命令。

参考

NOTE:952903.1 - How to update the IP address of the SCAN VIP resources (ora.scan{n}.vip)
NOTE:283684.1 - How to Modify Private Network Information in Oracle Clusterware

如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)的更多相关文章

  1. Cloudera-Manager修改集群的IP

    1.业务需求说明:由于公司网络进行了整改,随之而来的就是对应的ip网段发生了变化,其中我的hadoop的集群各主机的ip也相应的发生了改变,因此需要对各主机进行修改ip. 2.具体操作: 首先停止cd ...

  2. KingbaseES R6 集群一键修改集群和数据库参数测试案例

    ​ 案例说明: 集群环境修改集群或数据库参数,需要在每个node上都要修改,在每个节点而执行修改操作,容易出现漏改或节点上参数不一致等错误:在KingbaseES V8R6的集群中增加了,一键修改参数 ...

  3. KingbaseES R3 集群一键修改集群用户密码案例

    案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明 ...

  4. KingbaseES R6 集群sys_monitor.sh change_password一键修改集群用户密码

    案例说明: kingbaseES R6集群用户密码修改,需要修改两处: 1)修改数据库用户密码(alter user): 2)修改.encpwd文件中用户密码: 可以通过sys_monitor.sh ...

  5. Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...

  6. 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)

    大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...

  7. MySQL 集群历史版本信息

    MySQL 集群有两种命名方式,在Mysql5.1版本之前,MySQL 集群是以MySQL版本号命名:MySQL5.1(包括)之后开始以 mysql-mysql_server_version-ndb- ...

  8. 使用HDFS客户端java api读取hadoop集群上的信息

    本文介绍使用hdfs java api的配置方法. 1.先解决依赖,pom <dependency> <groupId>org.apache.hadoop</groupI ...

  9. 使用hive客户端java api读写hive集群上的信息

    上文介绍了hdfs集群信息的读取方式,本文说hive 1.先解决依赖 <properties> <hive.version>1.2.1</hive.version> ...

随机推荐

  1. 审美赛_(java)实现

    问题描述 <审美的历程>课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手.老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都 ...

  2. ios各个型号设备屏幕分辨率总结

    https://blog.csdn.net/amyloverice/article/details/79389357     iPhone: iPhone 1G 320x480 iPhone 3G 3 ...

  3. JVM 零散知识

    年轻代大小选择: 响应时间优先的应用: 尽可能设大,直到接近系统的最低响应时间限制.在此种情况下,年轻代收集发生的频率也是最小的.同时,减少到达年老代的对象. 吞吐量优先的应用: 尽可能的设置大,可能 ...

  4. 【转至hejinde的专栏】Axure RP 8最新激活码(可用注册码)

    Licensee:米 业成 (STUDENT)Key:nFmqBBvEqdvbiUjy8NZiyWiRSg3yO+PtZ8c9wdwxWse4WprphvSu9sohAdpNnJK5 亲测可用

  5. 洛谷P3803 【模板】多项式乘法(FFT)

    P3803 [模板]多项式乘法(FFT) 题目背景 这是一道FFT模板题 题目描述 给定一个n次多项式F(x),和一个m次多项式G(x). 请求出F(x)和G(x)的卷积. 输入输出格式 输入格式: ...

  6. VS2010 不显示 最近使用的项目 解决办法(转)

    昨天重装了VS2010,然后开了项目看了下今天早上再打开发现起始页近使用项目列表是空白的,每次打开项目都要去到指定目录去找解决方案才能打开,感觉很麻烦,在网上找了下解决方案,解决步骤下:菜单 —— 运 ...

  7. 关于Android模块化我有一些话不知当讲不当讲

    关于Android模块化我有一些话不知当讲不当讲 最近公司一个项目使用了模块化设计,本人参与其中的一个小模块开发,但是整体的设计并不是我架构设计的,开发半年有余,在此记录下来我的想法. 关于Andro ...

  8. Maven整合Eclipse进行Java项目开发

    一.Maven的配置 ①要求当前系统环境下配置了JAVA_HOME 在CMD命令行中输入:echo %JAVA_HOME% 如果能出来JDK的安装目录,说明我们配置了JAVA环境 ②将Maven的ZI ...

  9. Scrapy框架中的Pipeline组件

    简介 在下图中可以看到items.py与pipeline.py,其中items是用来定义抓取内容的实体:pipeline则是用来处理抓取的item的管道 Item管道的主要责任是负责处理有蜘蛛从网页中 ...

  10. 基于CentOS系统下的Oracle的安装

    背景 最近的数据库的实验课,要求利用虚拟机安装CentOS系统,并在此系统上安装Oracle_11g软件实现监听,在windows系统上安装SQL Developer软件作为客户端 ,从而可以在SQL ...