温馨提示×

linux oracle配置如何监控

小樊
35
2026-09-25 17:08:00
栏目: 云计算

在 Linux 上监控 Oracle 数据库,通常从操作系统层、数据库实例层、性能与告警层三个维度来做。下面给你一套实用、可落地的配置思路。


一、操作系统层监控(Linux)

1. 基础资源监控

重点关注:CPU、内存、I/O、网络、Swap

常用命令:

top / htop
free -h
iostat -x 1
vmstat 1
df -h
netstat -anp | grep oracle

2. 使用系统监控工具

  • Prometheus + node_exporter
  • Zabbix agent
  • Grafana + Linux 面板

示例(node_exporter):

./node_exporter &

二、Oracle 数据库层监控(核心)

1. Oracle 自带工具

(1)Oracle Enterprise Manager(OEM)

  • 官方最完整方案
  • 可监控:
    • 实例状态
    • 表空间
    • 等待事件
    • SQL 性能
https://<host>:1158/em

(2)Alert Log 监控(最重要)

路径示例:

$ORACLE_BASE/diag/rdbms/<db>/<instance>/trace/alert_<instance>.log

监控错误:

grep -i "ORA-" alert_*.log

2. 使用 SQL 脚本监控(DBA 必备)

(1)实例状态

SELECT instance_name, status, database_status
FROM v$instance;

(2)表空间使用率

SELECT
  tablespace_name,
  ROUND(used_percent,2) used_pct
FROM dba_tablespace_usage_metrics;

(3)会话与等待

SELECT event, count(*)
FROM v$session_wait
GROUP BY event;

(4)Top SQL

SELECT sql_id, elapsed_time, executions
FROM v$sql
ORDER BY elapsed_time DESC
FETCH FIRST 10 ROWS ONLY;

三、自动化监控方案(推荐)

方案 1:Zabbix + Oracle 监控

  • 使用 zabbix-agent
  • Oracle 模板(ODBC 或 SQLPlus)

监控项:

  • 实例是否存活
  • 表空间使用率
  • 连接数
  • 锁等待

方案 2:Prometheus + Oracle Exporter

常用:

  • oracle_exporter(用 Go 写)
  • Grafana 面板
export DATABASE_URL=oracle://user:pass@host:1521/ORCL
./oracle_exporter

监控指标:

  • 表空间
  • 会话数
  • 物理读/逻辑读
  • 等待事件

四、告警配置(关键)

1. 表空间告警(示例)

BEGIN
  DBMS_SCHEDULER.CREATE_JOB(
    job_name => 'CHECK_TBS',
    job_type => 'PLSQL_BLOCK',
    job_action => 'BEGIN IF used_pct > 90 THEN send_alert(); END IF; END;',
    repeat_interval => 'FREQ=HOURLY'
  );
END;

2. Linux 层告警

  • 磁盘 > 85%
  • Swap 使用
  • Oracle 进程异常退出

五、推荐监控清单(总结)

✅ OS:CPU / 内存 / IO / 磁盘
✅ Oracle:实例 / 表空间 / 会话 / 锁 / SQL
✅ 日志:alert log + listener log
✅ 工具:OEM / Zabbix / Prometheus
✅ 告警:邮件 / 钉钉 / 企业微信


如果你愿意,我可以:

  • 给你一套 Zabbix Oracle 监控模板
  • 或 Prometheus + Grafana 完整配置示例
  • 或针对 生产环境高并发场景做专项监控方案

你现在是 测试环境还是生产环境?用的 Oracle 几版本?

0 踩