Oracle 零数据丢失详解

Oracle 零数据丢失详解

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


1. 概述

零数据丢失(Zero Data Loss)保证 RPO=0[1]:

详细见:Oracle 保护模式详解Oracle Far Sync 详解


2. RPO=0 含义

2.1 RPO

- Recovery Point Objective
- 数据丢失容忍
- 0:无丢失

2.2 保证

- 每次 COMMIT
- 备库确认
- 不丢失

2.3 应用

- 金融
- 关键业务
- 监管

3. 技术方案

3.1 最大可用模式

- SYNC 传输
- AFFIRM 确认
- 备库故障降级

3.2 最大保护模式

- SYNC 传输
- 强制
- 备库故障主库停

3.3 Far Sync

- 近距离 SYNC
- 远端 ASYNC
- 零丢失 + 性能

详细见:Oracle Far Sync 详解


4. 最大可用模式

4.1 配置

ALTER SYSTEM SET log_archive_dest_2=
  'service=stby SYNC AFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=stby';
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;

4.2 行为

- 正常:零丢失
- 备库故障:降级异步
- 恢复:自动升级

4.3 优势

- 可用性
- 零丢失(正常)
- 平衡

5. 最大保护模式

5.1 配置

ALTER SYSTEM SET log_archive_dest_2=
  'service=stby SYNC AFFIRM valid_for=(online_logfiles,primary_role) db_unique_name=stby';
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;

5.2 行为

- 强制 SYNC
- 备库不可用:主库停
- 绝对零丢失

5.3 风险

- 主库停
- 可用性低
- 评估

6. Far Sync 方案

6.1 架构

主库 --SYNC--> Far Sync --ASYNC--> 远端备库

6.2 优势

- 近距离 SYNC(低延迟)
- 远端 ASYNC(无延迟影响)
- 零丢失 + 远距离

6.3 配置

-- 主库
ALTER SYSTEM SET log_archive_dest_2='service=farsync SYNC AFFIRM ...';
-- Far Sync
ALTER SYSTEM SET log_archive_dest_2='service=stby ASYNC ...';

7. Standby Redo Log

7.1 必备

- SYNC 模式必备
- 实时接收
- 性能

7.2 配置

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 
  ('/u01/redo/s04.log') SIZE 50M;
-- 比主库多一组

7.3 I/O

- 高速磁盘
- 独立
- 监控

8. 网络要求

8.1 延迟

- < 2ms(同城)
- 低延迟
- 关键

8.2 带宽

- 足够
- 冗余
- 监控

8.3 冗余

- 双链路
- 路由冗余
- 高可用

9. 验证

9.1 模式

SELECT protection_mode, protection_level FROM v$database;
-- MAXIMUM AVAILABILITY / MAXIMUM PROTECTION

9.2 传输

SELECT dest_id, status, type, affirM FROM v$archive_dest WHERE dest_id=2;

9.3 延迟

SELECT name, value FROM v$dataguard_stats 
WHERE name IN ('transport lag', 'apply lag');

10. 测试

10.1 COMMIT 验证

- 主库 COMMIT
- 立即查询备库
- 数据一致

10.2 故障模拟

- 主库强制停
- 备库数据
- 验证零丢失

10.3 切换

- Switchover
- 验证
- 零丢失

11. 应用场景

11.1 金融

- 交易
- 账务
- 监管

11.2 关键业务

- 订单
- 支付
- 关键

11.3 合规

- 法规
- 审计
- 合规

12. 限制

12.1 性能

- SYNC 延迟
- 主库影响
- 评估

12.2 距离

- 同城(< 100km)
- 低延迟
- Far Sync

12.3 复杂

- 配置复杂
- 管理
- 评估

13. 常见问题

13.1 主库慢

- SYNC 延迟
- 网络
- 优化

13.2 降级

- 备库故障
- 最大可用降级
- 监控

13.3 主库停

- 最大保护
- 备库不可用
- 立即

14. 最佳实践

  1. 最大可用:推荐
  2. Far Sync:远距离
  3. Standby Redo:必备
  4. 网络:低延迟
  5. 监控:延迟
  6. 测试:零丢失
  7. 演练:故障
  8. 文档:配置
  9. 评估:性能
  10. 合规:验证

15. 参考资料

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