核心工具:通过Linux系统命令与Oracle动态性能视图(V$视图)结合,实现基础监控。
top/htop
:实时查看系统整体性能(CPU、内存占用),定位消耗资源的进程(如Oracle后台进程ora_pmon
、ora_smon
);vmstat
:报告虚拟内存统计(内存、交换分区、I/O、CPU),通过r
(运行队列进程数)、b
(阻塞进程数)、wa
(I/O等待占比)判断系统负载;iostat
:监控磁盘I/O性能(吞吐量、延迟、利用率),重点关注%util
(磁盘利用率,>70%需警惕);df -h
:查看磁盘空间使用情况,避免数据文件/归档日志占满导致数据库异常;lsnrctl status
:检查Oracle监听器状态(监听端口、服务注册情况),确保客户端能正常连接。v$instance
:查看数据库实例状态(STATUS
列,OPEN
表示正常运行);v$session
:监控当前会话(STATUS
列,ACTIVE
表示活跃会话),识别长时间空闲或阻塞的会话;v$sql
:分析SQL执行情况(ELAPSED_TIME
列,筛选执行时间超过阈值的慢SQL);v$process
:查看Oracle后台进程状态(如ora_dbw0
数据库写入进程是否正常)。核心工具:Oracle针对数据库性能与管理设计的专用工具,提供深度分析能力。
@?/rdbms/admin/awrrpt.sql
生成AWR报告(对比两个时间点的性能差异),通过SELECT * FROM v$active_session_history;
查看ASH实时数据,快速定位性能瓶颈(如CPU、I/O、锁等待)。SELECT status FROM v$instance;
;SELECT tablespace_name, SUM(bytes)/1024/1024 AS used_mb, SUM(maxbytes)/1024/1024 AS max_mb, (SUM(bytes)/SUM(maxbytes))*100 AS used_pct FROM dba_data_files GROUP BY tablespace_name;
;SELECT s.sid, s.serial#, s.username, o.object_name, l.type FROM v$session s, dba_objects o, v$lock l WHERE s.object_id = o.object_id AND s.lockwait = l.kaddr;
。核心工具:集成化的监控平台,支持Oracle数据库与Linux系统的统一监控,提供告警、趋势分析等功能。
emctl status dbconsole
命令查看OEM进程状态,访问https://主机名:端口/em
登录。oracle-monitor
模板、Nagios的check_oracle
插件)监控Oracle指标(实例状态、表空间使用率、SQL执行时间)。支持分布式监控、自动发现、告警推送(邮件、短信)。oracledb_exporter
采集Oracle性能指标(如oracle_tablespaces_usage
、oracle_sql_exec_time
),结合Grafana可视化展示趋势,支持告警规则配置(如oracle_tablespaces_usage > 80
触发告警)。作用:通过脚本定期执行监控任务,实现自动化预警与报告生成。
monitor_tablespace.sh
):#!/bin/bash export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin sqlplus -S "/as sysdba" << EOF SET SERVEROUTPUT ON DECLARE v_used_pct NUMBER; BEGIN FOR t IN (SELECT tablespace_name, (SUM(bytes)/SUM(maxbytes))*100 AS used_pct FROM dba_data_files GROUP BY tablespace_name) LOOP IF t.used_pct > 80 THEN DBMS_OUTPUT.PUT_LINE('警告:表空间 ' || t.tablespace_name || ' 使用率超过80%,当前使用率:' || ROUND(t.used_pct, 2) || '%'); END IF; END LOOP; END; / EOF
赋予执行权限(chmod +x monitor_tablespace.sh
),通过cron
定时运行(如每天上午10点执行),将结果发送到管理员邮箱。top
、df
、vmstat
命令,输出CPU、内存、磁盘使用情况到日志文件,便于后续分析趋势。核心文件:Oracle生成的日志文件包含数据库运行状态与错误信息,是排查问题的关键依据。
$ORACLE_BASE/diag/rdbms/实例名/trace/alert_实例名.log
,记录数据库启动/关闭、错误(如ORA-)、备份恢复、表空间扩展等信息。定期审查该日志可提前发现潜在问题(如磁盘空间不足、归档失败)。$ORACLE_HOME/network/log/listener.log
,记录客户端连接请求、监听器状态变化,用于排查连接问题(如无法连接到数据库)。