一條細小的報警簡訊的處理
最近偶爾會收到一封報警簡訊,提示內容大體如下,
xxxx,trc_directory (TNS-1190),log_directory(TNS-1190),Please check log for details
對於這個問題,看似是監聽出了問題,但是根據同事的反饋說監聽一切正常,而且從業務部門也從來沒有得到任何反饋說系統的任何問題,所以問題就擱置了下來,但是昨天再次收到這個問題,
感覺還是需要來看一下,畢竟收到報警簡訊了,應該是什麼地方達到了閥值,還是需要關注的。
於是登入到伺服器上去看,伺服器上是11g的庫,用到了asm,所以是grid和oracle獨立的兩個使用者。
檢視tns的情況,
$ ps -ef|grep tns
root 85 2 0 2014 ? 00:00:00 [netns]
grid 3431 1 0 2014 ? 01:40:55 /home/U01/app/grid/11.2.3/bin/tnslsnr LISTENER -inherit
grid 15587 1 0 2014 ? 00:32:19 /home/U01/app/grid/11.2.3/bin/tnslsnr LISTENER_1526 -inherit
oracle 30419 30323 0 22:42 pts/0 00:00:00 grep tns
檢視grid中的日誌顯示內容為,可以看到有警告,但是不確定是否有這個問題導致。
WARNING: Subscription for node down event still pending
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=services)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * services * 0
WARNING: Subscription for node down event still pending
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
因為報錯資訊知道了TNS錯誤上所以自己的注意力就集中在了那上面,除此之外也沒有發現有任何的警告。
這個時候求助於metalink,發現竟然有一篇很詳細的文章介紹。
How To Disable Oracle Database Listener Alerts TNS-01190 In Enterprise Manager Cloud Control 12c to avoid the error "trc_directory (TNS-1190), log_directory (TNS-1190),. Please check log for details." (Doc ID 1399060.1)
那麼這個時候來看這個問題似乎就是水到渠成了。
根據這個帖子的說法,還是因為agent在oracle使用者下,而監聽在grid下,所以agent需要週期性的去查詢一下監聽的資訊的時候,因為沒有許可權,所以會有一些問題。
對於這個問題,如果通過EM來修正,就可以找到對應的監聽
然後在 監聽器->監視->度量和收集設定裡面可以看到其實1190就是最高的閥值了。
這個時候一種解決辦法就是把1190從這個閥值中去掉。
當然去掉之後,偶爾的報警簡訊一直到今天再也沒有出現過。
不過這樣處理問題還是治標不治本,知道還是因為一些設定的不規範,單純修改閥值,去除閥值雖然可行,但是還是不夠徹底。
所以繼續開始琢磨改怎麼處理。繼續檢視,發現了兩篇相關的文章。
EM 11g: How To Prevent the Generation of The Listener Error TNS-1190 From the Enterprise Manager 11.1.0.1 Grid Control Console (文件 ID 1595086.1)
'WARNING: Subscription for node down event still pending' in Listener Log (Doc ID 372959.1)
第一篇雖然是11g中的解決方法,但是我覺得更加全面,因為裡面提到了4中方法,第一種就是解決這個警告,因為這個也是間接反映了這個問題,第二種就是通過EM修改閥值,去掉1190的閥值
第三種是新增監聽密碼,但是這種似乎還是不太適用,第四種是直接忽略,好像也有道理,但是我不願意這麼做。
好了,這麼看來,第二種已經做完了,那麼目前的效果是怎麼樣的呢?
檢視監聽日誌的情況
$ tail -f *.log
Thu Oct 22 22:53:44 2015
22-OCT-2015 22:53:44 * ping * 0
WARNING: Subscription for node down event still pending
22-OCT-2015 22:53:44 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
可以看到監聽的警告依然存在,那麼就開始在listener.ora裡面新增一個引數
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_1526=OFF
這個其實也是把一個類似的觸發器關掉,可見oracle在這方面真實技高一籌。
修改完成之後,還是需要reload的。
$ lsnrctl reload listener_1526
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))
The command completed successfully
然後再次檢視日誌,發現就有了明顯的變化。
Thu Oct 22 22:57:34 2015
22-OCT-2015 22:57:34 * ping * 0
WARNING: Subscription for node down event still pending
22-OCT-2015 22:57:34 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
System parameter file is /home/U01/app/grid/11.2.3/network/admin/listener.ora
Trace information written to /home/U01/app/grid/diag/tnslsnr/rolequery/listener_1526/trace/ora_15587_139826913183488.trc
Trace level is currently 0
Log messages written to /home/U01/app/grid/diag/tnslsnr/rolequery/listener_1526/alert/log.xml
22-OCT-2015 22:57:37 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=grid))(COMMAND=reload)(ARGUMENTS=64)(SERVICE=listener_1526)(VERSION=186647296)) * reload * 0
然後日誌中的警告就徹底消失了。
Thu Oct 22 22:58:44 2015
22-OCT-2015 22:58:44 * ping * 0
22-OCT-2015 22:58:44 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
按照這種情況,這個錯誤算是徹底解決了,修不修改閥值已經沒那麼重要了。
從這個簡單的案例可以看出這個細小的報警簡訊還是能夠折射出一些小的問題來,比如grid和oracle的分離,agent安裝基於oracle使用者,但是監聽在grid,還是需要考慮一些相關的設定。
如果出現了問題,單純修改閥值或者遮蔽監控,只是把問題給藏起來了,還是沒有得到解決,所以問題處理也要做到表裡如一。
xxxx,trc_directory (TNS-1190),log_directory(TNS-1190),Please check log for details
對於這個問題,看似是監聽出了問題,但是根據同事的反饋說監聽一切正常,而且從業務部門也從來沒有得到任何反饋說系統的任何問題,所以問題就擱置了下來,但是昨天再次收到這個問題,
感覺還是需要來看一下,畢竟收到報警簡訊了,應該是什麼地方達到了閥值,還是需要關注的。
於是登入到伺服器上去看,伺服器上是11g的庫,用到了asm,所以是grid和oracle獨立的兩個使用者。
檢視tns的情況,
$ ps -ef|grep tns
root 85 2 0 2014 ? 00:00:00 [netns]
grid 3431 1 0 2014 ? 01:40:55 /home/U01/app/grid/11.2.3/bin/tnslsnr LISTENER -inherit
grid 15587 1 0 2014 ? 00:32:19 /home/U01/app/grid/11.2.3/bin/tnslsnr LISTENER_1526 -inherit
oracle 30419 30323 0 22:42 pts/0 00:00:00 grep tns
檢視grid中的日誌顯示內容為,可以看到有警告,但是不確定是否有這個問題導致。
WARNING: Subscription for node down event still pending
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=services)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * services * 0
WARNING: Subscription for node down event still pending
21-OCT-2015 14:36:13 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
因為報錯資訊知道了TNS錯誤上所以自己的注意力就集中在了那上面,除此之外也沒有發現有任何的警告。
這個時候求助於metalink,發現竟然有一篇很詳細的文章介紹。
How To Disable Oracle Database Listener Alerts TNS-01190 In Enterprise Manager Cloud Control 12c to avoid the error "trc_directory (TNS-1190), log_directory (TNS-1190),. Please check log for details." (Doc ID 1399060.1)
那麼這個時候來看這個問題似乎就是水到渠成了。
根據這個帖子的說法,還是因為agent在oracle使用者下,而監聽在grid下,所以agent需要週期性的去查詢一下監聽的資訊的時候,因為沒有許可權,所以會有一些問題。
對於這個問題,如果通過EM來修正,就可以找到對應的監聽
然後在 監聽器->監視->度量和收集設定裡面可以看到其實1190就是最高的閥值了。
這個時候一種解決辦法就是把1190從這個閥值中去掉。
當然去掉之後,偶爾的報警簡訊一直到今天再也沒有出現過。
不過這樣處理問題還是治標不治本,知道還是因為一些設定的不規範,單純修改閥值,去除閥值雖然可行,但是還是不夠徹底。
所以繼續開始琢磨改怎麼處理。繼續檢視,發現了兩篇相關的文章。
EM 11g: How To Prevent the Generation of The Listener Error TNS-1190 From the Enterprise Manager 11.1.0.1 Grid Control Console (文件 ID 1595086.1)
'WARNING: Subscription for node down event still pending' in Listener Log (Doc ID 372959.1)
第一篇雖然是11g中的解決方法,但是我覺得更加全面,因為裡面提到了4中方法,第一種就是解決這個警告,因為這個也是間接反映了這個問題,第二種就是通過EM修改閥值,去掉1190的閥值
第三種是新增監聽密碼,但是這種似乎還是不太適用,第四種是直接忽略,好像也有道理,但是我不願意這麼做。
好了,這麼看來,第二種已經做完了,那麼目前的效果是怎麼樣的呢?
檢視監聽日誌的情況
$ tail -f *.log
Thu Oct 22 22:53:44 2015
22-OCT-2015 22:53:44 * ping * 0
WARNING: Subscription for node down event still pending
22-OCT-2015 22:53:44 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
可以看到監聽的警告依然存在,那麼就開始在listener.ora裡面新增一個引數
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_1526=OFF
這個其實也是把一個類似的觸發器關掉,可見oracle在這方面真實技高一籌。
修改完成之後,還是需要reload的。
$ lsnrctl reload listener_1526
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))
The command completed successfully
然後再次檢視日誌,發現就有了明顯的變化。
Thu Oct 22 22:57:34 2015
22-OCT-2015 22:57:34 * ping * 0
WARNING: Subscription for node down event still pending
22-OCT-2015 22:57:34 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
System parameter file is /home/U01/app/grid/11.2.3/network/admin/listener.ora
Trace information written to /home/U01/app/grid/diag/tnslsnr/rolequery/listener_1526/trace/ora_15587_139826913183488.trc
Trace level is currently 0
Log messages written to /home/U01/app/grid/diag/tnslsnr/rolequery/listener_1526/alert/log.xml
22-OCT-2015 22:57:37 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=grid))(COMMAND=reload)(ARGUMENTS=64)(SERVICE=listener_1526)(VERSION=186647296)) * reload * 0
然後日誌中的警告就徹底消失了。
Thu Oct 22 22:58:44 2015
22-OCT-2015 22:58:44 * ping * 0
22-OCT-2015 22:58:44 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=test.com)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=test.com)(PORT=1526)))(VERSION=186647296)) * status * 0
按照這種情況,這個錯誤算是徹底解決了,修不修改閥值已經沒那麼重要了。
從這個簡單的案例可以看出這個細小的報警簡訊還是能夠折射出一些小的問題來,比如grid和oracle的分離,agent安裝基於oracle使用者,但是監聽在grid,還是需要考慮一些相關的設定。
如果出現了問題,單純修改閥值或者遮蔽監控,只是把問題給藏起來了,還是沒有得到解決,所以問題處理也要做到表裡如一。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1815764/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一條報警資訊的快速處理和分析
- 一個慢查詢報警的簡單處理
- 一條簡單的報警資訊發現的oracle bugOracle
- 基於報警處理的補充
- 一條看似平常的報警郵件所做的分析
- 兩條報警資訊的分析(第一篇)
- 富士變頻器OC報警故障的維修處理方法
- oracle 中 alert 報警日誌過大的處理方法Oracle
- 一條關於swap爭用的報警郵件分析(一)
- 一個細小問題觸發的報警(r11筆記第68天)筆記
- 一條關於swap爭用的報警郵件分析
- 一條關於swap爭用的報警郵件分析(二)
- 必備丨iOS12的新功能讓手機一鍵發簡訊報警iOS
- struts 如何能夠報處理正常的訊息
- 【演算法】海量資料處理:有一千萬條簡訊,有重複,以文字形式儲存,一行一條,找出重複最少的前10條演算法
- php 處理訊號簡單演示PHP
- 處理字串的小程式字串
- Kafka是如何處理Netflix每天2萬億條訊息的?Kafka
- 通訊訊號處理的一些基本常識
- 簡單的字串處理字串
- 簡單的文字處理
- 串的簡單處理
- MySQL:簡單記錄訊號處理MySql
- DG報錯的處理
- 多對一處理 和一對多處理的處理
- 一則備庫CPU報警的思考
- 簡單的全域性異常統一處理
- 處理一些編譯警告的簡單編譯
- 三、訊息的可靠處理
- 自動化部署nginx負載均衡及監控簡訊報警Nginx負載
- 分散式監控系統Zabbix-3.0.3--簡訊報警設定分散式
- 印表機列印出現橫條紋怎麼處理 印表機出現一條一條的橫紋
- 關於處理死鎖的一點小知識
- 道路千萬條,安全第一條——一次伺服器被入侵的處理經過伺服器
- rails gem報錯的處理AI
- 細說 ReactiveCocoa 的冷訊號與熱訊號(三):怎麼處理冷訊號與熱訊號React
- 來自於微信小程式的一封簡訊微信小程式
- 使用timer控制元件建立一個簡單的報警程式 (轉)控制元件