1. 背景概述
對於日常的一些重復性的操作,以及在用戶現場進行問題處理的過程中,采用一些自動化的腳本,來完成一些工作,會使一些枯燥的工作變得簡單、快速,同時也不容易出錯。在為某些省份聯通公司和財政廳實施服務的過程中,了解到用戶有如下的需求:提供shell腳本,實現對oracle數據庫的alert日志進行跟蹤處理,比如根據時間(天為單位),來查看和處理alert日志。
在未編寫腳本時,常用的處理方法是,下載alert文件,使用文本編輯工具查找,統計,定位,過濾,下載跟蹤文件。一般比較費時,而且可能會有遺漏。
本文首先闡述算法,接著給出實現代碼與樣例,最後給出展望,腳本主要包括shell腳本以及sql腳本。
2. 算法
? 圖1 流程圖
確定需要分析多少天以來的日志情況
? 對時間進行處理,根據時間戳格式(本文處理的alert文件的時間格式類似於:Fri Aug 1 13:22:37 2008),獲取起始行號,分析從起始行號到結束的所有內容。
? 過濾所有的ORA-信息,並對他們進行統計顯示。
? 對關鍵的錯誤信息(ORA-00600,ORA-000060,ORA-1555,ORA-07445),進行單獨處理。
? 查找並獲取跟蹤文件。生成ftp的格式,使用ftp命令下載跟蹤文件。
? 使用操作系統命令,獲取錯誤對應的含義。
3. Shell代碼