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 熱備份
八大核心監控腳本
- 實例可用性:
ps -ef | grep ora_smon_$SID 無輸出 → 郵件告警。
- 監聽器可用性:
lsnrctl status $LISTENER 檢查狀態。
- Alert Log 錯誤掃描:
grep ORA- $ALERT_LOG 新增行 → 郵件通知。
- 舊 Log 清理:
find $LOG_DIR -mtime +7 -exec rm {} \; (保留 7 天)。
- 表/索引分析:
DBMS_STATS.GATHER_SCHEMA_STATS 排程執行。
- 表空間使用率:查詢
DBA_FREE_SPACE / DBA_DATA_FILES,超 85% 告警。
- 無效物件檢測:
SELECT COUNT(*) FROM DBA_OBJECTS WHERE STATUS='INVALID' > 0 告警。
- 用戶/交易監控:
V$SESSION 統計活動 Session、長交易、鎖等待。
腳本架構建議
- 統一環境變數載入 (
. ~/.profile 或 oraenv)。
- 共用函式庫:
log()、alert()、run_sql()。
- 集中配置檔:SID、閾值、郵件清單、路徑。
- 所有輸出導向集中日誌目錄,配合
logrotate。