迁移数据

运行带有 -eval 标志的 migrate 数据库命令以验证迁移组件和输出。预检查成功完成后,使用不带 -eval 标志的相同命令开始迁移到云。

执行预检查

运行预检查以验证迁移流程组件并评估输出以确定是否需要调整。

强烈建议对每次迁移先在评估模式下运行迁移数据库。通过该评估,您可以在对生产数据库执行实际迁移之前更正设置和配置中的任何潜在问题。在评估模式下,迁移过程在不影响更改的情况下运行。在运行实际迁移作业之前,可以根据需要多次使用 -eval 选项运行命令,这是安全的。
  1. 登录到 Zero Downtime Migration 服务主机并切换到 zdmuser 安装的用户,然后更改为 Zero Downtime Migration 主目录 /bin 目录。
    例如,零停机迁移起始目录可能为 /oracle/zdm/grid
    su - zdmuser
    zdmuser> cd /u01/app/oracle/zdm/grid/bin
  2. 使用 -eval 标志运行 zdmcli migrate database 命令。定义源数据库、源节点、目标节点、目标主目录、Oracle Cloud Infrastructure Object Storage 登录用户名、响应文件的位置以及目标数据库服务器登录用户名。
    定义源数据库时,请使用 -sourcedb database_unique_name 。如果部署的源单实例数据库没有网格基础结构主目录,则使用 -sourcesid source_oracle_sid 而不是 -sourcedb。将全限定域名 (FQDN) 用于源和目标数据库服务器名称。
    如果为基于 PASSWORD 的 Wallet 配置了源数据库,则将 -tdekeystorepasswd 选项添加到命令,并在提示符下指定源数据库 TDE 密钥库密码值。
    备份用户是 Oracle Cloud Infrastructure 用户。要在控制台中查找备份用户名或 ID,请转至用户,然后转至配置文件
    zdmuser> ./zdmcli migrate database -sourcesid source_oracle_sid \.
    -sourcenode source_FQDN_database_server_name 
    -srcauth zdmauth \
    -srcarg1 user: opc \
    -srcarg2 identity file: /home/zdmuser/.ssh/zdm_service_tool.ppk
    -srcarg3 sudo_location: /usr/bin/sudo \
    -targetnode target_FQDN_database_server_name \
    -targethome target_database_ORACLE_HOME \  
    -backupuser Object_store_login_user_name \  
    -rsp response_file_location
    -tgtauth zdmauth 
    -tgtarg1 user:target_database_server_login_user_name 
    -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_tool.ppk \
    -tgtarg3 sudo_location:/usr/bin/sudo 
    -ignore ALL -eval
  3. 系统提示时,输入源数据库 SYS 密码和源数据库服务器 root 用户密码。对于备份目标(桶),输入 Oracle Cloud Infrastructure 用户验证令牌。
    用于访问源数据库和目标数据库的数据库 SYSDBA 密码。两个数据库的密码必须相同。用户密码是 AUTH TOKEN。
    Enter source database zdmsdb SYS password:
    Enter source user "root" password:
    Enter user "backup_user@example.com" password:
    提交数据库迁移作业时,命令输出中显示 jobID。保存 jobID 以用于查询作业状态。
  4. (可选)使用查询作业命令检查作业的状态。
    ./ zdmcli query job -jobid job-id-number
  5. 查看输出状态。
    源数据库和目标数据库上提供了服务日志。该位置在输出中列出。

使用 ZDM 服务迁移数据

运行迁移命令以开始数据迁移。命令和参数与预检查相同,不带 -eval 标志。

  1. 登录到 Zero Downtime Migration 服务主机并切换到 zdmuser 安装的用户,然后更改为 Zero Downtime Migration 主目录 /bin 目录。
    例如,零停机迁移起始目录可能为 /oracle/zdm/grid
    su - zdmuser
    zdmuser> cd /u01/app/oracle/zdm/grid/bin
  2. 运行 zdmcli migrate database 命令。定义源数据库、源节点、目标节点、目标主目录、Oracle Cloud Infrastructure Object Storage 登录用户名、响应文件的位置以及目标数据库服务器登录用户名。
    定义源数据库时,请使用 -sourcedb database_unique_name 。如果部署的源单实例数据库没有网格基础结构主目录,则使用 -sourcesid source_oracle_sid 而不是 -sourcedb。将全限定域名 (FQDN) 用于源和目标数据库服务器名称。
    如果为基于 PASSWORD 的 Wallet 配置了源数据库,则将 -tdekeystorepasswd 选项添加到命令,并在提示符下指定源数据库 TDE 密钥库密码值。
    备份用户是 Oracle Cloud Infrastructure 用户。要在控制台中查找备份用户名或 ID,请转至用户,然后转至配置文件
    zdmuser> ./zdmcli migrate database -sourceid source_db_ID \.
    -sourcenode source_database_server_name 
    -srcauth zdmauth \
    -srcarg1 user: opc \
    -srcarg2 identity file: /home/zdmuser/.ssh/zdm_service_tool.ppk
    -srcarg3 sudo_location: /usr/bin/sudo \
    -targetnode target_database_server_name \
    -targethome target_database_ORACLE_HOME \  
    -backupuser Object_store_login_user_name \  
    -rsp response_file_location
    -tgtauth zdmauth 
    -tgtarg1 user:target_database_server_login_user_name 
    -tgtarg2 identity_file:/home/zdmuser/.ssh/zdm_service_tool.ppk \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -ignore ALL
  3. 系统提示时,输入源数据库 SYS 密码和源数据库服务器 root 用户密码。对于备份目标(桶),输入 Oracle Cloud Infrastructure 用户验证令牌。
    用于访问源数据库和目标数据库的数据库 SYSDBA 密码。两个数据库的密码必须相同。
    Enter source database zdmsdb SYS password:
    Enter source user "root" password:
    Enter user "backup_user@example.com" password:
    提交数据库迁移作业时,命令输出中显示 jobID。保存 jobID 以查询作业状态。
  4. (可选)使用查询作业命令检查作业的状态。
    源数据库和目标数据库上提供了服务日志。该位置在输出中列出。
    ./ zdmcli query job -jobid job-id-number

迁移故障排除

如果迁移作业遇到错误,请参阅相应源或目标数据库服务器上存在的迁移作业输出日志、零停机迁移服务日志和特定于服务器的操作阶段日志。

如果迁移作业遇到异常错误,则日志可以提供故障性质的某种指示。在源和目标环境中执行的迁移过程的日志存储在相应源和目标环境的服务器上。在查询作业状态时,日志文件位置将包括在迁移输出和输出中。

下表列出了迁移阶段以及每个阶段名称的说明。

阶段名称 说明
ZDM_GET_SRC_INFO 搜索有关源数据库的信息
ZDM_GET_TGT_INFO 搜索有关目标数据库的信息
ZDM_SETUP_SRC 在源服务器上设置 ZDM 辅助模块
ZDM_SETUP_TGT 在目标服务器上设置 ZDM 辅助模块
ZDM_PREUSERACTIONS 在源上执行迁移预用户操作(如果有)
ZDM_PREUSERACTIONS_TGT 在目标上执行迁移预用户操作(如果有)
ZDM_OBC_INST_SRC 在源上安装 Oracle Database Cloud 备份模块
ZDM_OBC_INST_TGT 在目标上安装 Oracle Database Cloud 备份模块
ZDM_GEN_RMAN_PASSWD 生成用于加密 Oracle Recovery Manager (RMAN) 备份的随机密码
ZDM_BACKUP_FULL_SRC 执行源数据库的完整备份
ZDM_BACKUP_INCREMENTAL_SRC 执行源数据库的增量备份
ZDM_VALIDATE_SRC 在源处执行验证
ZDM_VALIDATE_TGT 在目标上执行验证
ZDM_DISCOVER_SRC 在源处执行数据库搜索以设置 Oracle Data Guard
ZDM_COPYFILES 将 Oracle 密码文件和透明数据加密 (Transparent Data Encryption,TDE) wallet 从源复制到目标
ZDM_OSS_STANDBY_SETUP_TDE_TGT TDE wallet 文件从源复制到目标密钥库位置
ZDM_PREPARE_TGT Oracle Data Guard 备用创建准备目标
ZDM_CLONE_TGT 从云备份创建 Oracle Data Guard 备用数据库
ZDM_FINALIZE_TGT 完成目标的 Oracle Data Guard 备用准备
ZDM_CONFIGURE_DG_SRC 将云备用数据库注册到源
ZDM_SWITCHOVER_SRC 在源上启动切换操作
ZDM_SWITCHOVER_TGT 完成目标上的切换操作
ZDM_POSTUSERACTIONS 在源处执行任何迁移后用户操作
ZDM_POSTUSERACTIONS_TGT 对目标执行任何迁移后用户操作
ZDM_CLEANUP_SRC 对源执行清除
ZDM_CLEANUP_TGT 在目标上执行清除
ZDM_POSTUSERACTIONS_TGT 对目标执行任何迁移后用户操作
  1. 如果 Zero Downtime Migration 服务未启动,请检查 Zero Downtime Migration 服务日志,了解流程启动错误,以确定报告的错误原因。零停机迁移服务日志位于 $ZDM_BASE/crsdata/zdm_service_node/rhp/rhpserver.log.0
  2. 使用查询作业命令可检查作业的状态。
    源数据库和目标数据库上提供了服务日志。该位置在输出中列出。
    ./ zdmcli query job -jobid job-id-number
  3. 确定迁移作业在发生故障时处于哪个操作阶段,以及该阶段属于源数据库还是目标数据库。
    检查位于 $ZDM_BASE/crsdata/zdm_service_node/rhp/rhpserver.log.0 的零停机迁移服务主机日志,并访问相应的源服务器或目标服务器,以检查与 /tmp/zdm-unique id/zdm/log 目录中的操作阶段关联的日志。

有关解决零停机迁移和当前发行版中已知问题的更多信息,请参见零停机迁移发行说明