客户的数据库出现VIP地址无法访问的情况。
这一篇描述问题的解决。
数据库VIP地址无法访问(一):https://yangtingkun.net/?p=798
上一篇通过诊断找到了问题的原因,由于VIP绑定网卡的错误,导致VIP可能漂移到PRIVATE网卡上,从而导致VIP地址对于外部服务器不可见。
找到原因后,解决其实很简单,只需要改正VIP错误的配置即可,简单的代码类似下面的示例:
oracle@racdb1 $ srvctl config nodeapps -n racdb1 –a VIP EXISTS.: /racdb1-vip/10.8.60.201/255.255.255.0/aggr1:aggr2 oracle@racdb1 $ srvctl config nodeapps -n racdb2 –a VIP EXISTS.: /racdb2-vip/10.8.60.202/255.255.255.0/aggr1:aggr2 |
获取当前VIP配置信息。
停止VIP服务
$ srvctl stop nodeapps -n racdb1 $ srvctl stop nodeapps -n racdb2 |
停止数据库实例:
$ srvctl stop instance -d racdb -i racdb1 $ srvctl stop instance -d racdb -i racdb2 |
停止ASM实例:
$ srvctl stop asm -n racdb1 $ srvctl stop asm -n racdb2 |
以root修改VIP配置信息:
# srvctl MODIFY nodeapps -n racdb1 -A racdb1-vip/255.255.255.0/aggr2 # srvctl MODIFY nodeapps -n racdb2 -A racdb2-vip/255.255.255.0/aggr2 |
确认修改生效:
$ srvctl config nodeapps -n racdb1 -a VIP EXISTS.: /racdb1-vip/10.8.60.201/255.255.255.0/aggr2 $ srvctl config nodeapps -n racdb2 -a VIP EXISTS.: /racdb2-vip/10.8.60.202/255.255.255.0/aggr2 |
重启VIP服务
$ srvctl START nodeapps -n racdb1 $ srvctl START nodeapps -n racdb2 |
重启ASM实例:
$ srvctl START asm -n racdb1 $ srvctl START asm -n racdb2 |
重启数据库实例:
$ srvctl START instance -d racdb -i racdb1 $ srvctl START instance -d racdb -i racdb2 |
最后通过ipconfig验证,VIP地址绑定至PUBLIC网卡,确认修改成功。