一、使用Oracle自带工具监控配置状态
Oracle提供了多组内置工具,可直接监控数据库配置及性能状态,无需额外安装软件:
@ORACLE_HOME/rdbms/admin/awrreport.sql;查看ASH报告的SQL命令:SELECT * FROM v$active_session_history;。SELECT * FROM v$sql WHERE elapsed_time > 1000000;SELECT event, wait_class, count(*) AS wait_count FROM v$session_event GROUP BY event, wait_class;SELECT a.session_id, a.oracle_username, a.os_user_name, b.object_name, b.object_type FROM v$locked_object a, dba_objects b WHERE a.object_id = b.object_id;。lsnrctl status:查看监听器是否运行及监听的端口、服务名;lsnrctl start:启动监听器(若未运行)。可通过Shell脚本定期执行lsnrctl status,并将结果写入日志或发送告警(如邮件),确保监听器持续可用。二、利用操作系统工具监控底层状态
操作系统层面的监控可辅助判断Oracle数据库的运行环境是否正常:
ps -ef | grep ora_(ora_前缀的进程为Oracle核心进程,如ora_pmon(进程监控)、ora_dbw0(数据库写入))。netstat -tlnp | grep <Oracle监听端口>(默认端口为1521)。iostat -xz 1 1(每1秒采样1次,显示扩展I/O统计信息)。三、采用第三方监控工具实现自动化
第三方工具可实现集中化监控、告警及可视化,适合大规模环境:
zabbix_agentd.conf(启用自定义参数);zabbix_oracle.conf),定义监控项(如oracle.active用于检查实例存活);SELECT ANY DICTIONARY等权限);oracle_status.sh检查实例状态、oracle_checktablespace.sh检查表空间使用率);check_oracle)监控Oracle的性能指标(如连接数、SQL执行时间、锁等待),支持阈值告警(邮件、短信)。需安装Nagios Core及Oracle插件,配置命令示例:check_oracle -H <主机IP> -u <用户名> -p <密码> -S <SID> -m connections(检查连接数)。oracledb_exporter(Oracle官方提供的Exporter)暴露Oracle的监控指标(如oracle_up表示实例存活、oracle_tablespace_usage表示表空间使用率),Prometheus定期抓取指标,Grafana导入模板(如Oracle Dashboard)实现可视化。适用于云环境或需要自定义监控的场景。四、Oracle Enterprise Manager(OEM)综合管理
OEM是Oracle官方提供的全面管理平台,支持集中监控Oracle数据库、集群及主机的性能、配置及健康状态。主要功能: