單純 Ping 或進程檢查不足以保證 Oracle 真正可用。必須透過 SQL*Net 實際登入驗證監聽器與實例狀態,並同步監控表空間擴展上限與下一區段分配空間是否足夠。
實例名 TNS名稱 SYS密碼,每行一個實例。SELECT DISTINCT 'YES' FROM dba_segments
WHERE extents >= (max_extents - 5)
AND segment_name NOT LIKE '1.%';
若回傳 YES,表示有區段接近最大擴展數,發送郵件/簡訊告警。
SELECT DISTINCT 'YES' FROM dba_segments ds
WHERE next_extent > (
SELECT MAX(bytes) FROM dba_free_space
WHERE tablespace_name = ds.tablespace_name
);
若回傳 YES,表示表空間最大連續可用空間不足以滿足下一區段需求,觸發告警。
ORA- 錯誤,記錄日誌並通知支援人員。awk 解析查詢結果,判斷是否觸發閾值。shift 3 處理下一組參數。crontab 定時執行(如每 15 分鐘)。max_extents - 5 可改為百分比)。