在 Linux 上监控 Oracle 数据库,可以从操作系统层面和数据库层面两个方向来做。下面给你一个比较实用、常见的监控方案总结。
top
htop
uptime
free -h
iostat -x 1
df -h
重点看:
%utilawaitnetstat -anp | grep oracle
ss -tanp
ps -ef | grep ora_
常见进程:
ora_pmon_ora_dbw0_ora_lgwr_ora_ckpt_SELECT status FROM v$instance;
SELECT
tablespace_name,
ROUND(used_space*8/1024,2) used_mb,
ROUND(tablespace_size*8/1024,2) total_mb,
ROUND((used_space/tablespace_size)*100,2) used_pct
FROM dba_tablespace_usage_metrics;
SELECT username, status, count(*)
FROM v$session
GROUP BY username, status;
SELECT event, total_waits, time_waited
FROM v$system_event
ORDER BY time_waited DESC;
# 告警日志
$ORACLE_BASE/diag/rdbms/*/trace/alert_*.log
tail -f alert_*.log
@?/rdbms/admin/awrrpt.sql
@?/rdbms/admin/addmrpt.sql
可监控:
✅ 必须监控:
⚠️ 性能监控:
如果你愿意,可以告诉我:
我可以给你具体的监控脚本或 Zabbix 模板。