Oracle Far Sync 详解
Oracle Far Sync 详解
适用版本:Oracle Database 12c+ / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Far Sync 是零数据丢失远程归档方案[1]:
详细见:Oracle Data Guard 架构详解、Oracle 保护模式详解。
2. 场景
2.1 传统问题
- 长距离 SYNC:延迟高
- 性能下降
- 零丢失难
2.2 Far Sync
- 近距离 Far Sync
- SYNC 接收
- ASYNC 转发远端
- 零丢失 + 性能
3. 架构
3.1 组件
- 主库(Primary)
- Far Sync 实例(近距离)
- 远端备库(Standby)
3.2 数据流
主库 --SYNC--> Far Sync --ASYNC--> 远端备库
3.3 零丢失
- Far Sync 接收 = 数据安全
- 即使主库丢失
- Far Sync 有 Redo
4. 部署
4.1 Far Sync 实例
- 轻量实例
- 仅控制文件 + Redo
- 无数据文件
4.2 创建
-- Far Sync 实例
CREATE CONTROLFILE AS STANDBY ...
-- 配置 Redo 传输
4.3 主库配置
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,farsync,stby)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='service=farsync SYNC affirM ...';
4.4 Far Sync 配置
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,farsync,stby)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='service=stby ASYNC ...';
5. Broker
5.1 添加
DGMGRL> ADD FAR_SYNC farsync AS CONNECT IDENTIFIER IS farsync;
DGMGRL> ENABLE FAR_SYNC farsync;
5.2 配置
DGMGRL> EDIT FAR_SYNC farsync SET PROPERTY LogXptMode='ASYNC';
DGMGRL> EDIT DATABASE prod SET PROPERTY LogXptMode='SYNC';
6. 保护模式
6.1 最大可用
- 主->Far Sync SYNC
- Far Sync->Stby ASYNC
- RPO=0(正常)
6.2 最大保护
- 强制 SYNC
- 主库停(Far Sync 不可用)
- RPO=0
7. 优势
7.1 零丢失
- Far Sync 近距离
- SYNC 接收
- 确认
7.2 性能
- 远端 ASYNC
- 无长距离延迟
- 性能
7.3 灵活
- 多远端
- 一个 Far Sync
- 分发
8. 应用场景
8.1 长距离容灾
- 跨城市
- 跨国家
- 零丢失
8.2 多备库
- Far Sync 分发
- 多远端
- 一致
8.3 关键业务
- 金融
- 零丢失
- MAA Platinum
9. 监控
9.1 状态
SELECT * FROM v$archive_dest WHERE dest_id=2;
SELECT * FROM v$dataguard_stats;
9.2 延迟
SELECT max(delay_mins) FROM v$archive_dest;
9.3 Broker
DGMGRL> SHOW FAR_SYNC farsync;
10. 高可用
10.1 Far Sync 冗余
- 多个 Far Sync
- 冗余
- 切换
10.2 切换
- Far Sync 故障
- 自动切换备用 Far Sync
- 不中断
11. 常见问题
11.1 延迟
- 网络
- 优化
- 监控
11.2 Far Sync 故障
- 冗余
- 切换
- 修复
11.3 配置
- 参数
- 检查
- Broker
12. 最佳实践
- 近距离部署:Far Sync
- SYNC:主->Far Sync
- ASYNC:Far Sync->远端
- 冗余:多 Far Sync
- 监控:延迟
- Broker:管理
- 网络:冗余
- 测试:零丢失
- 文档:架构
- 演练:故障
13. 参考资料
[1] Oracle Data Guard 19c, “Far Sync” https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/