4. 环境搭建与工具准备:实验环境拓扑、操作系统与数据库版本、监控工具配置

在进行备份恢复变更窗口的性能调优之前,必须搭建一个可复现、可观测的实验环境。本章将详细说明实验环境的物理/逻辑拓扑、选用的操作系统与数据库版本,以及核心监控工具(Prometheus/Grafana 与 AWR)的部署与配置要点。

4.1 实验环境拓扑

实验环境采用三节点架构,模拟典型的生产库、备份服务器与监控中心。所有节点位于同一千兆交换网络内,确保网络延迟对备份恢复的影响可被量化分析。

拓扑设计原则: 分离计算、存储与监控负载,避免资源争抢对测试结果产生干扰。
实验环境拓扑结构 数据库主节点 Oracle 19c RAC CPU: 8核 / 内存: 32GB 备份服务器 RMAN / NFS 存储 CPU: 4核 / 内存: 16GB 监控中心 Prometheus + Grafana AWR 远程收集 共享存储池(NFS / ASM) 数据文件 + 归档日志 + 备份集 千兆交换网络(1 Gbps) 说明:所有节点时间同步(NTP),数据库主节点与备份服务器之间通过专用 VLAN 隔离管理流量

4.2 操作系统与数据库版本

版本选择遵循“接近真实生产、兼顾实验可重复性”的原则。具体版本信息如下表所示:

组件 版本 关键配置 用途说明
操作系统 Red Hat Enterprise Linux 8.6 内核 4.18.0-372 稳定、兼容 Oracle 19c 与 Prometheus 生态
数据库 Oracle Database 19c (19.16) PDB 模式 + 归档日志开启 支持 RMAN 增量备份、AWR 自动负载库
备份工具 RMAN 19c + OSB (可选) 通道数 4、备份片大小 2GB 模拟全量/增量备份与恢复场景
文件系统 XFS (本地) + NFSv4 (共享) 挂载选项 rw,noatime,hard,intr 备份集存储与归档日志传输
版本选择提示: Oracle 19c 是当前长期支持版本(LTS),其 AWR 报告在 19.10 之后增加了对备份 I/O 的细粒度等待事件统计,非常适合本课程的调优分析。

4.3 监控工具配置

监控体系分为两个层面:系统资源层(CPU、内存、磁盘 I/O、网络)使用 Prometheus + Grafana 实时采集与可视化;数据库内部层(等待事件、SQL 级 I/O、备份会话)使用 Oracle AWR 与 v$ 视图进行深度分析。

4.3.1 Prometheus + Grafana 部署

Prometheus 负责从各节点拉取指标,Grafana 提供仪表盘展示。部署步骤简述如下:

  1. 安装 Prometheus Server(监控中心节点):
    # 下载并解压
    wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
    tar -xzf prometheus-2.45.0.linux-amd64.tar.gz -C /opt/
    # 配置 prometheus.yml,添加 node_exporter 与 oracle_exporter 目标
    scrape_configs:
      - job_name: 'node'
        static_configs:
          - targets: ['192.168.1.10:9100', '192.168.1.20:9100', '192.168.1.30:9100']
      - job_name: 'oracle'
        static_configs:
          - targets: ['192.168.1.10:9161']
  2. 部署 node_exporter(所有节点):
    wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
    tar -xzf node_exporter-1.6.0.linux-amd64.tar.gz
    ./node_exporter --web.listen-address=:9100 &
  3. 部署 oracle_exporter(数据库节点):
    # 使用 iancoleman/oracle_exporter 或 Prometheus-Oracle-Exporter
    ./oracle_exporter --connection="user/pass@//localhost:1521/ORCL" --port=9161 &
  4. 配置 Grafana 数据源与仪表盘:
    • 添加 Prometheus 数据源(URL: http://192.168.1.30:9090)
    • 导入 Node Exporter Full 仪表盘(ID: 1860)
    • 自定义备份 I/O 面板:监控 node_disk_io_time_seconds_total 与 oracle_session_wait_class
监控数据流架构 数据库主节点 node_exporter:9100 oracle_exporter:9161 备份服务器 node_exporter:9100 Prometheus 拉取间隔: 15s 存储: 本地 TSDB Grafana 仪表盘: 备份 I/O 告警: 延迟 > 阈值 说明:AWR 报告通过 Oracle 内部调度(每小时快照)独立采集,不经过 Prometheus 管道

4.3.2 AWR 配置与关键视图

AWR(Automatic Workload Repository)是 Oracle 内置的性能诊断工具。在备份恢复调优中,重点关注以下 AWR 报告项:

AWR 报告章节 关键指标 与备份恢复的关联
等待事件(Top 5 Timed Events) log file switch, control file sequential read, backup: sbtwrite 识别备份期间的 I/O 瓶颈与日志竞争
系统统计(System Statistics) physical read/write total IO requests, redo size 量化备份产生的 I/O 负载与重做量
SQL 统计(SQL ordered by Elapsed Time) RMAN 内部 SQL(如 BACKUP, COPY 命令) 定位低效的备份 SQL 或并行度不足
I/O 统计(I/O Stats by Function) Backup, Archival, Datafile Read/Write 区分备份 I/O 与业务 I/O 的资源消耗
配置注意: 确保 AWR 快照间隔与备份窗口对齐。建议在备份开始前手动创建一次快照,备份结束后立即再创建一次,以便精确捕获备份期间的性能数据。
-- 手动创建 AWR 快照(备份前后各执行一次)
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

-- 生成 AWR 报告(指定开始与结束快照 ID)
@?/rdbms/admin/awrrpt.sql
-- 选择格式:html,输入快照 ID 范围

4.4 工具配置清单速查

以下清单用于快速验证环境是否就绪:

  • 网络连通性: 所有节点之间 ping 延迟 < 1ms,telnet 端口可达(9100, 9161, 9090, 3000)
  • 时间同步: timedatectl status 显示 NTP 同步,各节点时间偏差 < 100ms
  • Prometheus 目标状态: 访问 http://<prometheus>:9090/targets,所有 exporter 状态为 UP
  • Grafana 数据源: 测试通过,无超时或认证错误
  • AWR 快照: SELECT * FROM dba_hist_snapshot ORDER BY snap_id DESC; 返回最近 24 小时内的快照记录
实战建议: 在正式进行备份恢复测试前,先运行一次 10 分钟的空载监控,确认 Grafana 仪表盘能正常显示基线数据。这能帮助你在后续调优中快速区分“环境噪声”与“真实性能变化”。