日常巡檢守住底線,月度深度作業拉高上限。本文整合「月度核心職責」與「日常管理全景框架」,構建覆蓋日/晚/周/月四個時間維度的 Oracle DBA 管理體系,附具體執行動作、關鍵 SQL 腳本參考與工程化落地路徑。
| 職責 | 核心動作 | 關鍵 SQL / 工具 | 產出物 |
|---|---|---|---|
| 1. 統計資訊收集 | 全庫/核心模式 DBMS_STATS.GATHER_SCHEMA_STATS,採樣率 50%,含直方圖 | EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SCHEMA', ESTIMATE_PERCENT=>50, METHOD_OPT=>'FOR ALL COLUMNS SIZE AUTO'); | 統計收集日誌、優化器決策改善記錄 |
| 2. 表空間碎片深度分析 | 彙總周度碎片報告,識別高碎片表空間,執行 COALESCE 或規劃重組 | 查詢 DBA_FREE_SPACE 最大連續塊、DBA_SEGMENTS 擴展數 > 100 的段 | 碎片整理執行報告、空間回收量統計 |
| 3. 效能調優機會挖掘 | 對比日度 Statspack/AWR 報告,鎖定 Top SQL、等待事件、資源爭用趨勢 | AWR Diff Report、SQL Tuning Advisor、V$SQL 高負載 SQL 追蹤 | 月度效能分析報告、調優建議清單 |
| 4. 效能調優執行 | 實施索引優化、SQL 改寫、參數調整、分區調整等經評估的調優動作 | 變更管理流程、回滾方案、效果驗證腳本 | 調優變更記錄、效果對比數據 |
| 5. 空間管理規劃提案 | 基於周度增長趨勢,預測未來 3-6 個月空間需求,提交擴容/歸檔/歸檔策略調整提案 | 趨勢外推模型、DBA_HIST_SEG_STAT 歷史增長數據 | 空間規劃文檔、採購/擴容申請單 |
ps -ef | grep pmon / EM 儀表板)tail alert.log)ps -ef | grep dbsnmp,應見 2 進程)MK_VOLFACT.SQL)ANALYZE_COMP.SQL)POP_VOL.SQL)NEXTEXT.SQL、EXISTEXT.SQL)NO_PK.SQL)、主鍵失效(DIS_PK.SQL)、非唯一主鍵索引(NONUPK.SQL)MKREBUILD_IDX.SQL)DATATYPE.SQL)、物件差異(OBJ_COORD.SQL),推薦使用 Schema 比對工具dba_scripts 倉庫,目錄結構:/daily、/weekly、/monthly、/emergency、/libcron + run-parts / Jenkins / Ansible Tower-- 表空間使用率
SELECT t.tablespace_name,
ROUND(t.total_mb,2) total_mb,
ROUND(f.free_mb,2) free_mb,
ROUND(100*f.free_mb/NULLIF(t.total_mb,0),2) pct_free
FROM (SELECT tablespace_name, SUM(bytes)/1024/1024 total_mb FROM dba_data_files GROUP BY tablespace_name) t
JOIN (SELECT tablespace_name, SUM(bytes)/1024/1024 free_mb FROM dba_free_space GROUP BY tablespace_name) f USING (tablespace_name);
-- 碎片段識別
SELECT owner, segment_name, segment_type, extents
FROM dba_segments
WHERE extents > 100
ORDER BY extents DESC;
-- Top 10 邏輯讀 SQL
SELECT sql_id, executions, buffer_gets/executions gets_per_exec, sql_text
FROM (SELECT * FROM v$sql WHERE executions > 0 ORDER BY buffer_gets/executions DESC)
WHERE ROWNUM <= 10;
-- 等待事件 Top 5 (實例級)
SELECT event, total_waits, time_waited_micro/1000000 sec_waited
FROM v$system_event
WHERE wait_class != 'Idle'
ORDER BY time_waited_micro DESC
FETCH FIRST 5 ROWS ONLY;
月度職責是戰略,日常管理是戰術。將兩者融入「日/晚/周/月」四層節奏,並以腳本庫、調度平台、可視化儀表板、知識庫四大工程化支柱支撐,即可構建起「可度量、可追溯、可傳承、可規模化」的 Oracle DBA 管理體系。這不僅是技術文檔,更是團隊從「英雄模式」進化為「專業運營」的藍圖。