注意:

实施 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 工作流步骤

  1. 启动数据库迁移。
  2. 从服务执行恢复。
  3. 在目标主数据库上实例化备用数据库。
  4. 在目标主数据库上同步主数据库和备用数据库。
  5. 从服务执行恢复。
  6. 在目标备用数据库上实例化备用数据库。
  7. 同步源和目标备用数据库。
  8. 监视切换就绪情况。
  9. 执行切换和角色转换。
  10. 配置目标主云中介和恢复云中介配置。
    1. Oracle Zero Downtime Migration 可在云目标主数据库和云目标备用数据库之间恢复云中介配置。
    2. Oracle Zero Downtime Migration 将目标主数据库配置为将重做日志发送到目标备用数据库。
  11. 执行验证后检查。
  12. 完成迁移过程。

注: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 支持此工作流。

先决条件

任务 1:迁移前任务

以下步骤说明在实际迁移之前要完成的先决条件任务。

  1. 在源系统上安装软件。zdmcli build 显示二进制文件的版本。有关更多信息,请参见 Install the Software on the Source System

    在此处输入图像描述

  2. 如先决条件中所述,DR 设置已在 OCI 目标主数据库计算机和目标备用虚拟机数据库系统计算机之间进行配置,如下图中所示。

    在此处输入图像描述

    数据库和服务器清单:

    名称
    数据库名称和版本 Db0403 & 19c
    源(内部部署)主机名 数据库源
    OCI“目标主数据库”主机名 ociserverprimary
    OCI“目标主数据库”控制台显示名称 OCI_FUTURE_PRIMARY
    OCI“目标备用数据库”主机名 ociserverstands
    OCI“目标备用”控制台显示名称 OCI_FUTURE_STANDBY
    PDB 名称 Db0403_Pdb1
    ZDM 服务器名称版本 (&V) 研讨会和 21.5

    下图显示了 OCI 目标主数据库和目标备用数据库系统的详细信息。

    在此处输入图像描述

    在此处输入图像描述

  3. 源数据库已启用强制日志记录和归档日志模式,可以使用以下命令对其进行验证。

    select force_logging ,log_mode from v$database;
    FORCE_LOGGING  LOG_MODE
    --------------------------------------- ------------
    YES  ARCHIVELOG
    
  4. 运行 tnsping 命令以测试在源主服务器和目标主服务器之间启用的 1521 端口,反之亦然,以进行日志传送。

  5. Oracle Zero Downtime Migration 服务器应该能够以 zdmuser 身份通过 SSH 连接到 OPC 用户的源服务器和目标备用服务器。此处,源服务器 OS 用户以及目标 OS OPC 用户名在此迁移中使用的 OPC

    在此处输入图像描述

  6. 使用目标主数据库和目标备用数据库信息更新了源服务器 /etc/hosts 文件。

    在此处输入图像描述

  7. 使用下图中所示的条目更新了 OCI 未来主服务器 /etc/hosts 文件。

    在此处输入图像描述

  8. 使用下图中所示的条目更新了 OCI 未来备用服务器 ` /etc/hosts` 文件。

    在此处输入图像描述

  9. 使用下图中所示的条目更新了 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 输出。

在此处输入图像描述

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心