在 Ubuntu + Oracle 数据库 环境下,监控通常分为 操作系统层监控 和 Oracle 数据库层监控 两大类。下面给你一套实用方案,从“轻量命令”到“专业工具”都有。
top
htop # 更友好(需安装)
free -h # 内存
df -h # 磁盘
iostat -x 1 # IO(需安装 sysstat)
vmstat 1
netstat -tnlp | grep 1521
ss -tnlp | grep 1521
ps -ef | grep oracle
tail -f /var/log/syslog
dmesg | tail
sqlplus / as sysdba
SELECT instance_name, status FROM v$instance;
SELECT name, open_mode FROM v$database;
SELECT sid, serial#, username, status FROM v$session;
SELECT event, total_waits
FROM v$system_event
ORDER BY total_waits DESC;
SELECT tablespace_name,
round(sum(bytes)/1024/1024,2) mb
FROM dba_data_files
GROUP BY tablespace_name;
@?/rdbms/admin/awrrpt.sql
生成 HTML 报告,分析性能瓶颈。
@?/rdbms/admin/addmrpt.sql
https://<hostname>:5500/em
(12c 以后叫 Enterprise Manager Express)
SELECT a.tablespace_name,
a.bytes/1024/1024 total_mb,
b.bytes/1024/1024 free_mb
FROM dba_data_files a,
dba_free_space b
WHERE a.tablespace_name = b.tablespace_name;
SELECT * FROM v$lock WHERE block = 1;
oracle_exporter$ORACLE_BASE/diag/rdbms/<db>/<instance>/trace/alert_<instance>.log
日常:
top + df -hv$sessionalert.log生产:
如果你愿意,可以告诉我:
我可以给你 具体配置步骤或监控脚本。