一、核心原理回顾
增量检查点作用:分散 Buffer Cache 脏块刷盘动作,避免集中 I/O 风暴;但频繁刷脏块会加重高 IO 业务负载、拖慢业务响应。
优化原则:不改动检查点算法,通过参数调优降低 DBWR 刷脏块频率、均衡 I/O 压力。
二、高 I/O 压力系统优化方案
- FAST_START_MTTR_TARGET 调优
配置方式:设为 0 或较大数值(如 3000)
效果:延长实例恢复预期时间阈值,降低 DBWR 刷脏块频率,让脏块尽量驻留 Buffer Cache,减少随机 I/O。 - 在线重做日志(Online Redo Log)调优
问题:日志文件过小 → 日志频繁切换 → 触发频繁检查点,加剧 I/O。
配置建议:高日志量业务,单组日志文件设置为 2GB~4GB。
经验标准:控制日志切换间隔维持在 20 分钟左右为最优。 - 调大 Buffer Cache
适用场景:服务器内存资源充足
收益:缓存更多数据块,进一步减少增量检查点触发频次,降低磁盘读写。 - DBWR 进程数 db_writer_processes 调优
观测依据:DBWR 进程 CPU 占用高、持续繁忙
配置方式:增加进程数量
收益:提升脏块刷盘吞吐,加快检查点完成速度,缓解单进程 I/O 瓶颈。
三、低 I/O 压力系统优化方案
FAST_START_MTTR_TARGET:保持默认不配置即可,无需手动设置。
实例恢复特性:异常宕机后,日志扫描与重做应用通常数分钟内完成。
影响恢复速度关键因素:
脏块总量
数据文件数量(文件越多,数据文件头扫描越慢,恢复耗时越长)
四、总结
1、高 IO 库:拉大FAST_START_MTTR_TARGET、扩容在线日志(切换间隔≈20 分钟)、加大缓冲区、DBWR 繁忙则增加写进程。
2、低 IO 库:沿用默认参数,重点关注数据文件数量对宕机恢复速度的影响。