Oracle Kamus DataGuard 实战笔记

Oracle Kamus DataGuard 实战笔记

来源:张乐奕 (Kamus) / dbform.com 适用版本:Oracle Database 9i+ 文档版本:v1.0 / 2026-07-22


1. 关于 Kamus

张乐奕(Kamus),Oracle ACE Director,ACOUG 创始人[1]。

  • 博客:dbform.com
  • 擅长 Data Guard、RAC、升级
  • 实战经验丰富

2. Data Guard 实战要点

2.1 Kamus 强调

- 灾备不是摆设
- 必须演练
- 监控同步
- 定期切换

2.2 架构

- 主库 + 备库
- 物理/逻辑
- Active Data Guard
- Far Sync

详细见:Oracle Data Guard 架构详解


3. 部署要点

3.1 主库准备

ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ARCHIVELOG;
-- Standby Redo Log
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 
  ('/u01/redo/s04.log') SIZE 50M;

3.2 参数

ALTER SYSTEM SET log_archive_config='dg_config=(prod,stby)';
ALTER SYSTEM SET log_archive_dest_2='service=stby async valid_for=(online_logfiles,primary_role) db_unique_name=stby';
ALTER SYSTEM SET fal_server='stby';
ALTER SYSTEM SET standby_file_management='AUTO';

3.3 Kamus 经验

- Standby Redo 必备
- Broker 简化
- 监控延迟

4. Broker 使用

4.1 Kamus 推荐

- 必用 Broker
- 简化配置
- 一键切换

4.2 命令

dgmgrl sys/xxx@prod
DGMGRL> CREATE CONFIGURATION dg_cfg AS
  PRIMARY DATABASE IS prod CONNECT IDENTIFIER IS prod;
DGMGRL> ADD DATABASE stby AS
  CONNECT IDENTIFIER IS stby MAINTAINED AS PHYSICAL;
DGMGRL> ENABLE CONFIGURATION;
DGMGRL> SHOW CONFIGURATION;

4.3 优势

- 简化
- 自动
- 监控

详细见:Oracle Data Guard Broker 详解


5. Switchover

5.1 Kamus 流程

DGMGRL> SHOW CONFIGURATION;
DGMGRL> SWITCHOVER TO stby;
DGMGRL> SHOW CONFIGURATION;

5.2 验证

- 主备角色
- 应用连接
- 数据

5.3 Kamus 强调

- 定期演练
- 验证流程
- 文档化

详细见:Oracle Switchover 详解


6. Failover

6.1 紧急

DGMGRL> FAILOVER TO stby;

6.2 Kamus 警告

- 紧急使用
- 评估数据丢失
- Reinstate 旧主

6.3 Reinstate

DGMGRL> REINSTATE DATABASE prod;

详细见:Oracle Failover 详解


7. Active Data Guard

7.1 启用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN READ ONLY;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

7.2 Kamus 应用

- 只读报表
- 读写分离
- 性能优化

7.3 验证

SELECT open_mode FROM v$database;
-- READ ONLY WITH APPLY

详细见:Oracle Active Data Guard 详解


8. 监控

8.1 延迟

SELECT * FROM v$dataguard_stats;

8.2 进程

SELECT process, status, sequence# FROM v$managed_standby;

8.3 GAP

SELECT * FROM v$archive_gap;

8.4 Kamus 强调

- 实时监控
- 告警
- 演练

详细见:Oracle Data Guard 监控详解


9. 保护模式

9.1 选择

- 最大性能:普通
- 最大可用:关键
- 最大保护:极关键

9.2 配置

DGMGRL> EDIT DATABASE prod SET PROPERTY LogXptMode='SYNC';
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

9.3 Kamus 建议

- 评估业务
- RPO/RTO
- 平衡

详细见:Oracle 保护模式详解


10. Far Sync

10.1 架构

- 近距离 Far Sync:SYNC
- 远端备库:ASYNC
- 零丢失

10.2 Kamus 应用

- 跨地域
- 零丢失
- 高可用

详细见:Oracle Far Sync 详解


11. 快照备库

11.1 启用

DGMGRL> CONVERT DATABASE stby TO SNAPSHOT STANDBY;

11.2 Kamus 应用

- 测试
- 报表
- 临时

11.3 还原

DGMGRL> CONVERT DATABASE stby TO PHYSICAL STANDBY;

详细见:Oracle Snapshot Standby 详解


12. 滚动升级

12.1 Kamus 流程

1. 升级备库
2. Switchover
3. 升级原主
4. Switchover 回

12.2 优势

- 零停机
- 风险低
- 验证

详细见:Oracle Data Guard 滚动升级详解


13. 常见问题

13.1 GAP

- FAL
- 手动修复
- 监控

13.2 密码不一致

- ORA-16191
- 复制密码文件
- 同步

13.3 延迟

- 网络
- 性能
- 优化

详细见:Oracle Data Guard 故障诊断详解


14. Kamus 经验

14.1 演练

- 季度 Switchover
- 半年 Failover
- 年度完整

14.2 监控

- 实时延迟
- 告警
- 响应

14.3 文档

- 架构
- 流程
- 故障

15. 最佳实践

  1. Broker:必用
  2. Standby Redo:必备
  3. Active:只读
  4. 保护模式:评估
  5. 监控:延迟
  6. 演练:定期
  7. GAP:修复
  8. 密码:一致
  9. 网络:冗余
  10. 文档:完整

16. 参考资料

[1] Kamus, “DataGuard 实战”, http://www.dbform.com [2] Oracle Data Guard 19c