分享一個有意思的Oracle19c數(shù)據(jù)庫監(jiān)聽異常
概述
今天主要分享一個最近排查的監(jiān)聽問題,還是有點意思的,一起來看看吧~
環(huán)境:oracle19c 單實例
用plsql連接提示,這里排除防火墻、賬號密碼問題,連接字符串按監(jiān)聽文件格式寫
1. 測試監(jiān)聽
服務器本地測試監(jiān)聽發(fā)現(xiàn)沒問題。
2. 查看數(shù)據(jù)庫狀態(tài)
數(shù)據(jù)庫狀態(tài)正常
3. 查看監(jiān)聽狀態(tài)
發(fā)現(xiàn)沒有數(shù)據(jù)庫服務..
4. 查看數(shù)據(jù)庫服務名
懷疑是service_name問題,查看也沒有異常
5. 查看錯誤日志:
路徑為:/u01/app/oracle/diag/tnslsnr/ZL-FSL-SRM-TOOLS-DB/listener/alert/log.xml
- </msg>
- <msg time='2020-03-04T17:46:23.601+08:00' org_id='oracle' comp_id='tnslsnr'
- type='UNKNOWN' level='16' host_id='ZL-FSL-SRM-TOOLS-DB'
- host_addr='172.26.151.84' pid='1072'>
- <txt>04-MAR-2020 17:46:23 * ping * 0
- </txt>
- </msg>
- <msg time='2020-03-04T17:48:53.202+08:00' org_id='oracle' comp_id='tnslsnr'
- type='UNKNOWN' level='16' host_id='ZL-FSL-SRM-TOOLS-DB'
- host_addr='172.26.151.84' pid='1072'>
- <txt>WARNING: Subscription for node down event still pending
- </txt>
- </msg>
- <msg time='2020-03-04T17:48:53.202+08:00' org_id='oracle' comp_id='tnslsnr'
- type='UNKNOWN' level='16' host_id='ZL-FSL-SRM-TOOLS-DB'
- host_addr='172.26.151.84' pid='1072'>
- <txt>04-MAR-2020 17:48:53 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=ZL-FSL-SRM-TOOLS-DB)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=318767104)) * status * 0
- </txt>
- </msg>
排查日志沒有明顯異常
6. 查看數(shù)據(jù)庫中l(wèi)istener相關參數(shù)
對比正常和異常數(shù)據(jù)庫的listener相關參數(shù)..
可以發(fā)現(xiàn)不太一樣。
7. 修改數(shù)據(jù)庫監(jiān)聽參數(shù)
ps:動態(tài)注冊默認只注冊到默認的監(jiān)聽器上(名稱是LISTENER、端口是1521、協(xié)議是TCP),因為pmon只會動態(tài)注冊port等于1521的監(jiān)聽,否則pmon不能動態(tài)注冊listener,如果需要向非默認監(jiān)聽注冊,則需要配置local_listener參數(shù)。
監(jiān)聽的信息添加到tnsnames.ora文件中。 因為pmon在動態(tài)注冊監(jiān)聽時要從tnsnames.ora中讀取相關信息。
- alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx)(PORT=1522))))' scope=both;
8. 重啟監(jiān)聽并查看監(jiān)聽狀態(tài)
問題解決..