PostRank

2009/03/12

快速檢查 DB alert log 的語法

摘自:網路

不知道你有沒有遇過需要去 DB alert log 裡頭
去抓取 ORA- 開頭發生的狀況

如果你用 vi 去搜尋,只能一筆一筆依序判讀,很沒效率

其實可以透過 "sed" 的語法,篩選特定字元,顯示上一行的「時間」

例如:
sed '/ORA-/H;x;/\n/!d' alert_PROD.log

顯示的結果: 這樣可以快速列出 db alert log 發生的問題跟時間
Wed May 21 20:17:35 2008
ORA-1652: unable to extend temp segment by 16 in tablespace TEMP
Wed May 21 20:17:36 2008
ORA-1652: unable to extend temp segment by 16 in tablespace TEMP
Thu May 22 01:14:53 2008
ORA-01555 caused by SQL statement below (Query Duration=39068 sec, SCN: 0x0007.69a1780f):


另外呢,如果我們想要找..上次開關機之間的時間?
這樣就很有效率去顯示從 alert log 記錄的DB開關 時間囉

### 顯示 alter database open 的上一行 系統時間

sed '/ALTER DATABASE OPEN/H;x;/\n/!d' alert_PROD.log

輸出片段:
Thu May 1 09:10:09 2008
ALTER DATABASE OPEN
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN
Thu May 1 11:44:23 2008
ALTER DATABASE OPEN
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN
Thu May 15 18:20:29 2008
ALTER DATABASE OPEN
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN

沒有留言: