客戶的db主機一段時間就發送 ORA-6544 的錯誤訊息,
google 大多指向 cursor 的問題,因此記錄一下處理方式與使用的SQL
1. alert.log 錯誤內容指向一個 trace file
2. 查 trace file 很明確指出是哪個 module name ( emagent_SQL_rac_database )
3. 進資料庫查了一下目前開啟的 cursor 是多少 ( DB open_cursor 是設定為 1000 )
set line 200
col user_name format a13
SELECT user_name, count(*) as "OPEN CURSORS" FROM v$open_cursor GROUP BY user_name;
發現 DBSNMP Cursor 開了 1033 個,
4. 檢查執行中的 Query
set line 200
col user_name format a13
SELECT sql_text, count(*) as "CURSORS", user_name FROM v$open_cursor GROUP BY sql_text, user_name ORDER BY COUNT(*) desc;
5. Query 內容查詢與 tablespace 空間有關
懷疑 EM Agent 是否當機,就做了以下 EM Agent 的測試,都是正常可識別
cd <agent_home>/bin
./emctl status agent
./emctl pingOMS
./emctl upload
6. 重啟 EM Agent
清掉卡很久的 Query,或許使用 kill session 也可以,但怕 session 會清不乾淨,才選擇重啟 EM Agent
cd <AGENT_HOME>/bin
./emctl stop agent
./emctl start agent
已轉向 blogger 記錄
https://slowlife-notes.blogspot.com