oracle-RAC修改服务器ip
主要实施步骤如下:
环境说明:服务器操作系统centos7.3、oracle RAC 11.2.0.4
说明:服务器实际ip变动,虚拟ip不变
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #pub 80.150.20.101 msrkzyk1 80.150.20.102 msrkzyk2 #pri 172.168.1.1 msrkzyk1p 172.168.1.2 msrkzyk2p #vip 80.150.20.103 msrkzyk1v 80.150.20.104 msrkzyk2v #scan 80.150.20.105 msrkscan ----- --改后 #pub 80.150.22.101 msrkzyk1 80.150.22.102 msrkzyk2 #pri 172.168.1.1 msrkzyk1p 172.168.1.2 msrkzyk2p #vip 80.150.22.103 msrkzyk1v 80.150.22.104 msrkzyk2v #scan 80.150.22.105 msrkscan |
1、[root@node-1 ~]# crs_stop -all
[root@node-1 ~]# crsctl stop crs -f #强制停止
2、修改服务器的物理ip
3、然后再vi修改/etc/hosts文件
4、重新配置免密ssh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | su - grid ssh -keygen ssh -copy- id grid@80.150.22.101 ssh -copy- id grid@80.150.22.102 ssh -copy- id grid@172.168.1.1 ssh -copy- id grid@172.168.1.2 ssh grid@172.168.1.1 date ssh grid@172.168.1.2 date ssh grid@80.150.22.101 date ssh grid@80.150.22.102 date ssh grid@msrkzyk1 date ssh grid@msrkzyk2 date ssh grid@msrkzyk1p date ssh grid@msrkzyk2p date su - oracle ssh -keygen ssh -copy- id oracle@80.150.22.101 ssh -copy- id oracle@80.150.22.102 ssh -copy- id oracle@172.168.1.1 ssh -copy- id oracle@172.168.1.2 ssh oracle@172.168.1.1 date ssh oracle@172.168.1.2 date ssh oracle@80.150.22.101 date ssh oracle@80.150.22.102 date ssh oracle@msrkzyk1 date ssh oracle@msrkzyk2 date ssh oracle@msrkzyk1p date ssh oracle@msrkzyk2p date |
5、启动crs
1 | [root@msrkzyk2 ~] # /u01/grid/11.2/bin/crsctl start crs |
注意:这里如果是按照我上面关闭crs的操作,正常数据库和监听是没有启动的,对应target和state都应该是offline:
1 2 3 4 5 6 | ora.LISTENER.lsnr OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.msrkzyk.db 1 OFFLINE OFFLINE Instance Shutdown 2 OFFLINE OFFLINE Instance Shutdown |
6、修改Public IP,VIP,SCAN VIP
6.1 修改Public IP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@msrkzyk1 ~] # find / -name oifcfg #查找命令 /u01/grid/11 .2 /bin/oifcfg getif [root@msrkzyk1 ~] # /u01/grid/11.2/bin/oifcfg getif #查看ip eno1 80.150.20.0 global public eno2 172.168.1.0 global cluster_interconnect #节点一设置ip,删除ip 设置ip [root@msrkzyk1 ~] # /u01/grid/11.2/bin/oifcfg delif -global eno1 #删除原public ip [root@msrkzyk1 ~] # /u01/grid/11.2/bin/oifcfg setif -global eno1/80.150.22.0:public #设置新public ip #两个节点查看ip [root@msrkzyk1 ~] # /u01/grid/11.2/bin/oifcfg getif eno2 172.168.1.0 global cluster_interconnect eno1 80.150.22.0 global public [root@msrkzyk2 ~] # /u01/grid/11.2/bin/oifcfg getif eno2 172.168.1.0 global cluster_interconnect eno1 80.150.22.0 global public |
6.2 修改VIP
需要停止数据库、监听和vip,目前数据库和监听、vip都是停止的查看命令grid用户
1 | srvctl stop vip -n msrkzyk1 #停止命令 |
#单独查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk1 VIP msrkzyk1v is enabled VIP msrkzyk1v is not running [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk2 VIP msrkzyk2v is enabled VIP msrkzyk2v is not running [grid@msrkzyk1 ~]$ srvctl status database -d msrkzyk Instance msrkzyk1 is not running on node msrkzyk1 Instance msrkzyk2 is not running on node msrkzyk2 [grid@msrkzyk1 ~]$ srvctl status LISTENER -n msrkzyk1 Listener LISTENER is enabled on node(s): msrkzyk1 Listener LISTENER is not running on node(s): msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status LISTENER -n msrkzyk2 Listener LISTENER is enabled on node(s): msrkzyk2 Listener LISTENER is not running on node(s): msrkzyk2 |
#或者
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | [grid@msrkzyk1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.DATA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.FRA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.LISTENER.lsnr OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.PIC.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.asm ONLINE ONLINE msrkzyk1 Started ONLINE ONLINE msrkzyk2 Started ora.gsd OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.net1.network ONLINE OFFLINE msrkzyk1 ONLINE OFFLINE msrkzyk2 ora.ons ONLINE OFFLINE msrkzyk1 ONLINE OFFLINE msrkzyk2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 OFFLINE OFFLINE ora.cvu 1 OFFLINE OFFLINE ora.msrkzyk.db 1 OFFLINE OFFLINE Instance Shutdown 2 OFFLINE OFFLINE Instance Shutdown ora.msrkzyk1.vip 1 OFFLINE OFFLINE ora.msrkzyk2.vip 1 OFFLINE OFFLINE ora.oc4j 1 OFFLINE OFFLINE ora.scan1.vip 1 OFFLINE OFFLINE |
查看当前vip设置 grid用户
1 2 3 4 5 6 7 | [grid@msrkzyk1 ~]$ olsnodes -s msrkzyk1 Active msrkzyk2 Active [grid@msrkzyk1 ~]$ srvctl config vip -n msrkzyk1 VIP exists: /msrkzyk1v/80 .150.22.103 /80 .150.20.0 /255 .255.255.0 /eno1 , hosting node msrkzyk1 [grid@msrkzyk1 ~]$ srvctl config vip -n msrkzyk2 VIP exists: /msrkzyk2v/80 .150.22.104 /80 .150.20.0 /255 .255.255.0 /eno1 , hosting node msrkzyk2 |
修改vip设置 root 用户
1 2 3 4 5 | [root@msrkzyk1 ~] # find / -name srvctl /u01/grid/11 .2 /bin/srvctl [root@msrkzyk1 ~] # /u01/grid/11.2/bin/srvctl modify nodeapps -n msrkzyk1 -A 80.150.22.103/255.255.255.0/eno1 [root@msrkzyk1 ~] # /u01/grid/11.2/bin/srvctl modify nodeapps -n msrkzyk2 -A 80.150.22.104/255.255.255.0/eno1 |
再次验证vip设置
1 2 3 4 | [root@msrkzyk1 ~] # /u01/grid/11.2/bin/srvctl config vip -n msrkzyk1 VIP exists: /msrkzyk1v/80 .150.22.103 /80 .150.22.0 /255 .255.255.0 /eno1 , hosting node msrkzyk1 [root@msrkzyk1 ~] # /u01/grid/11.2/bin/srvctl config vip -n msrkzyk2 VIP exists: /msrkzyk2v/80 .150.22.104 /80 .150.22.0 /255 .255.255.0 /eno1 , hosting node msrkzyk2 |
启动vip、grid用户
1 2 3 4 5 6 7 8 9 10 | [root@msrkzyk1 ~] # su - grid Last login: Tue Sep 7 14:52:57 CST 2021 on pts /1 [grid@msrkzyk1 ~]$ srvctl start vip -n msrkzyk1 [grid@msrkzyk1 ~]$ srvctl start vip -n msrkzyk2 [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk1 VIP msrkzyk1v is enabled VIP msrkzyk1v is running on node: msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk2 VIP msrkzyk2v is enabled VIP msrkzyk2v is running on node: msrkzyk2 |
启动监听
1 2 3 4 | [grid@msrkzyk1 ~]$ srvctl start listener [grid@msrkzyk1 ~]$ srvctl status LISTENER Listener LISTENER is enabled Listener LISTENER is running on node(s): msrkzyk2,msrkzyk1 |
启动数据库
1 2 3 4 | [grid@msrkzyk1 ~]$ srvctl start database -d msrkzyk [grid@msrkzyk1 ~]$ srvctl status database -d msrkzyk Instance msrkzyk1 is running on node msrkzyk1 Instance msrkzyk2 is running on node msrkzyk2 |
4、检查local_listener信息,不正确就需要修改(我这儿对的不用修改)
1 2 3 4 5 6 7 8 9 10 | [oracle@msrkzyk1 ~]$ sqlplus / as sysdba SQL> show parameter local_listener NAME TYPE VALUE -------- --------- ---------------- local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.103)(PORT=1521)) #修改的命令 alter system set local_listenner= '(ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.103)(PORT=1521))' sid= 'msrkzyk1' ; alter system set local_listenner= '(ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.104)(PORT=1521))' sid= 'msrkzyk2' ; |
5、修改scan vip
查看scan vip的配置 grid用户
1 2 3 4 | [root@msrkzyk1 ~] # su - grid [grid@msrkzyk1 ~]$ srvctl config scan SCAN name: msrkscan, Network: 1 /80 .150.22.0 /255 .255.255.0 /eno1 SCAN VIP name: scan1, IP: /msrkscan/80 .150.20.105 |
停止scan_listener和scan资源
1 2 | [grid@msrkzyk1 ~]$ srvctl stop scan_listener [grid@msrkzyk1 ~]$ srvctl stop scan |
--确认已经停止
1 2 3 4 5 6 | [grid@msrkzyk1 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running [grid@msrkzyk1 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is not running |
使用root用户修改scan vip
1 | [root@msrkzyk1 ~] # /u01/grid/11.2/bin/srvctl modify scan -n msrkscan |
注意:root用户执行修改,且确认/etc/hosts映射关系已经修改为新的scan VIP。
修改并启动资源库 grid用户
1 2 | [grid@msrkzyk1 ~]$ srvctl modify scan_listener -u [grid@msrkzyk1 ~]$ srvctl start scan_listener |
注意:执行后确认scan_listener和scan都已经启动
1 2 3 4 5 6 | [grid@msrkzyk1 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node msrkzyk1 |
确认修改成功
1 2 3 4 5 | [grid@msrkzyk1 ~]$ srvctl config scan SCAN name: msrkscan, Network: 1 /80 .150.22.0 /255 .255.255.0 /eno1 SCAN VIP name: scan1, IP: /msrkscan/80 .150.22.105 [grid@msrkzyk1 ~]$ srvctl config scan_listener SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521 |
6、验证整个集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | [grid@msrkzyk1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.DATA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.FRA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.LISTENER.lsnr ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.PIC.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.asm ONLINE ONLINE msrkzyk1 Started ONLINE ONLINE msrkzyk2 Started ora.gsd OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.net1.network ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.ons ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE msrkzyk1 ora.cvu 1 OFFLINE OFFLINE ora.msrkzyk.db 1 ONLINE ONLINE msrkzyk1 Open 2 ONLINE ONLINE msrkzyk2 Open ora.msrkzyk1.vip 1 ONLINE ONLINE msrkzyk1 ora.msrkzyk2.vip 1 ONLINE ONLINE msrkzyk2 ora.oc4j 1 OFFLINE OFFLINE ora.scan1.vip 1 ONLINE ONLINE msrkzyk1 |
做一个决定,并不难,难的是付诸行动,并且坚持到底。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)