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. 最佳实践
- 最大可用:推荐
- Far Sync:远距离
- Standby Redo:必备
- 网络:低延迟
- 监控:延迟
- 测试:零丢失
- 演练:故障
- 文档:配置
- 评估:性能
- 合规:验证
15. 参考资料
[1] Oracle Data Guard 19c, “Zero Data Loss” https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/