| 維度 | 頻次 | 核心目標 | 自動化程度目標 |
|---|---|---|---|
| 日常維護 | 每日/每班次 | 可用性監控、備份驗證、性能基線、空間預警 | 100% 自動化+異常推送 |
| 晚間維護 | 每日低峰窗口 | 統計信息收集、歸檔清理、報表生成、批量業務 | 100% 排程自動化 |
| 每周維護 | 每週維護窗口 | 對象規範性、環境一致性、安全合規、日誌歸檔、情報跟蹤 | 90% 自動化+人工複核 |
| 月度維護 | 每月 | 容量規劃、性能複盤、I/O熱點、碎片治理、計劃演進、調優回顧 | 50% 自動化+專家分析 |
-- check_instances.sql
SELECT instance_name, host_name, status, database_status,
TO_CHAR(startup_time, 'YYYY-MM-DD HH24:MI') AS startup_time
FROM gv$instance
ORDER BY inst_id;
# daily_alert_scan.sh
# 只掃描上次掃描位置到文件末尾,避免重複告警
LAST_POS_FILE="/var/log/last_alert_pos_$ORACLE_SID"
CUR_POS=$(wc -l < $ALERT_LOG)
LAST_POS=$(cat $LAST_POS_FILE 2>/dev/null || echo 0)
tail -n +$((LAST_POS+1)) $ALERT_LOG | grep -iE 'ORA-|TNS-|error|corrupt|terminat' | \
mail -s "【每日】$ORACLE_SID Alert異常掃描" dba@company.com
echo $CUR_POS > $LAST_POS_FILE
# check_agent.sh
ps -ef | grep -v grep | grep -q "emagent" || {
emctl start agent;
mail -s "【告警】$ORACLE_SID EM Agent自動重啟" dba@company.com;
}
-- check_rman_backup.sql
SELECT
TO_CHAR(start_time, 'YYYY-MM-DD') AS backup_date,
status,
input_type,
ROUND(elapsed_seconds/60,1) AS elapsed_min,
ROUND(output_bytes/1024/1024/1024,2) AS output_GB
FROM v$rman_backup_job_details
WHERE start_time > SYSDATE - 1
ORDER BY start_time DESC;
對比RMAN Catalog與媒體管理器(NetBackup/CommVault/TSM)目錄,驗證備份片段完整、可還原。
-- daily_health.sql
-- 關鍵指標:DB Time、Logical Reads、Physical Reads、Redo Size、Parse Count、Hard Parse%
-- 表空間利用率>85%告警、FRA利用率>80%告警、UNDO積壓>1GB告警
將巡檢報告、變更記錄、事件處理單同步至只讀備份庫/文檔管理系統,保證審計追溯。
每日花費15分鐘閱讀MOS新文檔、社區佳作、內部經驗,更新個人/團隊Runbook。
-- pop_vol.sql (每晚執行)
INSERT INTO utl_vol_facts
SELECT table_name, NVL(num_rows,0), TRUNC(last_analyzed)
FROM dba_tables -- 或 user_tables
WHERE owner IN ('&OWNER')
-- 或指定多個: WHERE owner IN ('SCHEMA1','SCHEMA2')
/
COMMIT;
參考前文:對象完整性、環境一致性、安全合規、SQL*NET日誌、Alert歸檔、供應商情報。
| 專題 | 核心動作 | 產出物 |
|---|---|---|
| 增長速度風險評估 | 基於utl_vol_facts擬合增長曲線,預測30/60/90/180天空間需求 | 容量擴容計劃、採購申請 |
| 性能調優複盤 | 回顧本月Top 10 SQL調優案例,總結模式、沉澱模板、更新統計策略 | 調優知識庫更新、統計收集策略優化 |
| I/O瓶頸分析 | 分析V$FILESTAT/V$TEMPSTAT/AWR報告,識別熱點文件、控制文件爭用、Redo日志I/O | 文件佈局調整建議、ASM磁盤組再平衡計劃 |
| 碎片化治理 | 表/索引碎片掃描(DBMS_SPACE.SPACE_USAGE),制定REBUILD/MOVE計劃 | 碎片治理執行計劃、維護窗口申請 |
| 未來執行計劃演進 | SPM Baseline捕獲新計劃、驗證性能、演進策略(AUTO/ACCEPT) | SQL Plan Baseline庫健康度報告 |
| 調優點與維護回顧 | 複盤本月所有變更、事件、調優動作,提煉系統性改進機會 | 月度運營報告、改進項Backlog |
check_*(),返回結構化JSON(狀態、指標、異常詳情、建議動作);/db health、/db top_sql、/db ts_usage等對話式運維。從「人工核對清單」到「智能化運營平台」,DBA維護體系的進化本質是將隱性經驗顯性化、將重複勞動自動化、將被動響應主動化。建議以日常維護100%自動化為起點,逐步推進至月度戰略複盤數據驅動,構建企業級數據庫運營核心競爭力。