Oracle Data Guard 性能优化

Oracle Data Guard 性能优化

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

Data Guard 性能优化关键[1]:

模式

  • Maximum Protection
  • Maximum Availability
  • Maximum Performance

详细见:Oracle Data Guard 容灾


2. Redo 传输优化

2.1 SYNC vs ASYNC

-- Maximum Performance: ASYNC(默认)
LOG_ARCHIVE_DEST_2 = 'SERVICE=stdby ASYNC VALID_FOR=(...)'

-- Maximum Availability: SYNC
LOG_ARCHIVE_DEST_2 = 'SERVICE=stdby SYNC AFFIRM VALID_FOR=(...)'

2.2 网络优化

-- 1. 专用网络
-- 2. 高带宽
-- 3. 低延迟
-- 4. 巨帧

2.3 LGWR vs ARCH

-- LGWR:实时
-- ARCH:归档传输

3. 应用优化

3.1 实时应用

-- Standby
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE 
  DISCONNECT FROM SESSION USING CURRENT LOGFILE;

3.2 延迟应用

-- 延迟 30 分钟(防误操作)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE 
  DELAY 30;

4. 性能问题

4.1 主库慢

原因

  • SYNC 等待
  • 网络慢

优化

-- 1. ASYNC 模式
-- 2. NOAFFIRM
LOG_ARCHIVE_DEST_2 = 'SERVICE=stdby ASYNC NOAFFIRM ...';

-- 3. 网络优化

4.2 备库落后

-- 1. 查看延迟
SELECT * FROM v$dataguard_stats;

-- 2. 网络优化
-- 3. 备库 I/O
-- 4. 应用并行

4.3 GAP

-- 1. 查看
SELECT * FROM v$archive_gap;

-- 2. 注册
ALTER DATABASE REGISTER LOGFILE '...';

-- 3. FAL_SERVER
LOG_ARCHIVE_DEST_2 = 'SERVICE=stdby ... FAL_SERVER=primary'

5. Active Data Guard

5.1 启用

-- 备库只读 + 应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ALTER DATABASE OPEN READ ONLY;

5.2 优势

  • 备库查询
  • 报表卸载
  • RAC 备库

5.3 性能

  • DML 重放
  • 查询冲突

6. Far Sync

6.1 概述

  • 远距离容灾
  • 低延迟

6.2 配置

Primary → Far Sync (SYNC) → Standby (ASYNC)

7. Snapshot Standby

-- 转换快照备库
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;

-- 测试
-- ...

-- 转回
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

8. 监控

8.1 延迟

SELECT 
  name, 
  value, 
  unit, 
  time_computed
FROM v$dataguard_stats;

8.2 进程

SELECT * FROM v$managed_standby;

8.3 归档

SELECT 
  thread#, 
  sequence#, 
  applied, 
  completion_time
FROM v$archived_log
ORDER BY sequence# DESC;

8.4 配置

SELECT * FROM v$archive_dest;

9. 性能基线

- 主库响应:50ms
- 备库延迟:< 5 秒
- 网络带宽:100Mbps+

10. 优化策略

10.1 网络优化

1. 专用网络
2. 高带宽
3. 低延迟
4. 巨帧(MTU 9000)
5. TCP 优化

10.2 备库优化

-- 1. I/O 优化
-- 2. 内存优化
-- 3. 并行应用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 8;

10.3 主库优化

-- 1. Redo Log 大小
-- 2. Redo 组数
-- 3. LGWR 优化

11. 常见坑与排错

11.1 主库慢

-- 1. SYNC → ASYNC
-- 2. NOAFFIRM
-- 3. 网络

11.2 备库落后

-- 1. 网络
-- 2. 备库 I/O
-- 3. 并行应用
-- 4. GAP 处理

11.3 ORA-12154

-- 1. TNS 配置
-- 2. 监听
-- 3. 服务名

12. 最佳实践

  1. 专用网络:性能
  2. ASYNC + NOAFFIRM:高性能
  3. 巨帧:传输
  4. 备库并行:应用
  5. 监控延迟:及时
  6. GAP 处理:完整性
  7. Active DG:备库利用
  8. Far Sync:远距离
  9. Snapshot:测试
  10. 定期演练:验证

13. 参考资料

[1] Oracle Data Guard Concepts and Administration 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/