390 likes | 751 Views
以下内容旨在概述产品的总体发展方向 。 该内容仅供参考,不可纳入任何合同 。 其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据 。 此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定 。 计划将于 2013 年(日历年)发布 Oracle Database 12c。. Oracle Data Guard 零停机数据库维护. Sally Piao 副总裁 数据库和 Exadata 系统测试. 议题. 当前滚动升级简述 客户观点 未来简单的数据库升级 总结. 同步.
E N D
以下内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。计划将于 2013 年(日历年)发布 Oracle Database 12c。
Oracle Data Guard 零停机数据库维护 Sally Piao 副总裁 数据库和Exadata系统测试
议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结
同步 生产数 据库 同步 生产数 据库 切换 生产数 据库 生产数 据库 通过重做数据流升级数据库 A并进行同步 物理备用数据库 同步 数据库滚动升级 My Oracle Support 说明 949322.1 数据库 A 数据库B 在 A 和 B 独立主目录下安装新的 Oracle 版本,在 A 上设置可靠恢复点 (GRP) 物理备用数据库 临时将 B 转换为使用 SQL 应用,升级并同步 逻辑备用数据库 切换,将 A 闪回到 GRP,挂载到新主目录/升级后的主目录 物理备用数据库 版本 n 版本 n+1
议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结
需要多少步骤? • 禁用代理配置 • 停止主数据库的代理 • 停止备用数据库的代理 • 配置目标备用数据库上的重做传输参数 • 配置从属备用数据库上的重做传输参数 • 设置 LOG_FILE_NAME_CONVERT 参数以清除日志文件 • 在主数据库上创建可靠恢复点 • 在备用数据库上创建可靠恢复点 • 取消托管恢复 • 在主数据库上执行DBMS_LOGSTDBY.BUILD • 使用KEEP IDENTITY 将备用数据库转换为临时逻辑备用数据库 • 打开临时逻辑备用数据库 • 启动 SQL 应用 • 关闭归档日志自动删除功能 • 同步
稍等!还有更多步骤! • 停止 SQL 应用 • 创建第 2 个可靠恢复点 • 停止重做传输 • 升级临时逻辑备用数据库 • 启用重做传输 • 重新启动 SQL 应用 • 同步 • 在主数据库上启动切换 • 在备用数据库完成切换 • 打开新主数据库 • 停止重做传输 • 闪回原来的主数据库 • 将原来的主数据库挂载到新主目录 • 将其转换为物理备用数据库 • 关闭 • 挂载新物理备用数据库 • 开始应用重做日志 • 启用重做传输 • 同步 • 在新主数据库上启动切换
最后 • 在备用数据库上完成切换 • 打开新主数据库 • 将原来的主数据库重启为备用数据库 • 启动托管恢复 • 删除 3 个可靠恢复点 • 启用代理配置
议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结
DBMS_ROLLING:概念 • 滚动更改可应用到整个 Data Guard 配置上 • 三个阶段(规定 — 编译 — 执行) • 执行分三个阶段:开始、切换、结束 • 两个关键组 • 前导组 • 首先部署变更(切换前) • 有一个主数据库(未来的主数据库) • 后续组 • 最后部署变更(切换后) • 有一个主数据库(原来的主数据库)
DBMS_ROLLING:概念 • 前导组 • 需要在“规定”阶段确定主数据库 (LGM) • LGM 开始时作为物理备用数据库,然后转换为逻辑备用数据库 (START),接着成为主数据库 (SWITCHOVER) • 前导组中的其他数据库都保护 LGM • 出现故障时 LGM 的职责可转移 • 后续组 • 包含原来的主用数据库(后续组主数据库,简称 TGM) • 后续组中的其他数据库保护TGM • 出现故障时 TGM 的职责可转移
Data Guard 简单滚动升级 简单、可靠、可重复的数据库滚动升级 开始 切换 结束
目标 简单、可靠、可重复 • 早期问题检测 • 专用接口:DBMS_ROLLING PL/SQL 包 • 集中、简化、统一的执行 • 容错 • 配置回滚 • 集中监视:DBA_ROLLING视图
升级数据库软件 • 从 Oracle Database 12c 的第一个补丁集开始,将可使用 Data Guard 简单滚动升级过程来进行数据库版本升级。 • 要从之前的 Oracle Database 11g 版本升级到 Oracle Database 12c,以及从 Oracle Database 12c 第 1 版升级到第一个补丁集,仍将需要使用典型的临时逻辑备用数据库升级过程。 • 对第 1 版的其他数据库维护任务可以使用此过程
可进行什么样的更改? • 向未分区的表添加分区 • 将 Basicfile LOB 更改为 Securefile LOB • 将 XML-CLOB 更改为二进制 XML • 将表改变为 OLTP 压缩方式 第 1 版示例
新数据类型支持 消除数据库滚动升级的障碍 • 高级数据类型支持 • XML 或 • 二进制 XML • Securefile 重复消除 • 对象/集合(包括 SDO_GEOMETRY、DICOM) • 新增对 Oracle 提供的特性的支持 • DBFS • AQ • Oracle Text • XDB
过程 — 规划和设置阶段 • 生成升级计划 • 调用DBMS_ROLLING.INIT_PLAN • 通过特定于配置的指令集生成升级计划,用于指导管理员完成升级过程 • 调用DBMS_ROLLING.SET_PARAMETER • 修改滚动升级的参数 • 准备好对数据库的更改
过程 — 执行阶段 • 调用DBMS_ROLLING.START_PLAN • 配置参与升级的主数据库和备用数据库 • 对备用数据库进行更改 • 调用DBMS_ROLLING.SWITCHOVER • 将当前主数据库和包含更改的新主数据库的角色进行交换,只有切换时需要停机 • 调用DBMS_ROLLING.FINISH_PLAN • 完成原来主数据库和从属备用数据库的升级,并与新主数据库重新同步
示例演练 — 规划阶段 当前配置 • 位于 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>
示例演练 — 规划阶段 开始规划过程 • 连接主数据库 • 执行 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.
示例演练 — 规划阶段 重新配置重做传输 • 在目标数据库上创建重做传输参数 • 在我们的示例中,是在 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>
示例演练 — 规划阶段 检查计划的参数 • 示例“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>
示例演练 — 规划阶段 准备就绪后,构建计划 • 验证计划参数 • 构建升级计划 • 为了执行滚动升级,需要成功构建计划 • 参数更改后需要再次调用该过程 • 可以用 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
示例演练 — 开始阶段 开始升级过程 • 必须在主数据库上执行 • 正式开始滚动升级操作。 • 完成操作后,将得到一个完全配置好的临时逻辑备用数据库。 • 仍无需停机 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
示例演练 — 开始阶段 执行更改 • 对数据库进行更改 • 例如,将表从 LOB 移动到 Securefile LOB • 停止 SQL 应用 • 对临时逻辑备用数据库进行更改 • 重新启动 SQL 应用
示例演练 — 切换阶段 切换! • 在切换之前,可以先将进行读操作的客户移动到临时逻辑备用数据库,以避免中断 • 更新用户将停滞,最后必须使用标准客户端故障切换最佳实践重新连接到新主数据库。 • 数据库中断不应超过 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
示例演练 — 结束阶段 完成更改 • 手动重新启动,并挂载所有其他数据库 • 执行 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
示例演练 — 结束阶段 重新启用代理并执行切换 • 启用代理 • 将自己重新配置为新主数据库“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"
议题 • 当前滚动升级简述 • 客户观点 • 未来简单的数据库升级 • 总结
DBMS_ROLLING:主要特性 • 规定 — 编译 — 执行协议 • 在编译阶段捕获配置错误 • 在执行阶段检测运行时错误 • 状态保存在数据库中 • 提供强健性 • 运行时步骤是不变的 • 与涉及的数据库个数无关 • 在原来的主数据库中处理故障 • 允许从一开始就为升级后的主数据库提供数据保护
同步 — 应用重做日志 生产数 据库 同步 — 应用sql 生产数 据库 切换 将 A 闪回到 GRP,通过重做数据流进行升级 生产数 据库 物理备用数据库 同步 — 应用重做日志 后台工作 数据库 A 数据库 B 在 A 和 B 上设置可靠 恢复点 (GRP) 物理备用数据库 逻辑备用数据库 将 B 转换为临时逻辑备 用数据库 物理备用数据库 生产数 据库 切换 当前结构 新结构
现在需要多少步骤? • 为维护做好准备 • 禁用代理,INIT_PLAN,BUILD_PLAN,配置重做传输 • START_PLAN • 执行维护 • 切换 • 挂载原来的主数据库 • FINISH_PLAN • 启用代理,切换
资源 • 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
以上内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。其内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。计划将于 2013 年(日历年)发布 Oracle Database 12c。