Oracle RAC修改public,private,vip scan IP | Java & Oracle

2025-02-08ASM / Oracle / RAC

2014.oracle rac修改IP涉及到OCR,在执行修改前要进行一个备份,这样即使修改失败,也能还原回来,如何备份可以参考

oracle-rac-ocr-和-votingdisk-的备份与恢复/

实验环境:redhat 5.4 oracle 10g rac,oracle 11g rac

原来两节点rac IP设置如下:

192.168.56.11 jy1

192.168.56.12 jy2

192.168.56.13 jy1-priv

192.168.56.14 jy2-priv

192.168.56.15 jy1-vip

192.168.56.16 jy2-vip

现在修改为

192.168.56.111 jy1

192.168.56.112 jy2

192.168.100.1 jy1-priv

192.168.100.2 jy2-priv

192.168.56.113 jy1-vip

192.168.56.114 jy2-vip

一. 停止oracle相关的所有进程, 包括数据库, asm, node application, crs

1.1 查看当前系统上crs运行的状态 [root@jy1 bin]# cd /u01/app/oracle/product/10.2.0/crs/bin [root@jy1 bin]# pwd /u01/app/oracle/product/10.2.0/crs/bin [root@jy1 bin]# ./crs_stat -t Name Type Target State Host ———————————————————— ora….SM1.asm application ONLINE ONLINE jy1 ora….Y1.lsnr application ONLINE ONLINE jy1 ora.jy1.gsd application ONLINE ONLINE jy1 ora.jy1.ons application ONLINE ONLINE jy1 ora.jy1.vip application ONLINE ONLINE jy1 ora….SM2.asm application ONLINE ONLINE jy2 ora….Y2.lsnr application ONLINE ONLINE jy2 ora.jy2.gsd application ONLINE ONLINE jy2 ora.jy2.ons application ONLINE ONLINE jy2 ora.jy2.vip application ONLINE ONLINE jy2 ora.jyrac.db application ONLINE ONLINE jy1 ora….c1.inst application ONLINE ONLINE jy1 ora….c2.inst application ONLINE ONLINE jy2 1.2 关闭数据库 [root@jy1 bin]# ./srvctl stop database -d jyrac 1.3 关闭asm实例 [root@jy1 bin]# ./srvctl stop asm -n jy1 [root@jy1 bin]# ./srvctl stop asm -n jy2 1.4 关闭其他应用程序 [root@jy1 bin]# ./srvctl stop nodeapps -n jy1 [root@jy1 bin]# ./srvctl stop nodeapps -n jy2 1.5 关闭crs后台进程, 在操作系统一级中止运行的crs后台进程, 必须在所有节点上运行. [root@jy1 bin]# /etc/init.d/init.crs stop Shutting down Oracle Cluster Ready Services (CRS): Stopping resources. Successfully stopped CRS resources Stopping CSSD. Shutting down CSS daemon. Shutdown request successfully issued. Shutdown has begun. The daemons should exit soon.

[root@jy2 bin]# /etc/init.d/init.crs stop Shutting down Oracle Cluster Ready Services (CRS): Stopping resources. Successfully stopped CRS resources Stopping CSSD. Shutting down CSS daemon. Shutdown request successfully issued. Shutdown has begun. The daemons should exit soon. 二 修改操作系统的ip设置

2.1 修改 /etc/hosts 文件。 保持2个节点的一致 [root@jy1 bin]# vi /etc/hosts

Do not remove the following line, or various programs

that require network functionality will fail.

127.0.0.1 jy1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.56.111 jy1 192.168.56.112 jy2 192.168.100.1 jy1-priv 192.168.100.2 jy2-priv 192.168.56.113 jy1-vip 192.168.56.114 jy2-vip

[root@jy2 bin]# vi /etc/hosts

Do not remove the following line, or various programs

that require network functionality will fail.

127.0.0.1 jy2 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.56.111 jy1 192.168.56.112 jy2 192.168.100.1 jy1-priv 192.168.100.2 jy2-priv 192.168.56.113 jy1-vip 192.168.56.114 jy2-vip 2.2 在两个节点上分别修改eth0和eth1地址: [root@jy1 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Intel Corporation 82540EM Gigabit Ethernet Controller

DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=08:00:27:54:5a:6a NETMASK=255.255.255.0 IPADDR=192.168.56.111 GATEWAY=192.168.56.1 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes

[root@jy2 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Intel Corporation 82540EM Gigabit Ethernet Controller

DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=08:00:27:41:5d:e5 NETMASK=255.255.255.0 IPADDR=192.168.56.112 GATEWAY=192.168.56.1 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes

[root@jy1 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 IPADDR=192.168.100.1

Intel Corporation 82540EM Gigabit Ethernet Controller

DEVICE=eth1 BOOTPROTO=none ONBOOT=yes HWADDR=08:00:27:c3:b7:37 NETMASK=255.255.255.0 IPADDR=192.168.100.1 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes

[root@jy2 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 GATEWAY=192.168.56.1

Intel Corporation 82540EM Gigabit Ethernet Controller

DEVICE=eth1 BOOTPROTO=none ONBOOT=yes HWADDR=08:00:27:4a:e3:cb TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=192.168.100.2 USERCTL=no IPV6INIT=no PEERDNS=yes 2.3 在两个节点上分别重启网络服务,是修改的IP生效 [root@jy1 bin]# service network restart

[root@jy2 bin]# service network restart 三 启动crs, 设置oracle中ip地址相关的设置

3.1 在两个节点启动crs, 并关闭随crs启动的所有服务 [root@jy1 bin]# /etc/init.d/init.crs start Startup will be queued to init within 90 seconds.

[root@jy2 bin]# /etc/init.d/init.crs start Startup will be queued to init within 90 seconds. 由于oracle所有服务设置为自动启动, 所以在crs启动时会试图启动所有的服务, 但是在对oracle相关的ip地址进行设置时需要crs处于运行状态. 但是数据库, asm和node application处于停止状态, 在一个节点执行以下命令来停止所有服务: [root@jy1 bin]# ./srvctl stop database -d jyrac [root@jy1 bin]# ./srvctl stop asm -n jy1 [root@jy1 bin]# ./srvctl stop asm -n jy2 [root@jy1 bin]# ./srvctl stop nodeapps -n jy1 [root@jy1 bin]# ./srvctl stop nodeapps -n jy2

[root@jy1 bin]# ./crs_stat -t Name Type Target State Host ———————————————————— ora….SM1.asm application OFFLINE OFFLINE ora….Y1.lsnr application OFFLINE OFFLINE ora.jy1.gsd application OFFLINE OFFLINE ora.jy1.ons application OFFLINE OFFLINE ora.jy1.vip application OFFLINE OFFLINE ora….SM2.asm application OFFLINE OFFLINE ora….Y2.lsnr application OFFLINE OFFLINE ora.jy2.gsd application OFFLINE OFFLINE ora.jy2.ons application OFFLINE OFFLINE ora.jy2.vip application OFFLINE OFFLINE ora.jyrac.db application OFFLINE OFFLINE ora….c1.inst application OFFLINE OFFLINE ora….c2.inst application OFFLINE OFFLINE 3.2 使用oifcfg修改网卡设置, oifconfig可以用来设置和查看网卡使用的方式(如果修改的网段相同可以不做这一步)

3.2.1查看当前配置: [root@jy1 bin]# ./oifcfg getif -global eth0 192.168.56.0 global public eth1 192.168.56.0 global cluster_interconnect 3.2.2删除当前配置 [root@jy1 bin]# ./oifcfg delif -global eth0 [root@jy1 bin]# ./oifcfg delif -global eth1 [root@jy1 bin]# ./oifcfg getif 3.2.3重新添加 [root@jy1 bin]# ./oifcfg setif -global eth0/192.168.56.0:public [root@jy1 bin]# ./oifcfg setif -global eth1/192.168.100.0:cluster_interconnect [root@jy1 bin]# ./oifcfg getif eth0 192.168.56.0 global public eth1 192.168.100.0 global cluster_interconnect [root@jy1 bin]# ./oifcfg iflist eth0 192.168.56.0 eth1 192.168.100.0

[root@jy2 bin]# ./oifcfg iflist eth0 192.168.56.0 eth1 192.168.100.0 这里IP 地址最后一个为0,代表的是一个网段。修改的时候要切记。否在在启动OCR 时会报如下错误:[ CRSOCR][4054413904] OCR context init failure. Error: PROC-44: 网络地址和网络接口操作中出错 网络地址和网络接口操作错误 [7]

3.3 修改VIP [root@jy1 bin]# ./srvctl modify nodeapps -n jy1 -A 192.168.56.113/255.255.255.0/eth0

[root@jy1 bin]# ./srvctl modify nodeapps -n jy2 -A 192.168.56.114/255.255.255.0/eth0 3.4 设置listener.ora和tnsnames.ora, 检查这些文件中是否有指定原来ip的地方,

修改为更改后的ip地址(注意:如果你使用了ocfs,修改ocfs配置文件(/etc/ocfs/cluster.conf),

验证修改后是否可用)

在节点jy1上没有使用原来的固定IP不用修改

[root@jy1 bin]# vi /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora

listener.ora.jy1 Network Configuration File: /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora.jy1

Generated by Oracle configuration tools.

LISTENER_JY1 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = jy1-vip)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

节点jy2使用了原来的IP192.168.56.12所以将其修改为192.168.56.112

[root@jy2 bin]# cat /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora

listener.ora.jy2 Network Configuration File: /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora.jy2

Generated by Oracle configuration tools.

LISTENER_JY2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = jy2-vip)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.12)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

[root@jy2 bin]# vi /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora

listener.ora.jy2 Network Configuration File: /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora.jy2

Generated by Oracle configuration tools.

LISTENER_JY2 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = jy2-vip)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.112)(PORT = 1521)(IP = FIRST))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

)

)

)

3.5 启动node applications, asm, 数据库

[root@jy1 bin]# ./srvctl start nodeapps -n jy1

[root@jy1 bin]# ./srvctl start nodeapps -n jy2

[root@jy1 bin]# ./srvctl start asm -n jy1

[root@jy1 bin]# ./srvctl start asm -n jy2

[root@jy1 bin]# ./srvctl start instance -d jyrac -i jyrac1

[root@jy1 bin]# ./srvctl start instance -d jyrac -i jyrac2

[root@jy1 bin]# ./crs_stat -t

Name Type Target State Host

————————————————————

ora….SM1.asm application ONLINE ONLINE jy1

ora….Y1.lsnr application ONLINE ONLINE jy1

ora.jy1.gsd application ONLINE ONLINE jy1

ora.jy1.ons application ONLINE ONLINE jy1

ora.jy1.vip application ONLINE ONLINE jy1

ora….SM2.asm application ONLINE ONLINE jy2

ora….Y2.lsnr application ONLINE ONLINE jy2

ora.jy2.gsd application ONLINE ONLINE jy2

ora.jy2.ons application ONLINE ONLINE jy2

ora.jy2.vip application ONLINE ONLINE jy2

ora.jyrac.db application ONLINE ONLINE jy2

ora….c1.inst application ONLINE ONLINE jy1

ora….c2.inst application ONLINE ONLINE jy2

3.6 确认IP, 修改完成。

[root@jy1 bin]# ifconfig

eth0 Link encap:Ethernet HWaddr 08:00:27:54:5A:6A

inet addr:192.168.56.111 Bcast:192.168.56.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe54:5a6a/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:515539 errors:0 dropped:0 overruns:0 frame:0

TX packets:546714 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:294661949 (281.0 MiB) TX bytes:357427245 (340.8 MiB)

Base address:0xd010 Memory:f0000000-f0020000

eth0:1 Link encap:Ethernet HWaddr 08:00:27:54:5A:6A

inet addr:192.168.56.113 Bcast:192.168.56.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Base address:0xd010 Memory:f0000000-f0020000

eth1 Link encap:Ethernet HWaddr 08:00:27:C3:B7:37

inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fec3:b737/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:21818 errors:0 dropped:0 overruns:0 frame:0

TX packets:32288 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:10823304 (10.3 MiB) TX bytes:26553389 (25.3 MiB)

Base address:0xd240 Memory:f0820000-f0840000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:180050 errors:0 dropped:0 overruns:0 frame:0

TX packets:180050 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:57676272 (55.0 MiB) TX bytes:57676272 (55.0 MiB)

[root@jy2 bin]# ifconfig

eth0 Link encap:Ethernet HWaddr 08:00:27:41:5D:E5

inet addr:192.168.56.112 Bcast:192.168.56.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe41:5de5/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:545442 errors:0 dropped:0 overruns:0 frame:0

TX packets:514967 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:356961066 (340.4 MiB) TX bytes:295147830 (281.4 MiB)

Base address:0xd010 Memory:f0000000-f0020000

eth0:1 Link encap:Ethernet HWaddr 08:00:27:41:5D:E5

inet addr:192.168.56.114 Bcast:192.168.56.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Base address:0xd010 Memory:f0000000-f0020000

eth1 Link encap:Ethernet HWaddr 08:00:27:4A:E3:CB

inet addr:192.168.100.2 Bcast:192.168.100.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fe4a:e3cb/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:32190 errors:0 dropped:0 overruns:0 frame:0

TX packets:21813 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:26535297 (25.3 MiB) TX bytes:10821634 (10.3 MiB)

Base address:0xd240 Memory:f0820000-f0840000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:163867 errors:0 dropped:0 overruns:0 frame:0

TX packets:163867 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:30461066 (29.0 MiB) TX bytes:30461066 (29.0 MiB)

从输出结果可知修改成功.

四 修改oracle 11g rac的scan IP,我这里没有使用DNS,只设置了一个scan IP:10.138.130.155现将其修改为10.138.130.159(因为11g rac修改public,private,vip IP与上面10g rac一样不再说明) root@jyrac1 ~]# cat /etc/hosts 10.138.130.151 jyrac1 10.138.130.152 jyrac2 10.10.10.1 jyrac1-priv 10.10.10.2 jyrac2-priv 10.138.130.153 jyrac1-vip 10.138.130.154 jyrac2-vip 10.138.130.155 jyrac-scan 4.1在所有节点中 /etc/hosts 文件中修改 scan 对应的ip [root@jyrac1 ~]# vi /etc/hosts

Do not remove the following line, or various programs

that require network functionality will fail.

127.0.0.1 jyrac1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 10.138.130.151 jyrac1 10.138.130.152 jyrac2 10.10.10.1 jyrac1-priv 10.10.10.2 jyrac2-priv 10.138.130.153 jyrac1-vip 10.138.130.154 jyrac2-vip 10.138.130.159 jyrac-scan ~ [root@jyrac2 ~]# vi /etc/hosts

Do not remove the following line, or various programs

that require network functionality will fail.

127.0.0.1 jyrac2 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 10.138.130.151 jyrac1 10.138.130.152 jyrac2 10.10.10.1 jyrac1-priv 10.10.10.2 jyrac2-priv 10.138.130.153 jyrac1-vip 10.138.130.154 jyrac2-vip 10.138.130.159 jyrac-scan 4.2 查看scan IP信息 [grid@jyrac1 ~]$ srvctl config scan SCAN name: jyrac-scan, Network: 1/10.138.130.0/255.255.255.0/eth0 SCAN VIP name: scan1, IP: /jyrac-scan/10.138.130.155 4.3 停止scan_listener ,scan 应用 [grid@jyrac2 ~]$ srvctl stop scan_listener [grid@jyrac2 ~]$ srvctl stop scan 4.4 确认 scan_listener,scan 的状态 [grid@jyrac1 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running [grid@jyrac1 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is not running

[grid@jyrac1 ~]$ crs_stat -t | grep scan ora.scan1.vip ora….ip.type OFFLINE OFFLINE [grid@jyrac1 ~]$ crs_stat -t | grep lsnr ora….ER.lsnr ora….er.type ONLINE ONLINE jyrac1 ora….N1.lsnr ora….er.type OFFLINE OFFLINE ora….C1.lsnr application ONLINE ONLINE jyrac1 ora….C2.lsnr application ONLINE ONLINE jyrac2 4.5 修改scan 名称 [grid@jyrac1 ~]$ srvctl modify scan -h

Modifies the SCAN name.

Usage: srvctl modify scan -n

-n            Domain name qualified SCAN name 域名限定的 SCAN 名
-h                       Print usage 输出帮助信息

grid 用户无权更改scan ip,必须使用root权限 [grid@jyrac2 ~]$ srvctl modify scan -n jyrac-scan PRCS-1034 : Failed to modify Single Client Access Name jyrac-scan PRCR-1071 : Failed to register or update resource type ora.scan_vip.type CRS-0245: User doesn't have enough privilege to perform the operation

[root@jyrac1 bin]# cd /u01/app/product/11.2.0/crs/bin [root@jyrac1 bin]# pwd /u01/app/product/11.2.0/crs/bin [root@jyrac1 bin]# ./srvctl modify scan -n jyrac-scan 4.6 变更后,进行确认 [root@jyrac1 bin]# ./srvctl config scan SCAN name: jyrac-scan, Network: 1/10.138.130.0/255.255.255.0/eth0 SCAN VIP name: scan1, IP: /jyrac-scan/10.138.130.159 4.7 重新启动scan,scan_listener [grid@jyrac1 ~]$ srvctl start scan [grid@jyrac1 ~]$ srvctl start scan_listener 4.8 确认scan 和scan_listener.ora的状态 [grid@jyrac1 ~]$ crs_stat -t | grep scan ora.scan1.vip ora….ip.type ONLINE ONLINE jyrac1 [grid@jyrac1 ~]$ crs_stat -t | grep lsnr ora….ER.lsnr ora….er.type ONLINE ONLINE jyrac1 ora….N1.lsnr ora….er.type ONLINE ONLINE jyrac1 ora….C1.lsnr application ONLINE ONLINE jyrac1 ora….C2.lsnr application ONLINE ONLINE jyrac2 4.9 进行ping测试 [grid@jyrac2 ~]$ ping 10.138.130.159 PING 10.138.130.159 (10.138.130.159) 56(84) bytes of data. 64 bytes from 10.138.130.159: icmp_seq=1 ttl=64 time=1.88 ms 64 bytes from 10.138.130.159: icmp_seq=2 ttl=64 time=0.166 ms 修改scan IP与修改private ip ,vip 不一样,修改scan ip 无需停止数据库实例,asm 或者重启crs比较简单 .from → 管理