核心工具:通过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,记录客户端连接请求、监听器状态变化,用于排查连接问题(如无法连接到数据库)。