首页主机资讯centos oracle数据库如何监控

centos oracle数据库如何监控

时间2025-12-19 22:40:03发布访客分类主机资讯浏览1092
导读:CentOS 上 Oracle 数据库监控实践 一 监控体系与工具选型 数据库内置与官方工具 Oracle Enterprise Manager(OEM):集中式监控、告警、性能诊断与优化。 AWR/ASH/Statspack:历史与实...

CentOS 上 Oracle 数据库监控实践

一 监控体系与工具选型

  • 数据库内置与官方工具
    • Oracle Enterprise Manager(OEM):集中式监控、告警、性能诊断与优化。
    • AWR/ASH/Statspack:历史与实时性能数据、等待事件、SQL 负载分析。
    • oratop:类 top 的实时性能工具,覆盖会话、SQL、等待事件,支持 ADG
  • 操作系统层监控
    • 资源与 I/O:top/htop、vmstat、iostat、sar、dstat、nmon
    • 网络与监听:netstat -tlnp | grep < 端口> lsnrctl status/start
  • 开源与商业平台
    • Zabbix(可用 Orabbix 插件采集 Oracle 指标)、Prometheus + oracle_exporter + GrafanaDatadogNagios/SolarWinds
  • 脚本与自研
    • Shell/Python + cx_Oracle 定制巡检与指标采集,灵活对接企业告警通道。

二 快速上手的三种方案

  • 方案 A:Zabbix + Orabbix(适合已有 Zabbix 体系)
    • 前置:Orabbix 主机安装 Java,与 Zabbix Server 网络互通;Oracle 主机安装 Zabbix Agent(Orabbix 可不在库主机)。
    • 安装与配置
      • 部署 Orabbix,编辑 conf/config.props:配置 Zabbix Server 地址、被监控库列表(DatabaseList)、JDBC 连接串(如 jdbc:oracle:thin:@IP:1521:SID)、连接池与采集频率。
      • 在 Oracle 创建监控用户并授权(示例):
        • CREATE USER ZABBIX IDENTIFIED BY ZABBIX …;
        • GRANT CONNECT, CREATE SESSION TO ZABBIX;
        • GRANT SELECT ON V_$INSTANCE、V_$LOG_HISTORY、V_$PARAMETER、V_$SYSTEM_EVENT、V_$LIBRARYCACHE、V_$SYSSTAT、V_$PGASTAT、V_$SGASTAT、V_$PROCESS、DBA_DATA_FILES、DBA_FREE_SPACE、DBA_USERS、V_$LOCK、SYS.DBA_AUDIT_SESSION TO ZABBIX;
        • 如为 Oracle 11g,需配置 ACL 以允许解析外部主机名(DBMS_NETWORK_ACL_ADMIN)。
      • 导入模板、关联主机、设置告警阈值。
  • 方案 B:Prometheus + oracle_exporter + Grafana(云原生与可视化)
    • 部署 oracle_exporter(提供 /metrics),以 Oracle 用户连接库并暴露指标。
    • Prometheus 配置抓取任务,Grafana 使用官方或社区 Oracle 仪表盘展示与告警。
  • 方案 C:轻量脚本 + 系统工具(适合最小化环境)
    • 监听器:用 lsnrctl status 检查并在异常时 lsnrctl start;可脚本化并配合 cron 每分钟巡检。
    • OS 资源:iostat -xz 1 1(I/O)、top/htop(CPU/内存)、vmstat(虚拟内存/CPU)、sar/dstat/nmon(综合资源)。
    • 数据库会话与负载:按需查询 V$ 视图(如 V$SESSION、V$SYSSTAT、V$SYSTEM_EVENT)做阈值告警或趋势记录。

三 关键监控指标与采集方法

维度 关键指标 采集方式/SQL 示例
可用性 监听状态、实例状态 lsnrctl status;SELECT status FROM v$instance;
负载 DB Time、CPU 使用、逻辑/物理读 SELECT name, value FROM v$sysstat WHERE name IN (‘DB time’,‘CPU used by this session’,‘physical reads’,‘session logical reads’);
等待事件 Top 等待事件与平均等待 SELECT event, total_waits, time_waited_micro FROM v$system_event WHERE wait_class!=‘Idle’ ORDER BY time_waited_micro DESC FETCH FIRST 10 ROWS ONLY;
会话与连接 当前会话/进程数、阻塞会话 SELECT count() FROM v$session; SELECT count() FROM v$process; 结合 v$session 的 blocking_session 定位阻塞源;
SQL 性能 Top SQL(耗时/磁盘读/执行次数) SELECT sql_id, elapsed_time, cpu_time, disk_reads, executions FROM v$sqlarea ORDER BY elapsed_time DESC FETCH FIRST 10 ROWS ONLY;
存储与空间 表空间使用率 SELECT tablespace_name, round((used_space/total_space)*100,2) pct FROM dba_tablespace_usage_metrics;
内存与缓存 SGA/PGA 命中率、库缓存命中 SELECT name, value FROM v$sysstat WHERE name IN (‘consistent gets’,‘db block gets’,‘physical reads’);
归档与日志 归档日志产生趋势、日志切换频率 SELECT sequence#, first_time, next_time FROM v$archived_log ORDER BY sequence# DESC; SELECT name, value FROM v$sysstat WHERE name=‘redo writes’;
并发量 并发会话峰值与活跃会话 SELECT count(*) FROM v$session WHERE status=‘ACTIVE’; 结合 AWR/ASH 分析并发趋势与峰值时段;

四 告警阈值与巡检建议

  • 告警阈值示例(需结合基线调整)
    • 表空间使用率 > 80%(严重 > 90%
    • 活动会话数超过 CPU 核数的 2–3 倍或历史 P95
    • 15 分钟平均等待事件总耗时突增(对比 AWR/ASH 基线)
    • 每秒硬解析次数持续上升(可能绑定变量缺失)
    • 监听器 DOWNTNS-12541/TNS-12560 等连接失败
    • 5 分钟归档失败或日志切换频率异常增高
  • 日常巡检清单
    • 每日:AWR/ASH 报告、Top SQL、表空间与备份状态、错误告警复核
    • 每周:SGA/PGA 命中率与内存分配、I/O 与等待事件趋势、参数变更审计
    • 每月:容量规划(数据/日志增长)、SQL 基线回归、备份恢复演练与 RPO/RTO 校验

五 排错与优化要点

  • 连接异常:优先检查 lsnrctl status、监听日志与 tnsnames.ora,确认监听端口(默认 1521)与 SERVICE_NAME/SID 一致。
  • 会话/负载异常:用 V$SESSION、V$SQLAREA、V$SYSTEM_EVENT 定位高耗 SQL 与等待类(如 db file sequential read、log file sync),结合执行计划与统计信息优化。
  • 存储瓶颈:关注 DBA_TABLESPACE_USAGE_METRICSV$DATAFILE,必要时扩容或迁移热点数据文件,开启合适的 ASM/条带化
  • 内存与并行:结合 V$SGASTAT、V$PGASTAT 与 AWR 的 PGA 命中率/排序指标,调整 SGA_TARGET、PGA_AGGREGATE_TARGET 与 SQL 并行度。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos oracle数据库如何监控
本文地址: https://pptw.com/jishu/776744.html
oracle在centos上如何启动 MongoDB故障排查在CentOS上怎么操作

游客 回复需填写必要信息