1. Oracle自带工具(AWR/ASH、SQL*Plus、OSWatcher)
- AWR (Automatic Workload Repository) & ASH (Active Session History):Oracle数据库内置的性能分析工具,AWR定期收集数据库性能数据(如SQL执行时间、缓冲区命中率),生成HTML报告(通过
@ORACLE_HOME/rdbms/admin/awrreport.sql执行);ASH则实时捕获活跃会话信息(如等待事件、SQL执行状态),通过SELECT * FROM v$active_session_history查询。两者结合可快速定位性能瓶颈(如高负载SQL、资源争用)。
- SQL*Plus:Oracle命令行工具,通过自定义SQL查询监控具体性能指标,例如查找执行时间超过1秒的SQL(
SELECT * FROM v$sql WHERE elapsed_time > 1000000)、分析等待事件分布(SELECT event, wait_class, COUNT(*) FROM v$session_event GROUP BY event, wait_class)、检查锁定情况(SELECT a.session_id, a.oracle_username, b.object_name FROM v$locked_object a JOIN dba_objects b ON a.object_id = b.object_id)。适合DBA快速排查特定问题。
- OSWatcher:Oracle官方免费工具,用于监控Oracle服务器的操作系统性能(CPU、内存、磁盘I/O、网络),收集的数据符合Oracle支持标准,便于分析“数据库外”的性能问题(如磁盘IO瓶颈导致SQL变慢)。安装简单,通过命令行收集数据并生成归档文件。
2. 第三方开源工具(Prometheus + oracledb_exporter、Zabbix + Orabbix)
- Prometheus + oracledb_exporter:适用于云原生环境的监控组合。oracledb_exporter是Oracle数据库的Prometheus exporter,通过JDBC连接数据库,暴露Oracle指标(如会话数、锁等待数、SQL执行时间、表空间使用率);Prometheus定时拉取这些指标,Grafana通过导入Oracle仪表盘(ID:3333)实现可视化。支持自定义采集间隔(如
--collector.interval=30s),适合需要灵活扩展的企业。
- Zabbix + Orabbix:Zabbix是企业级开源监控平台,Orabbix是其Oracle监控插件。通过JDBC连接Oracle,监控表空间使用率(如触发器设置为>90%告警)、闪回区使用率(
SELECT SUM(PERCENT_SPACE_USED) FROM V$RECOVERY_AREA_USAGE)、SQL性能(如慢SQL数量)。支持自动发现Oracle实例、关联主机与触发器,适合已有Zabbix环境的用户。
3. 商业工具(Oracle Enterprise Manager、Foglight for Oracle)
- Oracle Enterprise Manager (OEM):Oracle官方全生命周期管理工具,提供集中式监控界面,覆盖Oracle数据库、集群、中间件等。支持实时性能监控(如会话状态、SQL执行计划)、历史数据分析(AWR/ASH集成)、自动化运维(如补丁管理、备份恢复)。适合大型企业需要统一管理的场景。
- Foglight for Oracle:Quest Software推出的商业监控工具,提供全局视图(跨平台监控多个Oracle实例)、智能诊断(自适应基准、性能趋势预测)、详细报告(容量规划、合规性报告)。内置“性能根因分析”功能,帮助快速定位复杂性能问题(如应用层与数据库层的交互瓶颈),适合对监控深度和易用性要求高的企业。