1 / 36

Oracle Data Guard 零停机数据库维护

以下内容旨在概述产品的总体发展方向 。 该内容仅供参考,不可纳入任何合同 。 其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据 。 此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定 。 计划将于 2013 年(日历年)发布 Oracle Database 12c。. Oracle Data Guard 零停机数据库维护. Sally Piao 副总裁 数据库和 Exadata 系统测试. 议题. 当前滚动升级简述 客户观点 未来简单的数据库升级 总结. 同步.

quasim
Download Presentation

Oracle Data Guard 零停机数据库维护

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 以下内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。计划将于 2013 年(日历年)发布 Oracle Database 12c。

  2. Oracle Data Guard 零停机数据库维护 Sally Piao 副总裁 数据库和Exadata系统测试

  3. 议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结

  4. 同步 生产数 据库 同步 生产数 据库 切换 生产数 据库 生产数 据库 通过重做数据流升级数据库 A并进行同步 物理备用数据库 同步 数据库滚动升级 My Oracle Support 说明 949322.1 数据库 A 数据库B 在 A 和 B 独立主目录下安装新的 Oracle 版本,在 A 上设置可靠恢复点 (GRP) 物理备用数据库 临时将 B 转换为使用 SQL 应用,升级并同步 逻辑备用数据库 切换,将 A 闪回到 GRP,挂载到新主目录/升级后的主目录 物理备用数据库 版本 n 版本 n+1

  5. 议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结

  6. 需要多少步骤? • 禁用代理配置 • 停止主数据库的代理 • 停止备用数据库的代理 • 配置目标备用数据库上的重做传输参数 • 配置从属备用数据库上的重做传输参数 • 设置 LOG_FILE_NAME_CONVERT 参数以清除日志文件 • 在主数据库上创建可靠恢复点 • 在备用数据库上创建可靠恢复点 • 取消托管恢复 • 在主数据库上执行DBMS_LOGSTDBY.BUILD • 使用KEEP IDENTITY 将备用数据库转换为临时逻辑备用数据库 • 打开临时逻辑备用数据库 • 启动 SQL 应用 • 关闭归档日志自动删除功能 • 同步

  7. 稍等!还有更多步骤! • 停止 SQL 应用 • 创建第 2 个可靠恢复点 • 停止重做传输 • 升级临时逻辑备用数据库 • 启用重做传输 • 重新启动 SQL 应用 • 同步 • 在主数据库上启动切换 • 在备用数据库完成切换 • 打开新主数据库 • 停止重做传输 • 闪回原来的主数据库 • 将原来的主数据库挂载到新主目录 • 将其转换为物理备用数据库 • 关闭 • 挂载新物理备用数据库 • 开始应用重做日志 • 启用重做传输 • 同步 • 在新主数据库上启动切换

  8. 最后 • 在备用数据库上完成切换 • 打开新主数据库 • 将原来的主数据库重启为备用数据库 • 启动托管恢复 • 删除 3 个可靠恢复点 • 启用代理配置

  9. 议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结

  10. DBMS_ROLLING:概念 • 滚动更改可应用到整个 Data Guard 配置上 • 三个阶段(规定 — 编译 — 执行) • 执行分三个阶段:开始、切换、结束 • 两个关键组 • 前导组 • 首先部署变更(切换前) • 有一个主数据库(未来的主数据库) • 后续组 • 最后部署变更(切换后) • 有一个主数据库(原来的主数据库)

  11. DBMS_ROLLING:概念 • 前导组 • 需要在“规定”阶段确定主数据库 (LGM) • LGM 开始时作为物理备用数据库,然后转换为逻辑备用数据库 (START),接着成为主数据库 (SWITCHOVER) • 前导组中的其他数据库都保护 LGM • 出现故障时 LGM 的职责可转移 • 后续组 • 包含原来的主用数据库(后续组主数据库,简称 TGM) • 后续组中的其他数据库保护TGM • 出现故障时 TGM 的职责可转移

  12. Data Guard 简单滚动升级 简单、可靠、可重复的数据库滚动升级 开始 切换 结束

  13. 目标 简单、可靠、可重复 • 早期问题检测 • 专用接口:DBMS_ROLLING PL/SQL 包 • 集中、简化、统一的执行 • 容错 • 配置回滚 • 集中监视:DBA_ROLLING视图

  14. 升级数据库软件 • 从 Oracle Database 12c 的第一个补丁集开始,将可使用 Data Guard 简单滚动升级过程来进行数据库版本升级。 • 要从之前的 Oracle Database 11g 版本升级到 Oracle Database 12c,以及从 Oracle Database 12c 第 1 版升级到第一个补丁集,仍将需要使用典型的临时逻辑备用数据库升级过程。 • 对第 1 版的其他数据库维护任务可以使用此过程

  15. 可进行什么样的更改? • 向未分区的表添加分区 • 将 Basicfile LOB 更改为 Securefile LOB • 将 XML-CLOB 更改为二进制 XML • 将表改变为 OLTP 压缩方式 第 1 版示例

  16. 新数据类型支持 消除数据库滚动升级的障碍 • 高级数据类型支持 • XML 或 • 二进制 XML • Securefile 重复消除 • 对象/集合(包括 SDO_GEOMETRY、DICOM) • 新增对 Oracle 提供的特性的支持 • DBFS • AQ • Oracle Text • XDB

  17. 过程 — 规划和设置阶段 • 生成升级计划 • 调用DBMS_ROLLING.INIT_PLAN • 通过特定于配置的指令集生成升级计划,用于指导管理员完成升级过程 • 调用DBMS_ROLLING.SET_PARAMETER • 修改滚动升级的参数 • 准备好对数据库的更改

  18. 过程 — 执行阶段 • 调用DBMS_ROLLING.START_PLAN • 配置参与升级的主数据库和备用数据库 • 对备用数据库进行更改 • 调用DBMS_ROLLING.SWITCHOVER • 将当前主数据库和包含更改的新主数据库的角色进行交换,只有切换时需要停机 • 调用DBMS_ROLLING.FINISH_PLAN • 完成原来主数据库和从属备用数据库的升级,并与新主数据库重新同步

  19. 示例演练 — 规划阶段 当前配置 • 位于 Boston 的主数据库 • 位于 Cambridge 的物理备用数据库(同步) • 第 2 个物理备用数据库位于 Chicago(异步) • 由代理控制 DGMGRL> SHOW CONFIGURATION Configuration – OOW2012 Protection Mode:MaxAvailability Databases: bos - Primary database cam - Physical standby database chi - Physical standby database Fast-Start Failover:DISABLED Configuration Status: SUCCESS DGMGRL>

  20. 示例演练 — 规划阶段 开始规划过程 • 连接主数据库 • 执行 INIT_PLAN 过程 • 设置默认参数 • 每个数据库 2 个默认参数 • 25 个常规参数 SQL> exec dbms_rolling.init_plan(‘cam’); PL/SQL procedure successfully completed. SQL> select name, curval from 2 dba_rolling_parameters where scope is null; NAME CURVAL ------------------------ ------------------------ ACTIVE_SESSIONS_TIMEOUT 3600 ACTIVE_SESSIONS_WAIT 0 BACKUP_CTLFILE rolling_change_backup.f DICTIONARY_LOAD_TIMEOUT 3600 DICTIONARY_LOAD_WAIT 0 EVENT_RECORDS 10000 FAILOVER 0 GRP_PREFIX DBMSRU_ … UPDATED_TGS_WAIT 1 25 rows selected.

  21. 示例演练 — 规划阶段 重新配置重做传输 • 在目标数据库上创建重做传输参数 • 在我们的示例中,是在 CAM 数据库上创建重做传输,指向 BOS 和 CHI • 因为禁用了代理,所以需要在切换后完成此过程。 SQL> alter system set log_archive_dest_5='service="BOS", SYNC reopen=30 db_unique_name="BOS" valid_for=(PRIMARY_ROLE, ONLINE_LOGFILE)'; System altered. SQL> alter system set log_archive_dest_6='service="CHI", ASYNC reopen=30 db_unique_name="CHI" valid_for=(PRIMARY_ROLE, ONLINE_LOGFILE)'; System altered. SQL>

  22. 示例演练 — 规划阶段 检查计划的参数 • 示例“INVOLVEMENT” • 每个处于备用角色的数据库起着保护主数据库的作用 • BOS 主数据库 • CAM 和 CHI 保护 BOS • CAM 主数据库 • BOS 和 CHI 保护 CAM • CHI 主数据库 • BOS 和 CAM 保护 CHI SQL> select scope, name, curval 2 from dba_rolling_parameters 3 where scope is not null order by scope; SCO NAME CURVAL --- --------------- --------------- bos INVOLVEMENT FULL bos PROTECTS NONE cam INVOLVEMENT FULL cam PROTECTS PRIMARY chi INVOLVEMENT FULL chi PROTECTS PRIMARY 6 rows selected. SQL>

  23. 示例演练 — 规划阶段 准备就绪后,构建计划 • 验证计划参数 • 构建升级计划 • 为了执行滚动升级,需要成功构建计划 • 参数更改后需要再次调用该过程 • 可以用 DBA_ROLLING_PLAN 审查完成的计划 SQL> select revision, status, phase 2 from dba_rolling_status; REVISION STATUS PHASE ---------- ------------ -------------- 0 READY BUILD PENDING SQL> exec dbms_rolling.build_plan(); PL/SQL procedure successfully completed. SQL> select revision, status, phase 2 from dba_rolling_status; REVISION STATUS PHASE ---------- ------------ -------------- 1 READY START PENDING

  24. 示例演练 — 开始阶段 开始升级过程 • 必须在主数据库上执行 • 正式开始滚动升级操作。 • 完成操作后,将得到一个完全配置好的临时逻辑备用数据库。 • 仍无需停机 SQL> exec dbms_rolling.start_plan(); PL/SQL procedure successfully completed. SQL> select dbun, role, engine_status, 2 update_progress from dba_rolling_databases; DBUN ROLE ENGINE_STATUS UPDATE_PROG ---------- --------- -------------- ----------- bos PRIMARY NOT APPLICABLE NOT STARTED cam LOGICAL RUNNING NOT STARTED chi PHYSICAL RUNNING NOT STARTED SQL> select revision, status, phase 2 from dba_rolling_status; REVISION STATUS PHASE ---------- ------------ -------------- 1 READY SWITCH PENDING

  25. 示例演练 — 开始阶段 执行更改 • 对数据库进行更改 • 例如,将表从 LOB 移动到 Securefile LOB • 停止 SQL 应用 • 对临时逻辑备用数据库进行更改 • 重新启动 SQL 应用

  26. 示例演练 — 切换阶段 切换! • 在切换之前,可以先将进行读操作的客户移动到临时逻辑备用数据库,以避免中断 • 更新用户将停滞,最后必须使用标准客户端故障切换最佳实践重新连接到新主数据库。 • 数据库中断不应超过 90-120 秒 SQL> exec dbms_rolling.switchover(); PL/SQL procedure successfully completed. SQL> select dbun, role, engine_status, 2 update_progress from dba_rolling_databases; DBUN ROLE ENGINE_STATUS UPDATE_PROG ---------- --------- -------------- ----------- bos LOGICAL STOPPED NOT STARTED cam PRIMARY NOT APPLICABLE NOT STARTED chi PHYSICAL STOPPED NOT STARTED SQL> select revision, status, phase 2 from dba_rolling_status; REVISION STATUS PHASE ---------- ------------ -------------- 1 READY FINISH PENDING

  27. 示例演练 — 结束阶段 完成更改 • 手动重新启动,并挂载所有其他数据库 • 执行 FINISH 过程,结束滚动升级操作。 • 将原先的主数据库配置为物理备用数据库,并对其余的物理备用数据库进行配置,以便从新主数据库恢复更改重做数据。 SQL> exec dbms_rolling.finish_plan(); PL/SQL procedure successfully completed. SQL> select dbun, role, engine_status, 2 update_progress from dba_rolling_databases; DBUN ROLE ENGINE_STATUS UPDATE_PROG ---------- --------- -------------- ----------- bos PHYSICAL RUNNING FINISHED cam PRIMARY NOT APPLICABLE FINISHED chi PHYSICAL RUNNING FINISHED SQL> select revision, status, phase 2 from dba_rolling_status; REVISION STATUS PHASE ---------- ------------ -------------- 1 READY DONE

  28. 示例演练 — 结束阶段 重新启用代理并执行切换 • 启用代理 • 将自己重新配置为新主数据库“CAM”。 • 执行代理切换 • 如果需要则返回到原始配置。 DGMGRL> enable configuration; Enabled. DGMGRL> show configuration Configuration – OOW2012 Protection Mode:MaxAvailability Databases: cam - Primary database bos - Physical standby database chi - Physical standby database Fast-Start Failover:DISABLED Configuration Status: SUCCESS DGMGRL> switchover to bos; Performing switchover NOW, please wait... … Switchover succeeded, new primary is "bos"

  29. 议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结

  30. DBMS_ROLLING:主要特性 • 规定 — 编译 — 执行协议 • 在编译阶段捕获配置错误 • 在执行阶段检测运行时错误 • 状态保存在数据库中 • 提供强健性 • 运行时步骤是不变的 • 与涉及的数据库个数无关 • 在原来的主数据库中处理故障 • 允许从一开始就为升级后的主数据库提供数据保护

  31. 同步 — 应用重做日志 生产数 据库 同步 — 应用sql 生产数 据库 切换 将 A 闪回到 GRP,通过重做数据流进行升级 生产数 据库 物理备用数据库 同步 — 应用重做日志 后台工作 数据库 A 数据库 B 在 A 和 B 上设置可靠 恢复点 (GRP) 物理备用数据库 逻辑备用数据库 将 B 转换为临时逻辑备 用数据库 物理备用数据库 生产数 据库 切换 当前结构 新结构

  32. 现在需要多少步骤? • 为维护做好准备 • 禁用代理,INIT_PLAN,BUILD_PLAN,配置重做传输 • START_PLAN • 执行维护 • 切换 • 挂载原来的主数据库 • FINISH_PLAN • 启用代理,切换

  33. 资源 • OTN HA 门户:http://www.oracle.com/goto/availability • 最高可用性架构 (MAA):http://www.oracle.com/goto/maa • MAA 博客:http://blogs.oracle.com/maa • OTN 上的 Exadata:http://www.oracle.com/technetwork/database/exadata/index.html • OTN 上的 Oracle HA 客户成功案例:http://www.oracle.com/technetwork/database/features/ha-casestudies-098033.html

  34. Graphic Section Divider

  35. 以上内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。计划将于 2013 年(日历年)发布 Oracle Database 12c。

More Related