首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

監控 Oracle 資料庫常用 Shell 腳本:Crontab 自動化與八大核心檢查

     編輯:Oracle 資料庫相關知識

DBA 基礎 Unix 命令

命令用途
ps顯示進程
grep文字模式搜尋
mailx收發郵件
cat顯示/串接檔案
cut擷取欄位
awk模式掃描處理
df磁碟剩餘空間

實用範例

# 可用實例
ps -ef | grep smon
# 可用監聽器
ps -ef | grep -i listener | grep -v grep
# 歸檔目錄磁碟使用率
df -k | grep oraarch
# Alert Log 行數
cat alert.log | wc -l
# Alert Log 所有 ORA- 錯誤
grep ORA- alert.log

Crontab 六欄位格式

分 時 日 月 週 命令
0 4 * * 5 /dba/admin/analyze_table.ksh          # 每週五 04:00 分析表
30 3 * * 3,6 /dba/admin/hotbackup.ksh >/dev/null 2>&1  # 週三/六 03:30 熱備份

八大核心監控腳本

  1. 實例可用性:ps -ef | grep ora_smon_$SID 無輸出 → 郵件告警。
  2. 監聽器可用性:lsnrctl status $LISTENER 檢查狀態。
  3. Alert Log 錯誤掃描:grep ORA- $ALERT_LOG 新增行 → 郵件通知。
  4. 舊 Log 清理:find $LOG_DIR -mtime +7 -exec rm {} \; (保留 7 天)。
  5. 表/索引分析:DBMS_STATS.GATHER_SCHEMA_STATS 排程執行。
  6. 表空間使用率:查詢 DBA_FREE_SPACE / DBA_DATA_FILES,超 85% 告警。
  7. 無效物件檢測:SELECT COUNT(*) FROM DBA_OBJECTS WHERE STATUS='INVALID' > 0 告警。
  8. 用戶/交易監控:V$SESSION 統計活動 Session、長交易、鎖等待。

腳本架構建議

  • 統一環境變數載入 (. ~/.profile 或 oraenv)。
  • 共用函式庫:log()、alert()、run_sql()。
  • 集中配置檔:SID、閾值、郵件清單、路徑。
  • 所有輸出導向集中日誌目錄,配合 logrotate。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved