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. 最佳实践

  1. 近距离部署:Far Sync
  2. SYNC:主->Far Sync
  3. ASYNC:Far Sync->远端
  4. 冗余:多 Far Sync
  5. 监控:延迟
  6. Broker:管理
  7. 网络:冗余
  8. 测试:零丢失
  9. 文档:架构
  10. 演练:故障

13. 参考资料

[1] Oracle Data Guard 19c, “Far Sync” https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/