侦听的关闭需要绝对的小心,因为在9i中,如果没有设置密码,侦听能轻易的关闭远程的侦听。有时候,生产库的侦听被宕不是因为被黑客入侵了,而是错误的操作而已。最近就遇到了这样的事情:
一次工程迁移,需要将原来的两台rp 4440换成两台rp 8440(有两台,是因为要做MC双机热备)。
当前网络情况:
主机 型号 IP 浮动IP
A机 rp 4440 192.168.3.11 192.168.3.10
B机 rp 4440 192.168.3.12 192.168.3.10
C机 rp 8440 192.168.3.61 未配
D机 rp 8440 192.168.3.62 未配
目标网络情况:
主机 型号 IP 浮动IP
C机 rp 8440 192.168.3.11 192.168.3.10
D机 rp 8440 192.168.3.12 192.168.3.10
A机 rp 4440 192.168.3.61 未配
B机 rp 4440 192.168.3.62 未配
由于是做成MC双机热备的,在listener.ora文件中配置的IP地址需要是浮动IP的地址,因此,在ABCD中的这个文件中的地址均配置成了192.168.3.10。
好,待工程完成,AB双机被替换成了CD双机,其他的条件都不变。此时CD双机作为生成库,开始提供服务,应用连接到了primary C机,而由于我们的AB主机需要历旧,A机被作为了报表数据库的服务器(单机,无MC双机热备模式),当我们把原报表的存储迁移到A机器上,启动数据库,再用lsnrctl status检查侦听时,发现service为生产库的侦听已经启动!奇怪,我们是在报表的机器上,为什么能在报表机器上看到关于生产库的侦听已经启动呢?赶紧关了吧……
坏了……问题就出在这里了,由于这边报表数据库(A机)的listener.ora文件就是原来生产库的配置,里面的IP就是192.168.3.10,它在lsnrctl status看的时候,就是看192.168.3.10(即当前用于生产的primary C机),而不是本机报表机的侦听!!当你使用lsnrctl stop关闭侦听的时候,9i的数据库可以远程关闭侦听,因此,远程的生产库的侦听就被宕下来了,应用程序开始狂报连接数据库失败……
关闭侦听时,特别是在工程割接时,关闭侦听千万要记得格外的小心。
2条评论
看来设置一个密码还是很有必要的。
我就遇到过这样的情况