RAC中lsnrctl和srvctl的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
案例:(环境:hp小机,10G rac)今天早上一客户发现连接不上数据库,反馈。
处理过程:
登录服务器发现有一台服务器集群监听处于关闭状态,lsnrctl status发现监听处于卡死状态,无法进行正常的关闭,重启
查看监听日志报错TNS-12545,另一台服务器监听正常,所以不着急……稳住,慢慢看。
$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.....XFF.cs application ONLINE ONLINE rac1
ora....db1.srv application ONLINE ONLINE rac2
ora.devdb.db application ONLINE ONLINE rac2
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
既然从集群里面看到监听关了,那就找到监听进程杀掉
$ ps -ef |grep tnslsnr
grid 3232 1 0 10:59 ? 00:00:00 /g01/11ggrid/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
kill -15 3232
lsnrctl start启动监听,监听状态恢复正常,但集群中监听状态仍然是offline
原因:srvctl操作的监听是listener_rac1,而lsnrctl操作的默认监听时CRS不会online,或者说lsnrctl操作的监听反馈不到CRS?
srvctl config listener -n rac1
解决办法:
lsnrctl stop --关闭监听
srvctl start listener -n rac1 --开启监听服务(rac1为主机名)
不过后来自己在11g库上做测试,没有发现这个问题。
此时恢复正常,附上listener.ora
LISTENER_RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)(IP = FIRST))
)
)
SID_LIST_LISTENER_RAC1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
建议:RAC重启监听的话建议还是用srvctl
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。