centos sqlplus性能监控工具推荐
导读:CentOS 上基于 SQL*Plus 的 Oracle 性能监控工具推荐 一 工具选型总览 企业级统一监控:优先选用 Oracle Enterprise Manager Cloud Control 13c/14c,提供监控、告警、事件压...
CentOS 上基于 SQL*Plus 的 Oracle 性能监控工具推荐
一 工具选型总览
- 企业级统一监控:优先选用 Oracle Enterprise Manager Cloud Control 13c/14c,提供监控、告警、事件压缩、维护窗口(Blackouts)、自动修复与模板化治理,适合多库集中管理。
- 开源平台集成:
- Zabbix(ODBC):在 Zabbix Server/Proxy 安装 Oracle Instant Client + ODBC,配置 DSN 后导入 Oracle 模板即可采集数据库、表空间、ASM 等指标。
- Prometheus + oracle_exporter:部署 exporter 暴露指标,Prometheus 拉取、Grafana 可视化与阈值告警,适合云原生与容器化。
- 轻量命令行与脚本:使用 oratop(官方轻量工具)实时查看进程、SQL、等待事件与 ADG 信息;配合 SQL*Plus 快速巡检与补充采集。
- 操作系统层监控:在数据库主机配合 top/htop、iostat、vmstat、sar、nmon 观察 CPU、内存、I/O、网络,作为数据库观测的重要上下文。
二 仅用 SQL*Plus 的高频巡检 SQL
- 实例与数据库状态
- 实例状态:
select instance_name, status from v$instance; - 数据库状态:
select name, open_mode from v$database;
- 实例状态:
- 会话与负载
- 会话统计:
select count(*), status from v$session group by status; - 活跃会话概览:
select sid, serial#, username, program, action, state from v$session where status='ACTIVE';
- 会话统计:
- SQL 负载与资源
- Top SQL(按执行时间):
select sql_text, executions, elapsed_time from v$sql order by elapsed_time desc where rownum < = 10; - 系统级资源:
select * from v$sysstat where name in ('CPU used by this session','physical reads','physical writes');
- Top SQL(按执行时间):
- 等待事件
- 实时等待:
select event, count(*) from v$session_wait group by event order by count(*) desc; - 系统级等待:
select event, total_waits, total_timeouts, time_waited from v$system_event order by time_waited desc;
- 实时等待:
- 表空间使用率
- 使用率与剩余空间:
col TABLESPACE_NAME for a20select tbs_used_info.tablespace_name, tbs_used_info.alloc_mb, tbs_used_info.used_mb, tbs_used_info.max_mb, tbs_used_info.free_of_max_mb, tbs_used_info.used_of_max || '%' used_of_max_pct from ( select a.tablespace_name, round(a.bytes_alloc/1024/1024) alloc_mb, round((a.bytes_alloc - nvl(b.bytes_free,0))/1024/1024) used_mb, round((a.bytes_alloc - nvl(b.bytes_free,0))*100/a.maxbytes) used_of_max, round((a.maxbytes - a.bytes_alloc + nvl(b.bytes_free,0))/1048576) free_of_max_mb, round(a.maxbytes/1048576) max_mb from (select f.tablespace_name, sum(f.bytes) bytes_alloc, sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes from dba_data_files f group by f.tablespace_name) a, (select f.tablespace_name, sum(f.bytes) bytes_free from dba_free_space f group by f.tablespace_name) b where a.tablespace_name = b.tablespace_name(+) ) tbs_used_info order by tbs_used_info.used_of_max desc;
- 使用率与剩余空间:
- 备份与归档
- RMAN 备份检查:
rman target / list backup;
- RMAN 备份检查:
- 监听与连通
- 监听状态:
lsnrctl status;端口连通:netstat -tlnp | grep 1521
- 监听状态:
三 轻量命令行工具与脚本化采集
- oratop:Oracle 官方轻量工具,适合在终端实时观察 进程、SQL、等待事件、ADG 等,弥补纯 SQL*Plus 实时性的不足。
- 定时巡检脚本:将常用 SQL 保存为 monitor.sql,使用
sqlplus -s静默执行并接入日志或告警系统;例如每 5 分钟采集一次:*/5 * * * * sqlplus -s username/password@service @/path/monitor.sql > > /var/log/oracle_monitor.log 2> & 1 - 操作系统上下文:配合
top/htop、iostat -xz 1、vmstat 1 5、sar -n DEV 1 5、nmon观察主机资源,有助于判断瓶颈是在数据库还是 OS/I/O。
四 企业级与开源平台集成
- Zabbix(ODBC):在 Zabbix Server/Proxy 安装 Oracle Instant Client(Basic/SQL*Plus/ODBC),解决依赖(如 libaio、libnsl),配置 ODBC DSN,导入开箱即用的 Oracle 模板后即可采集数据库、表空间、ASM 等指标;用
sqlplus验证连通性后由 Zabbix 定时抓取并告警。 - Prometheus + oracle_exporter:部署 oracle_exporter 暴露指标,Prometheus 拉取并存储,Grafana 做可视化与阈值告警;适合云原生与容器化环境,可与主机与日志系统统一观测。
五 关键告警阈值与巡检清单
- 表空间使用率:> 80% 预警、> 90% 严重(扩容/清理回收站/调整自动扩展)。
- 会话数:接近 PROCESSES/SESSIONS 上限(排查异常连接/应用泄漏)。
- 长时间运行 SQL:超过阈值(如 600s)触发终止或优化。
- 等待事件:db file sequential/scattered read、log file sync 持续偏高(定位 I/O 或提交瓶颈)。
- 备份:最近一次 RMAN 备份失败或 归档断档(立即核查通道/磁盘/保留策略)。
- 监听器:1521 端口不可达或异常(影响业务连接)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos sqlplus性能监控工具推荐
本文地址: https://pptw.com/jishu/782706.html
