在Ubuntu上监控Oracle性能的方法
在Ubuntu上监控Oracle数据库前,需完成以下基础配置:
sudo apt update
sudo apt install libaio1
wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linux.x64-21.9.0.0.0dbru.zip
unzip instantclient-basiclite-linux.x64-21.9.0.0.0dbru.zip
export LD_LIBRARY_PATH=$PWD/instantclient_21_9 # 设置环境变量
sudo apt install sqlplus安装,用于执行SQL命令监控数据库状态。通过Oracle自带的性能视图和SQL*Plus工具,直接获取数据库性能指标:
SELECT COUNT(*) FROM v$session;
SELECT sql_text FROM v$sql WHERE executions > 1000 ORDER BY executions DESC FETCH FIRST 5 ROWS ONLY;
SELECT event, COUNT(*) FROM v$session_wait GROUP BY event ORDER BY COUNT(*) DESC;
.sql文件(如monitor.sql),通过cron定时执行并将结果输出到日志文件:# 编辑cron任务(每5分钟执行一次)
crontab -e
*/5 * * * * sqlplus -s username/password@service_name @/path/to/monitor.sql >> /var/log/oracle_monitor.log 2>&1
其中username/password@service_name替换为实际的Oracle账号、密码和服务名。oracledb_exporter(Oracle Exporter)采集Oracle性能指标,Prometheus拉取指标数据,Grafana展示可视化面板。oracledb_exporter源码并编译:git clone https://github.com/iamseth/oracledb_exporter.git
cd oracledb_exporter
go build
(3)配置config.yml(添加Oracle账号、密码、服务名);./oracledb_exporter -config.config.yml;9161);Oracle Database Monitoring模板)。.tnsnames.ora文件(确保能连接Oracle);Zabbix Oracle Template);Oracle提供了丰富的性能视图(如v$sysstat、v$sqlarea、v$session)和数据字典(如dba_tablespace_usage_metrics),用于查询系统级、会话级、表空间级性能指标。例如:
-- 查看SGA命中率
SELECT (1 - ROUND(p.physical_reads / NULLIF(p.db_block_gets + p.consistent_gets, 0), 4)) * 100 AS sga_hit_ratio
FROM v$pgastat p
WHERE p.name = 'total bytes requested';
SELECT output FROM TABLE(dbms_workload_repository.awr_report_html(
l_dbid => (SELECT dbid FROM v$database),
l_inst_num => (SELECT instance_number FROM v$instance),
l_bid => (SELECT min(snap_id) FROM dba_hist_snapshot WHERE begin_interval_time > SYSDATE - 1),
l_eid => (SELECT max(snap_id) FROM dba_hist_snapshot WHERE begin_interval_time > SYSDATE - 1)
));
v$active_session_history视图查询。通过Ubuntu系统工具监控Oracle进程占用的系统资源,辅助定位性能问题:
Shift+P按CPU排序,Shift+M按内存排序);vmstat 1 5每1秒采样1次,共5次);iostat -x 1查看磁盘读写延迟);sar -u 1 5查看CPU利用率历史)。Oracle官方提供的全面监控工具,支持实时性能图表、告警通知、AWR/ASH报告分析、容量规划等功能。适用于需要集中管理多个Oracle数据库的企业环境。
免费图形化管理工具,支持Oracle数据库监控(如SQL Console、Performance Monitor)、开发(如SQL编辑器、PL/SQL调试)。适用于中小型企业或开发人员。
免费开源工具,提供Oracle数据库实时监控(如会话、SQL、表空间)、告警功能(如连接数超阈值),界面简洁易用。