㈠ 每天的工作
① 檢查 alert.log
② 環境確認
● 資料庫執行個體是否正常工作
▼ ps –ef|grep ora_
▼ select status from v$instance
● 監聽器是否正常工作
▼ lsnrctl status
● 資料表空間是否出故障
▼ select tablespace_name,status from dba_tablespace;
● 控制檔案、記錄檔是否正常
▼ v$controlfile
▼ v$log、v$logfile
③ 效能監測
● 按業務峰值情況,對資料庫效能資料進行定時採集
● 檢查資料庫的主要效能指標
● 檢查最消耗資源的SQL語句變化情況
● 檢查是否有足夠的資源、主要注意以下:
▼ 所有資料表空間的剩餘空間情況
▼ 識別出一些異常的增長
▼ 檢查CPU、記憶體、網路、儲存等是否異常
④ 定時任務的檢查
每天檢查晚間定時執行指令碼
● 備份指令碼日誌
● 統計資訊採集指令碼日誌
● 定時資料幫浦/轉換/裝載指令碼
● 記錄檔整理指令碼
⑤ 堅持每天看Oracle 官方文檔一個小時 -_-#
㈡ 每周的工作
① 空間流量分析
● 監測資料量總體增長情況
● 按資料表空間分析使用率增長情況
● 資料表空間磁碟重組
=>alter tablespace <tablespace_name> coalesce;
● 各segment的資料片段、chained row/migrate row等問題
根據具體情況制定相應的策略,同時也及時發現潛在的問題
② 索引片段分析
● 監測索引的片段情況,根據情況制定索引的重建頻率以提高索引使用效率
=> analyze index <index_name> invalidate structure
=> select name,del_lf_rows_len,lf_rows_len,(del_lf_rows_len/lf_rows_len)*100 from index_stats
索引片段率(%) = (被刪除的索引長度/索引總長)*100
=> alter index <索引名> rebuild
=> alter index <索引名> coalesce
● 監測索引的使用方式,根據使用方式,刪除未使用的索引,並添加能提高查詢和處理效能的索引
=> alter index <索引名> monitoring usage
=> alter index <索引名> nomonitoring usage
=> select index_name,used from v$object_usage
③ 資料整理工作
● 清理和備份一周所產生的Alert日誌、追蹤檔案、dump檔案
● 清理和備份到期的資料庫效能資料,以保證資料庫效能監控的連續性和有效性
㈢ 每月的工作
● 全面分析一次STATSPACK報告/AWR
● 資料庫主要效能指標
● 資料庫主要等待事件
● 最消耗記憶體資源的SQL語句
● 最消耗I/O資源的SQL語句
● 恢複演練以保證備份的有效性
..........
..........
..........
By David Lin
2013-06-14
Knowing youself is the height of wisdom