注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
实施 Oracle Zero Downtime Migration 21.5 云原生灾难恢复自动化
简介
在典型迁移中,Oracle Zero Downtime Migration 将源数据库仅迁移到一个目标数据库(单点故障)。现在,在 21.5
版本中,您还可以在迁移后创建灾难恢复 (Disaster Recovery,DR) 策略,以便能够响应对业务运营产生负面影响的事件并从中恢复。在迁移期间实例化了两个目标数据库(目标主数据库和目标备用数据库),这两个数据库可以位于不同的区域(以减少自然灾害的影响)。在迁移后,两个目标数据库中都会恢复 Oracle Data Guard 中介配置,以允许云原生操作,例如切换和故障转移(在 Oracle Database Cloud Service 控制台中)。有关更多信息,请参见 Creating an Oracle Cloud Native Disaster Recovery Strategy 。
架构图
Oracle Zero Downtime Migration 工作流步骤
- 启动数据库迁移。
- 从服务执行恢复。
- 在目标主数据库上实例化备用数据库。
- 在目标主数据库上同步主数据库和备用数据库。
- 从服务执行恢复。
- 在目标备用数据库上实例化备用数据库。
- 同步源和目标备用数据库。
- 监视切换就绪情况。
- 执行切换和角色转换。
- 配置目标主云中介和恢复云中介配置。
- Oracle Zero Downtime Migration 可在云目标主数据库和云目标备用数据库之间恢复云中介配置。
- Oracle Zero Downtime Migration 将目标主数据库配置为将重做日志发送到目标备用数据库。
- 执行验证后检查。
- 完成迁移过程。
注:Oracle Base Database Service、Oracle Exadata Database Service on Dedicated Infrastructure、Oracle Exadata Database Service on Cloud@Customer、Exadata on-premises 和 Oracle Exadata Database Service on Dedicated Infrastructure on Oracle Database@Azure 支持此工作流。
先决条件
-
在开始迁移过程之前预配目标主数据库和目标备用数据库。假定使用 Oracle Data Guard 中介配置这些环境。
- 将 Exadata Cloud Service (ExaCS)/Oracle Exadata Database Service on Cloud@Customer 用于 platform_type 时,可以使用 Oracle Data Guard Associations(在 Oracle Database Cloud Service 控制台中)完成此操作。
- 对于虚拟机数据库系统 platform_type,可以使用 Oracle Data Guard 命令行界面 (command-line interface,DGMGRL) 进行(手动)配置,该界面是 Oracle Data Guard 中介 CLI 工具。
-
支持的迁移方法:仅支持联机迁移(使用 Oracle Data Guard 的迁移)。
-
支持的数据传输方法: OCI Object Storage、Zero Data Loss Recovery Appliance (ZDLRA)、Direct。
-
支持的平台类型:ExaCS、Oracle Exadata Database Service on Cloud@Customer、Virtual Machine Database System(不支持 ZDLRA)。
-
生成公钥/私钥对,并将公钥添加到所有 3 个服务器(源、目标主服务器、目标备用服务器)。在可访问位置的 Oracle Zero Downtime Migration 服务主机上复制私有密钥文件。此文件将在迁移期间用于登录。
任务 1:迁移前任务
以下步骤说明在实际迁移之前要完成的先决条件任务。
-
在源系统上安装软件。
zdmcli
build 显示二进制文件的版本。有关更多信息,请参见 Install the Software on the Source System 。 -
如先决条件中所述,DR 设置已在 OCI 目标主数据库计算机和目标备用虚拟机数据库系统计算机之间进行配置,如下图中所示。
数据库和服务器清单:
名称 值 数据库名称和版本 Db0403 & 19c 源(内部部署)主机名 数据库源 OCI“目标主数据库”主机名 ociserverprimary OCI“目标主数据库”控制台显示名称 OCI_FUTURE_PRIMARY OCI“目标备用数据库”主机名 ociserverstands OCI“目标备用”控制台显示名称 OCI_FUTURE_STANDBY PDB 名称 Db0403_Pdb1 ZDM 服务器名称版本 (&V) 研讨会和 21.5 下图显示了 OCI 目标主数据库和目标备用数据库系统的详细信息。
-
源数据库已启用强制日志记录和归档日志模式,可以使用以下命令对其进行验证。
select force_logging ,log_mode from v$database; FORCE_LOGGING LOG_MODE --------------------------------------- ------------ YES ARCHIVELOG
-
运行
tnsping
命令以测试在源主服务器和目标主服务器之间启用的1521
端口,反之亦然,以进行日志传送。 -
Oracle Zero Downtime Migration 服务器应该能够以
zdmuser
身份通过 SSH 连接到 OPC 用户的源服务器和目标备用服务器。此处,源服务器 OS 用户以及目标 OS OPC 用户名在此迁移中使用的 OPC 。 -
使用目标主数据库和目标备用数据库信息更新了源服务器
/etc/hosts
文件。 -
使用下图中所示的条目更新了 OCI 未来主服务器
/etc/hosts
文件。 -
使用下图中所示的条目更新了 OCI 未来备用服务器 ` /etc/hosts` 文件。
-
使用下图中所示的条目更新了 Oracle Zero Downtime Migration 服务主机服务器
/etc/hosts
文件。
任务 2:评估 Oracle Zero Downtime Migration 作业
使用 -eval
标记命令验证 Oracle Zero Downtime Migration 就绪命令。-eval
不会启动实际迁移,它将用于评估预检查和环境就绪情况。
运行以下命令:
/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -eval
输出:
响应文件参数将用于最终迁移。
任务 3:实例化最终迁移作业
EVAL 作业状态是任务 2 中的成功,以下命令用于启动迁移。
/u01/app/zdmhome/bin/zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1 -pauseafter ZDM_CONFIGURE_DG_TGT
向迁移命令添加了 pauseafter
标志,用于在 ZDM_CONFIGURE_DG_TGT
阶段后暂停迁移。现在,作业已成功完成到 ZDM_CONFIGURE_DG_TGT
阶段,并按预期暂停。
移植结果:
[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 115
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49
Current status: PAUSED
Current Phase: "ZDM_CONFIGURE_DG_TGT"
Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-03 19:35:48
Job execution elapsed time: 41 minutes 7 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ PENDING
ZDM_SWITCHOVER_TGT ............ PENDING
ZDM_POST_DATABASE_OPEN_TGT .... PENDING
ZDM_DATAPATCH_TGT ............. PENDING
ZDM_POST_MIGRATE_TGT_STBY ..... PENDING
ZDM_POST_MIGRATE_TGT .......... PENDING
ZDM_POSTUSERACTIONS ........... PENDING
ZDM_POSTUSERACTIONS_TGT ....... PENDING
ZDM_POSTUSERACTIONS_STBY ...... PENDING
ZDM_CLEANUP_SRC ............... PENDING
ZDM_CLEANUP_TGT ............... PENDING
ZDM_CLEANUP_STBY .............. PENDING
Pause After Phase: "ZDM_CONFIGURE_DG_TGT" <<<<<<<<<<<<<<<< job paused after this Phase.
[zdmuser@workshop ~]$
迁移作业在切换步骤之前已暂停,OCI 未来主数据库和未来备用数据库将更改为物理备用模式,Oracle Zero Downtime Migration 作业配置了 Oracle Data Guard 中介,配置中的所有三个数据库都处于同步状态。
任务 4:启动迁移作业切换阶段
让我们通过恢复 Oracle Zero Downtime Migration 作业和任务 3 作业(即 13)来开始切换。
[zdmuser@workshop ~]$ zdmcli resume job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 117
zdmcli query job -jobid 13
命令提供作业状态,作业现在标记为成功。
输出:
[zdmuser@workshop ~]$ zdmcli query job -jobid 13
workshop.pgvcnpublic1.pgvcn.oraclevcn.com: Audit ID: 121
Job ID: 13
User: zdmuser
Client: workshop
Job Type: "MIGRATE"
Scheduled job command: "zdmcli migrate database -rsp /home/zdmuser/physical_online.rsp -sourcedb DB0403_sourcedb -sourcenode databasesource -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/priv.key -srcarg3 sudo_location:/usr/bin/sudo -targetnode ociserverprimary -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/priv.key -tgtarg3 sudo_location:/usr/bin/sudo -targethome /u01/app/oracle/product/19.0.0.0/dbhome_1"
Scheduled job execution start time: 2025-04-03T18:23:49Z. Equivalent local time: 2025-04-03 18:23:49
Current status: SUCCEEDED <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.log"
Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-13-2025-04-03-18:23:55.json"
Job execution start time: 2025-04-03 18:23:55
Job execution end time: 2025-04-04 06:03:04
Job execution elapsed time: 56 minutes 15 seconds
ZDM_GET_SRC_INFO .............. COMPLETED
ZDM_GET_TGT_INFO .............. COMPLETED
ZDM_GET_STBY_INFO ............. COMPLETED
ZDM_PRECHECKS_SRC ............. COMPLETED
ZDM_PRECHECKS_TGT ............. COMPLETED
ZDM_PRECHECKS_STBY ............ COMPLETED
ZDM_SETUP_SRC ................. COMPLETED
ZDM_SETUP_TGT ................. COMPLETED
ZDM_SETUP_STBY ................ COMPLETED
ZDM_PREUSERACTIONS ............ COMPLETED
ZDM_PREUSERACTIONS_TGT ........ COMPLETED
ZDM_PREUSERACTIONS_STBY ....... COMPLETED
ZDM_VALIDATE_SRC .............. COMPLETED
ZDM_VALIDATE_TGT .............. COMPLETED
ZDM_VALIDATE_STBY ............. COMPLETED
ZDM_DISCOVER_SRC .............. COMPLETED
ZDM_COPYFILES ................. COMPLETED
ZDM_PREPARE_TGT ............... COMPLETED
ZDM_SETUP_TDE_TGT ............. COMPLETED
ZDM_RESTORE_TGT ............... COMPLETED
ZDM_RECOVER_TGT ............... COMPLETED
ZDM_FINALIZE_TGT .............. COMPLETED
ZDM_CONFIGURE_DG_SRC .......... COMPLETED
ZDM_COPYFILES_TGT_STBY ........ COMPLETED
ZDM_PREPARE_STBY .............. COMPLETED
ZDM_SETUP_TDE_STBY ............ COMPLETED
ZDM_RESTORE_TGT_STBY .......... COMPLETED
ZDM_RECOVER_TGT_STBY .......... COMPLETED
ZDM_FINALIZE_STBY ............. COMPLETED
ZDM_CONFIGURE_DG_TGT .......... COMPLETED
ZDM_SWITCHOVER_SRC ............ COMPLETED
ZDM_SWITCHOVER_TGT ............ COMPLETED
ZDM_POST_DATABASE_OPEN_TGT .... COMPLETED
ZDM_DATAPATCH_TGT ............. COMPLETED
ZDM_POST_MIGRATE_TGT_STBY ..... COMPLETED
ZDM_POST_MIGRATE_TGT .......... COMPLETED
ZDM_POSTUSERACTIONS ........... COMPLETED
ZDM_POSTUSERACTIONS_TGT ....... COMPLETED
ZDM_POSTUSERACTIONS_STBY ...... COMPLETED
ZDM_CLEANUP_SRC ............... COMPLETED
ZDM_CLEANUP_TGT ............... COMPLETED
ZDM_CLEANUP_STBY .............. COMPLETED
[zdmuser@workshop ~]$
在执行数据库切换时,从目标主 OCI(现在是当前主 OCI)执行 DGMGRL 命令。OCI 目标备用数据库仍按预期处于备用模式,源角色从主备用角色更改为物理备用角色。
尽管内部部署备用数据库未在中介配置中显示,但它会持续接收从 OCI 主数据库到源内部部署数据库的重做日志,并且可以使用日志切换或 log_archive_dest_3
值进行验证。
任务 5:从配置中删除源数据库
永久删除内部部署同步,并从 OCI 控制台进行本地切换。
从控制台启动切换任务以测试控制台切换。
OCI 主数据库 | OCI 备用 | |
---|---|---|
切换之前 | DB0403_primary_oci | DB0403_69p_iad |
切换后 | DB0403_69p_iad | DB0403_primary_oci |
下图显示了切换完成后的 DGMGRL 输出。
相关链接
确认
- 作者 — Sivakrishna Burle(Oracle 北美云服务— NACIE 高级云工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Implement Oracle Zero Downtime Migration 21.5 Cloud Native Disaster Recovery Automation
G32264-01
Copyright ©2025, Oracle and/or its affiliates.