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. 最佳实践
- 专用网络:性能
- ASYNC + NOAFFIRM:高性能
- 巨帧:传输
- 备库并行:应用
- 监控延迟:及时
- GAP 处理:完整性
- Active DG:备库利用
- Far Sync:远距离
- Snapshot:测试
- 定期演练:验证
13. 参考资料
[1] Oracle Data Guard Concepts and Administration 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/