Oracle
在 Oracle 警報日誌中遇到死鎖時的通知電子郵件
當在任何節點上的警報日誌中遇到死鎖時,如何發送通知電子郵件,例如下面遇到的死鎖?(在警報日誌中檢測到死鎖時發出警報)
Node 1: Mon Sep 08 16:23:59 2014 Global Enqueue Services Deadlock detected. More info in file /u01/oracle/diag/rdbms/luma/LUMA1/trace/LUMA1_lmd0_4814.trc. Node 2: Mon Sep 08 16:37:47 2014 Global Enqueue Services Deadlock detected. More info in file /u01/oracle/diag/rdbms/luma/LUMA2/trace/LUMA2_lmd0_2602.trc.
我正在使用 DB Control (11g)。
您可以嘗試使用 ADRCI。
ADRCI> ADRCI> show alert -p "message_text like '%Global Enqueue Services Deadlock detected%' and originating_timestamp > systimestamp + INTERVAL '-5' MINUTE"
這將在過去 5 分鐘內顯示您的錯誤。您可以將其放入 shell 腳本並添加一個每 5 分鐘執行一次的 cron 作業。
#!/bin/bash LOG = /home/oracle/log.txt adrci_homes=( $(adrci exec="show homes" | grep -e rdbms )) for adrci_home in ${adrci_homes[@]} do echo $adrci_home' Alert Log' >> $LOG adrci exec="set home ${adrci_home}; show alert -p \\\"%Global Enqueue Services Deadlock detected%' and originating_timestamp > systimestamp + INTERVAL '-5' MINUTE\\\"" -term >> $LOG done num_errors=`grep -c -e 'Global Enqueue Services Deadlock detected' $LOG` if [ $num_errors != 0 ] then mutt -a $LOG -s "Deadlock Detected" admin@mydomain.com fi
我知道有人編寫了一個 Perl 程序,該程序每隔幾分鐘就會醒來閱讀警報日誌的新行並在出現錯誤時發送電子郵件。如果你有網格,你可以配置它來通知是否有死鎖。