设置将来的主数据库

您将设置未来的主 Oracle Exadata Database Service on Dedicated Infrastructure ,并将 Oracle Zero Downtime Migration 配置为准备将 PeopleSoft 数据库迁移到 OCI。

关于 Oracle Zero Downtime Migration 先决条件

以下是成功迁移的关键 Oracle Zero Downtime Migration (ZDM) 先决条件:

  1. ZDM 主机服务器

    预配专用主机或 VM 以托管 ZDM 安装,其中包括一个小的 Oracle Clusterware 占用空间、一个 MySQL 数据库以及组打补丁和预配。此服务器应安装最新的 Oracle Linux 7 映像。此 VM 配置可能较小,2 个核心以及 16GB 的物理 RAM 就足够了。ZDM 服务器在源系统和目标系统上编排所有数据库迁移任务。

  2. 网络连接
    从内部部署到 OCI 资源的网络连接类型将决定您的 ZDM 迁移方法和数据传输选项。Oracle Zero Downtime Migration 支持不同的网络连接拓扑,包括通过 OCI FastConnect 或 IPSec VPN 进行直接连接、使用 SSH 隧道、代理服务器和堡垒主机。

    注意:

    了解您的内部部署系统如何访问 OCI 资源以及 OCI 资源是否必须访问特定的内部部署系统以及通过什么网络路径访问特定的内部部署系统(如果是),非常重要
    考虑以下事项:
    1. ZDM 主机服务器必须能够访问内部部署源系统和 OCI 目标系统
    2. 对于使用 Oracle Data Guard 的联机迁移方法,源系统和目标系统必须能够相互访问。
  3. 透明数据加密 (TDE)

    OCI 要求对所有数据库进行加密。如果无法在将数据库传输到 OCI 之前对数据本身进行加密,您可以在源中创建 TDE 密钥库 wallet,并且 ZDM 迁移过程将加密目标中的数据文件。对于数据库版本 12.2 及更高版本,源上需要 TDE wallet,但您可以将此方法用于较早的数据库发行版。

    有关设置 TDE 密钥库的步骤,请参见 Move to Oracle Cloud Using Zero Downtime Migration 中的 Setting Up the Transparent Data Encryption Keystore

  4. 占位符数据库
    在使用 Oracle Zero Downtime Migration 进行迁移之前,必须在目标 Oracle Exadata Database Service on Dedicated Infrastructure 上创建占位符数据库。在迁移过程中,ZDM 将删除占位符数据库的数据结构,并取代源数据库的结构。其元数据将保持不变。使用 OCI 控制台创建它,但存在以下约束条件:
    1. 数据库主目录必须与主目录处于相同的软件版本、发行版和修补程序级别。
    2. The DB_NAME must be the same as on the primary database.
    3. 可以将 DB_UNIQUE_NAME 留空或指定,但它必须与主服务器不同。
    4. SYS 密码必须与主密码相同,因为我们使用的是 Oracle Data Guard
    5. 请勿在此容器数据库 (CDB) 中创建可插入数据库 (PDB)
    6. 预配此数据库时不配置自动备份
  5. SSH 访问

    Oracle Zero Downtime Migration 要求通过 SSH 访问源系统和目标系统。对于目标,将使用 opc 云用户和无密码 SSH 密钥。对于内部部署源,将使用 root 用户。您可以配置无口令 SSH 密钥并使用它们而不使用口令短语,也可以使用 root 用户和口令。请参阅 Oracle Zero Downtime Migration 以设置 SSH 访问,并确保 ZDM 主机服务器可以访问源系统和目标系统。

注意:

有关 Oracle Zero Downtime Migration 的先决条件完整说明,请参见 Move to Oracle Cloud Using Zero Downtime Migration

为数据库迁移配置 Oracle Zero Downtime Migration

满足先决条件并安装了 Oracle Zero Downtime Migration 后,您可以创建响应文件来配置数据库迁移。

  1. 将位于 $ZDM_HOME/rhp/zdm/template/zdm_template.rsp 的响应文件模板复制到 Oracle Zero Downtime Migration 主机服务器上的工作目录。
  2. 编辑数据库迁移的响应文件。
    有多个参数可用于控制迁移。
    例如,您可以将迁移设置为配置 Oracle Data Guard 和 Oracle Data Guard Broker,并尽可能减少停机时间:
    ZDM 参数 注释
    TGT_DB_UNIQUE_NAME CDBHCM_iad1dx 指定占位符数据库的 db_unique_name
    MIGRATION_METHOD ONLINE_PHYSICAL Oracle Zero Downtime Migration 使用的迁移方法,不需要关闭主数据库。
    DATA_TRANSFER_MEDIUM OSS Oracle Zero Downtime Migration 使用 OCI Object Storage 服务暂存数据库的备份,然后从数据库还原。您可以使用其他传输方法,例如 DIRECT,它可以使用 RMAN RESTORE FROM SERVICE 而无需在对象存储中暂存数据库。对于 DIRECT,需要其他 Oracle Zero Downtime Migration 参数,请参见 Oracle Zero Downtime Migration 文档。
    PLATFORM_TYPE ExaCS [1] 迁移的目标系统是 Exadata Cloud Service。
    TGT_RETAIN_DB_UNIQUE_NAME TRUE 为了使 Oracle Data Guard 将日志寄回源,在迁移过程中会保留目标 (TGT) 数据库 DB_UNIQUE_NAME
    TGT_SKIP_DATAPATCH TRUE 跳过在目标数据库上运行 datapatch。
    SHUTDOWN_SRC FALSE 迁移完成后,请勿关闭源数据库。
    SRC_RMAN_CHANNELS 10 Oracle Recovery Manager (RMAN) 将在源数据库上分配 10 个通道以并行备份数据库。
    TGT_RMAN_CHANNELS 10 Oracle RMAN 将在目标数据库上分配 10 个通道以并行还原数据库。
    ZDM_USE_DG_BROKER TRUE Oracle Zero Downtime Migration 将在迁移过程中配置 Oracle Data Guard 中介。
    HOST https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/maacloud OCI 对象存储服务端点 URL。OCI 对象存储数据传输介质需要此介质。
    OPC_CONTAINER ZDM_Backup OCI Object Storage 存储桶名称。OCI 对象存储数据传输介质需要此介质。

    [1] The accepted value for PLATFORM_TYPE for Oracle Exadata Database Service on Dedicated Infrastructure is ExaCS.

  3. 确定适合您的方案的其余参数和设置。
    在我们的示例中,我们能够接受剩余参数的默认值。有关详细信息,请参阅 Oracle Zero Downtime Migration 文档。

测试配置和 Oracle Zero Downtime Migration 参数文件

要测试准备步骤和配置文件,请在评估模式下运行 Oracle Zero Downtime Migration

-eval 命令行选项指示 Oracle Zero Downtime Migration 仅对其所有迁移过程阶段执行预检查,然后停止。未对系统进行任何更改。Oracle Zero Downtime Migration 预检查在源数据库和目标数据库上执行,如果将 DATA_TRANSFER_MEDIUM 设置为 OSS,则在 OCI Object Storage 上执行。
  1. 运行迁移流程的预检查。
    例如:
    $ZDM_HOME/bin/zdmcli migrate database \
     -sourcedb CDBHCM_sca6dp \
     -sourcenode scaqan10dv0505.example.com \
     -srcauth zdmauth \
     -srcarg1 user:opc \
     -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk \
     -srcarg3 sudo_location:/usr/bin/sudo \
     -targetnode iadexadb-bw5wn1.ebsexadbprivate.ebscloudmaavcn.oraclevcn.com \
     -backupuser <oci user name> \
     -rsp /home/zdmuser/zdm_CDBHCM_migration.rsp \
     -tgtauth zdmauth \
     -tgtarg1 user:opc \
     -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk \
     -tgtarg3 sudo_location:/usr/bin/sudo \
     -eval

    所有 Oracle Zero Downtime Migration 作业均通过作业调度机制执行,并异步执行。发出 Oracle Zero Downtime Migration 命令时,您将收到可用于检查作业状态的作业 ID。

  2. 检查作业的状态。
    例如,运行以下命令来查询作业 ID 5 的状态:
    $ $ZDM_HOME/bin/zdmcli query job -jobid 5
    输出指示哪个任务正在运行、哪些任务处于暂挂状态,以及预检查是成功还是失败。在查询作业状态时,您可以在作业执行所有必需任务之前看到进度。
  3. 根据需要多次使用 -eval 运行 zdmcli,以便所有预检查都通过。
    如果有任何任务标记为 PRECHECK_FAILED,请查阅“结果”日志文件以了解错误并进行更正。
  4. 在执行实际迁移之前,请确保评估模式为所有预检查任务返回 PRECHECK_PASSED。
    例如:
    iad-zdm. ebsexadbprivate.ebscloudmaavcn.oraclevcn.com: Audit ID: 50
    Job ID: 5
    User: zdmuser
    Client: iad-zdm
    Job Type: "EVAL"
    Scheduled job command: "zdmcli migrate database -sourcedb CDBHCM_sca6dp -sourcenode scaqan10dv0505.mycompany.com -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode iadexadb-bw5wn1.ebsexadbprivate.ebscloudmaavcn.oraclevcn.com -backupuser <oci user name> -rsp /home/zdmuser/zdm_CDBHCM_migration.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -eval"
    Scheduled job execution start time: 2022-07-26T20:26:01Z. Equivalent local time: 2022-07-26 20:26:01
    Current status: SUCCEEDED
    Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-5-2022-07-26-20:26:21.log"
    Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-5-2022-07-26-20:26:21.json"
    Job execution start time: 2022-07-26 20:26:21
    Job execution end time: 2022-07-26 20:30:37
    Job execution elapsed time: 4 minutes 16 seconds
    ZDM_GET_SRC_INFO ........... PRECHECK_PASSED
    ZDM_GET_TGT_INFO ........... PRECHECK_PASSED
    ZDM_PRECHECKS_SRC .......... PRECHECK_PASSED
    ZDM_PRECHECKS_TGT .......... PRECHECK_PASSED
    ZDM_SETUP_SRC .............. PRECHECK_PASSED
    ZDM_SETUP_TGT .............. PRECHECK_PASSED
    ZDM_PREUSERACTIONS ......... PRECHECK_PASSED
    ZDM_PREUSERACTIONS_TGT ..... PRECHECK_PASSED
    ZDM_OBC_INST_SRC ........... PRECHECK_PASSED
    ZDM_OBC_INST_TGT ........... PRECHECK_PASSED
    ZDM_VALIDATE_SRC ........... PRECHECK_PASSED
    ZDM_VALIDATE_TGT ........... PRECHECK_PASSED
    ZDM_POSTUSERACTIONS ........ PRECHECK_PASSED
    ZDM_POSTUSERACTIONS_TGT .... PRECHECK_PASSED
    ZDM_CLEANUP_SRC ............ PRECHECK_PASSED
    ZDM_CLEANUP_TGT ............ PRECHECK_PASSED

迁移 PeopleSoft 数据库

您可以使用 Oracle Zero Downtime Migration 迁移数据库。默认情况下,它将迁移数据库,然后切换到该数据库。

注意:

我们不希望 Oracle Zero Downtime Migration 执行切换,因此,在阶段 ZDM_CONFIGURE_DG_SRC 完成后,将使用 -stopafter 子句停止。

  1. 运行数据库迁移过程并指定 -stopafter 以停止迁移。
    例如:
    $ZDM_HOME/bin/zdmcli migrate database \
     -sourcedb CDBHCM_sca6dp \
     -sourcenode scaqan10dv0505.mycompany.com \
     -srcauth zdmauth \
     -srcarg1 user:opc \
     -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk \
     -srcarg3 sudo_location:/usr/bin/sudo \
     -targetnode iadexadb-bw5wn1.ebsexadbprivate.ebscloudmaavcn.oraclevcn.com \
     -backupuser <oci user name> \
     -rsp /home/zdmuser/zdm_CDBHCM_migration.rsp \
     -tgtauth zdmauth \
     -tgtarg1 user:opc \
     -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk \
     -tgtarg3 sudo_location:/usr/bin/sudo \
     -stopafter ZDM_CONFIGURE_DG_SRC

    该命令返回可用于检查作业状态的作业 ID。

  2. 检查作业的状态。
    例如,运行以下命令来查询作业 ID 6 的状态:
    $ $ZDM_HOME/bin/zdmcli query job -jobid 6

    下面是完成阶段 ZDM_CONFIGURE_DB_SRC 后的最终输出的示例。

    iad-zdm. ebsexadbprivate.ebscloudmaavcn.oraclevcn.com: Audit ID: 74
    Job ID: 6
    User: zdmuser
    Client: iad-zdm
    Job Type: "MIGRATE"
    Scheduled job command: "zdmcli migrate database -sourcedb CDBHCM_sca6dp -sourcenode scaqan10dv0505.mycompany.com -srcauth zdmauth -srcarg1 user:opc -srcarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -srcarg3 sudo_location:/usr/bin/sudo -targetnode iadexadb-bw5wn1.ebsexadbprivate.ebscloudmaavcn.oraclevcn.com -backupuser <oci user name> -rsp /home/zdmuser/zdm_CDBHCM_migration.rsp -tgtauth zdmauth -tgtarg1 user:opc -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_host.ppk -tgtarg3 sudo_location:/usr/bin/sudo -pauseafter ZDM_CONFIGURE_DG_SRC"
    Scheduled job execution start time: 2022-07-26T20:35:24Z. Equivalent local time: 2022-07-26 20:35:24
    Current status: PAUSED
    Current Phase: "ZDM_CONFIGURE_DG_SRC"
    Result file path: "/u01/app/zdmbase/chkbase/scheduled/job-6-2022-07-26-20:35:51.log"
    Metrics file path: "/u01/app/zdmbase/chkbase/scheduled/job-6-2022-07-26-20:35:51.json"
    Job execution start time: 2022-07-26 20:35:51
    Job execution end time: 2022-07-26 21:37:05
    Job execution elapsed time: 1 hours 1 minutes 14 seconds
    ZDM_GET_SRC_INFO ............... COMPLETED
    ZDM_GET_TGT_INFO ............... COMPLETED
    ZDM_PRECHECKS_SRC .............. COMPLETED
    ZDM_PRECHECKS_TGT .............. COMPLETED
    ZDM_SETUP_SRC .................. COMPLETED
    ZDM_SETUP_TGT .................. COMPLETED
    ZDM_PREUSERACTIONS ............. COMPLETED
    ZDM_PREUSERACTIONS_TGT ......... COMPLETED
    ZDM_OBC_INST_SRC ............... COMPLETED
    ZDM_OBC_INST_TGT ............... COMPLETED
    ZDM_VALIDATE_SRC ............... COMPLETED
    ZDM_VALIDATE_TGT ............... COMPLETED
    ZDM_BACKUP_FULL_SRC ............ COMPLETED
    ZDM_BACKUP_INCREMENTAL_SRC ..... COMPLETED
    ZDM_DISCOVER_SRC ............... COMPLETED
    ZDM_COPYFILES .................. COMPLETED
    ZDM_PREPARE_TGT ................ COMPLETED
    ZDM_SETUP_TDE_TGT .............. COMPLETED
    ZDM_CLONE_TGT .................. COMPLETED
    ZDM_FINALIZE_TGT ............... COMPLETED
    ZDM_CONFIGURE_DG_SRC ........... COMPLETED

此命令完成 ZDM_CONFIGURE_DG_SRC 步骤后,Oracle Zero Downtime Migration 将源数据库复制到 OCI 中,将其设置为源的备用数据库,配置 Data Guard 中介,然后启动 redo apply。新的 OCI 备用数据库正在与源主数据库同步。

Oracle Zero Downtime Migration 还完成了以下任务:

  • 已将迁移的数据库注册到 Oracle Clusterware
  • 使用更新的信息更新了 OCI 控制层元数据,包括备用数据库中的任何可插入数据库 (PDB)
  • 使用透明数据加密 (Transparent Data Encryption,TDE) 加密备用数据库的数据文件,如 Oracle Zero Downtime Migration 先决条件中所述。

    注意:

    视图 V$ENCRYPTION_WALLET 中的 WALLET_TYPE 设置为 AUTOLOGIN

为未来主数据库定义基于角色的数据库服务

为联机用户和进程调度器添加 OCI 数据库填充 PRIMARY 角色时 PeopleSoft 应用程序将使用的基于角色的数据库服务。

  • 为联机用户和进程调度器添加基于角色的数据库服务。
    srvctl add service -db CDBHCM_iad1dx -pdb HR92U033 -service HR92U033_BATCH -preferred "CDBHCM1,CDBHCM2" -notification TRUE -role PRIMARY,SNAPSHOT_STANDBY -failovermethod BASIC -failovertype AUTO -failoverretry 10 -failoverdelay 3
    
    srvctl add service -db CDBHCM_iad1dx -pdb HR92U033 -service HR92U033_ONLINE -preferred "CDBHCM1,CDBHCM2" -notification TRUE -role PRIMARY,SNAPSHOT_STANDBY -failovermethod BASIC -failovertype AUTO -failoverretry 10 -failoverdelay 3