Debian系統上Informix數據庫的監控與管理指南
onstat
:Informix自帶的綜合監控工具,可顯示數據庫運行狀態的關鍵指標。常用命令包括:
onstat -d
:查看磁盤空間使用情況(如dbspace、blobspace的剩余空間);onstat -m
:顯示內存池使用情況(緩沖池、鎖內存、排序內存等);onstat -c
:查看CPU使用率及活躍進程列表;onstat -l
:檢查邏輯日志狀態(當前日志編號、使用比例、是否需要切換);onstat -s
:顯示SQL語句執行統計(如執行次數、耗時最長的查詢)。onmode
:用于調整數據庫運行模式及參數。常用命令包括:
onmode -c
:強制執行檢查點(將緩沖池中的臟頁寫入磁盤);onmode -m
:切換數據庫至聯機模式(允許客戶端連接);onmode -k
:終止指定會話(解決鎖等待問題)。onparams
:管理邏輯日志和物理日志參數。常用命令包括:
onparams -a -d logdbs -s 100000
:向邏輯日志表空間logdbs
添加10萬頁(約800MB)的邏輯日志空間;onparams -d -l logid
:刪除指定ID的邏輯日志(需確保日志已切換且不再需要)。top/htop
:實時查看系統進程資源占用,重點關注Informix進程(如oninit
、onmode
)的CPU、內存使用情況;vmstat
:監控系統虛擬內存、磁盤I/O、CPU活動(如vmstat 1 5
每秒采集1次,共5次);iostat
:查看磁盤讀寫性能(如iostat -x 1
顯示磁盤IOPS、吞吐量、等待時間);df -h
:檢查磁盤空間使用情況(確保存放Informix數據文件的目錄有足夠空間)。IMMX
),可監控數據庫性能指標(如緩存命中率、鎖等待時間),并設置閾值報警(如CPU使用率超過80%時發送郵件通知);node_exporter
采集系統指標,informix_exporter
采集Informix專用指標(如活躍會話數、SQL執行時間),結合Grafana實現可視化 dashboard,支持實時告警。onstat
、df
等命令,定期檢查Informix狀態(如邏輯日志剩余空間、磁盤空間),并將結果寫入日志或發送報警。示例腳本:#!/bin/bash
# 設置Informix環境變量
export INFORMIXDIR=/opt/informix
export PATH=$INFORMIXDIR/bin:$PATH
# 監控邏輯日志剩余空間(閾值<20%報警)
LOG_SPACE=$(onstat -l | awk '/Current log space used:/ {print $NF}')
if (( $(echo "$LOG_SPACE > 80" | bc -l) )); then
echo "Warning: Logical log space used exceeds 80%!" | mail -s "Informix Log Space Alert" admin@example.com
fi
# 監控磁盤空間(根分區閾值<10%報警)
DISK_SPACE=$(df -h / | awk '/\/$/ {print $5}' | tr -d '%')
if (( DISK_SPACE > 90 )); then
echo "Warning: Root disk space used exceeds 90%!" | mail -s "Informix Disk Space Alert" admin@example.com
fi
通過crontab -e
設置定時任務(如每5分鐘執行一次):*/5 * * * * /path/to/monitor_script.sh
。ontape
工具進行全量備份(需停機),命令:ontape -s -L 0
(-L 0
表示零級備份);ontape -r
(恢復時使用);dbexport
導出指定數據庫(如dbexport mydb
),生成SQL腳本便于遷移或恢復。UPDATE STATISTICS
命令(如UPDATE STATISTICS HIGH FOR TABLE mytable;
),幫助優化器生成更優的執行計劃;ALTER TABLE ... REORGANIZE
命令整理表的碎片,提升查詢性能。dbexport
卸出表定義及數據,刪除損壞的表文件,再用dbimport
重新創建表并導入數據;onparams
增加邏輯日志空間,或使用備份的邏輯日志進行恢復。oninit -s on
),系統會自動執行崩潰恢復(回滾未提交的事務、重做已提交的事務);ontape -r
(恢復全量備份)→ 應用邏輯日志(ontape -r
)。