Linux 上 Oracle 的监控与维护实操指南
一 监控体系与工具
- 数据库层监控
- 使用 Oracle Enterprise Manager(OEM) 做集中监控、告警与性能诊断;结合 AWR/ASH 做历史与实时性能分析。
- 使用 oratop 观察会话、SQL、等待事件与 ADG 状态,适合命令行快速排障。
- 使用 Prometheus + oracle_exporter + Grafana 搭建时序监控与可视化,oracle_exporter 通过查询 Oracle 暴露指标供 Prometheus 抓取。
- 操作系统层监控
- 资源类:top/htop、vmstat、iostat、sar、dstat、nmon 覆盖 CPU、内存、I/O、网络。
- 连接与端口:netstat -tlnp | grep <端口> 或 ss -lntp | grep <端口> 检查监听端口连通性。
- 日志与告警
- 数据库告警日志 alert_SID.log 记录启停、参数变更、日志切换、错误(如 ORA-)等关键信息,需纳入日常巡检与告警。
二 日常巡检清单
- 主机与资源
- 检查系统版本与内核、资源使用:cat /etc/system-release、top、free -m、df -Th、lsblk。
- 关注 CPU 负载、内存与 Swap、磁盘使用率 的异常波动。
- Oracle 实例与监听
- 后台进程:ps -ef | grep “ora_” | grep -v grep,关注 ora_pmon、ora_smon、ora_dbw0、ora_lgwr、ora_ckpt、ora_reco 等是否正常。
- 实例状态:SQL> select instance_name,status,version,database_status from v$instance; 期望 STATUS=OPEN、DATABASE_STATUS=ACTIVE。
- 归档与打开模式:SQL> select name,log_mode,open_mode from v$database; 生产建议 ARCHIVELOG、READ WRITE。
- 监听状态:lsnrctl status,确认监听端口与服务映射正常。
- 日志与空间
- 告警日志:tail -n 200 alert_SID.log | egrep -i “ORA-|err|fail”;告警日志路径可通过 show parameter background_dump_dest 获取。
- 表空间使用:定期检查 dba_data_files、dba_free_space,关注使用率与最大连续空闲块,预防 tablespace full。
- 数据文件与重做日志:v$datafile、v$logfile 状态应为 ONLINE/ACTIVE,无损坏与缺失。
三 备份恢复与自动化
- RMAN 备份策略
- 全备+归档日志:示例(在 sqlplus / as sysdba 中执行)
- RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT;
- RMAN> BACKUP CURRENT CONTROLFILE;
- 定期做 恢复验证(如还原到时间点/SCN 的演练),确保备份可用。
- 自动化与调度
- 将备份与巡检脚本化,使用 cron 定时执行,例如每天 01:00 备份:
- 0 1 * * * /opt/scripts/backup_rman.sh >> /var/log/rman_backup.log 2>&1
- 结合 Zabbix/Prometheus 配置阈值告警(如表空间 > 80%、备份失败、会话数异常、I/O 延迟升高)。
四 性能与健康检查
- 性能观测
- 实时等待与 SQL:V$SESSION、V$SESSION_WAIT、V$SQL 定位 Top SQL 与等待事件(如 db file sequential read、log file sync)。
- 历史分析:AWR/ASH 报告识别负载特征与瓶颈(CPU、I/O、锁、绑定变量缺失等)。
- 空间与对象
- 表空间碎片与扩展:对字典管理表空间可用空闲块分布评估是否需 coalesce 或 增加数据文件;监控对象增长趋势,提前扩容或归档历史数据。
- 系统资源
- 结合 iostat -xz 1、vmstat 1、nmon 判断 I/O 瓶颈、内存压力与 CPU 饱和,必要时调整 SGA/PGA、I/O 调度策略或 SQL 执行计划。
五 安全与变更管理
- 账号与权限
- 执行 最小权限 原则,定期审计 DBA/高权限 账户与角色变更;对敏感操作启用 审计。
- 补丁与版本
- 定期执行 opatch lspatches 查看补丁状态,规划 季度/关键安全补丁 升级窗口,先在测试环境验证。
- 系统与内核参数
- 复核 /etc/sysctl.conf、/etc/security/limits.conf 等关键参数与资源限制,确保与 Oracle 推荐值一致;变更留痕并回滚预案完备。