使用逻辑迁移进行迁移

以下步骤介绍了如何执行脱机逻辑迁移。联机逻辑迁移需要运行 Oracle GoldenGate 的其他服务器,这可确保数据库在迁移期间始终联机。在执行脱机逻辑迁移之前,请注意以下事项。

  • x86 服务器上的源数据库不必加密。Oracle Zero Downtime Migration 将在迁移期间加密目标数据库。
  • 源数据库和目标数据库上的 sys 口令、数据库版本和补丁程序级别可能不同。
  • 可以在迁移期间升级数据库。
  • 零停机迁移逻辑迁移将允许将某些可插入数据库 (pluggable database,PDB) 和或方案迁移到 Oracle Exadata Database Service on Cloud@Customer 中的可插入数据库 (pluggable database,PDB)

要运行脱机逻辑迁移,请执行以下操作:

  1. 在单独的服务器上下载并安装零停机迁移软件。使用 zdmuser 运行零停机迁移软件。
  2. zdmuser 身份登录到零停机迁移服务器。
  3. 生成 ssh 密钥对。
  4. 启用从 zdmuser 到源 x86 服务器 (root/privilege-sudoer user) 以及目标 Oracle Exadata Database Service on Cloud@Customer 数据库 (opc user) 上的所有 VM 集群节点的无口令 SSH。
  5. 在 Oracle ZFS Storage Appliance (NAS) 上,创建要在迁移进行期间用作数据库数据转储的占位符的网络文件系统 (Network File System,NFS) 共享资源。
  6. 在源数据库和目标数据库的所有节点上的同一个挂载点上挂载 NFS 共享。确保所有用户对源和目标都具有读取、写入和执行 (rwx) 权限。
  7. 使用 OCI GUI 或 REST API Oracle Exadata Database Service on Cloud@Customer 中创建目标数据库。按如下方式配置目标数据库:
    • 目标数据库的名称和版本可以不同于源。
    • 请勿选择备份目标或启用自动备份。在将数据库从源迁移到目标之后,可以启用这些设置。
  8. 使用 OCI GUI 为拥有目标 Oracle Exadata Database Service on Cloud@Customer 数据库的 OCI 用户创建 API 密钥。请注意用户 OCID、租户 OCID、指纹和 OCI 区域。将对应的私钥和公钥保存在 .pem 文件中。零停机迁移将使用此 API 密钥来连接到 OCI,以便在数据库迁移期间获取目标数据库信息。
  9. 将 .pem 文件复制到零停机迁移服务器。
  10. sys 身份登录到目标 Oracle Exadata Database Service on Cloud@Customer 数据库,并确保参数 streams_pool_size 至少设置为 2G,例如:
    SQL>show parameter streams_pool_size;
    SQL>alter system set streams_pool_size=2G scope=both SID=’*’;
  11. 使用零停机迁移随附的逻辑迁移响应文件模板为迁移创建响应文件。关键参数包括:
    • TARGETDATABASE_OCIDOracle Exadata Database Service on Cloud@Customer 目标数据库的 OCID。
    • MIGRATION_METHOD: OFFLINE_LOGICAL
    • DATA_TRANSFER_MEDIUM: NFS
    • TARGETDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_CONNECTIONDETAILS_HOST :源 x86 数据库服务器的 IP/主机名。
    • SOURCEDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME :源 PDB 或非容器数据库 (container database,CDB) 的服务名称。使用 lsnrctl 查找。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID :步骤 8 中的租户 OCID。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID :步骤 8 中的用户 OCID。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT :步骤 8 中的指纹。
    • OCIAUTHENTICATIONDETAILS_PRIVATEKEYFILE :步骤 9 中 ZDM 服务器上私有密钥 .pem 文件的文件路径。
    • OCIAUTHENTICATIONDETAILS_REGIONID :步骤 8 中 OCI 用户的 OCI 区域 ID。
    • TARGETDATABASE_CONECTIONDETAILS_HOST :目标 Oracle Exadata Database Service on Cloud@Customer VM 集群上第一个 VM 的 IP/主机名。
    • TARGETDATABASE_CONNECTIONDETAILS_PORT: 1521
    • TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME :目标 Oracle Exadata Database Service on Cloud@Customer 数据库中目标可插入数据库 (pluggable database,PDB) 的服务名称。使用 lsnrctl 查找。
    • SOURCECONTAINERDATABASE_ADMINUSERNAME: system
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_HOST :源 x86 数据库服务器的 IP/主机名。
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_SERVICENAME :x86 服务器上源容器数据库的服务名称。使用 lsnrctl 查找 )。
    • DATAPUMPSETTINGS_JOBMODE: SCHEMA
    • DATAPUMPSETTINGS_FIXINVALIDOBJECTS: TRUE
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME: mig
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH :步骤 6 中的 NFS 挂载点。
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME: mig
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH :步骤 6 中的 NFS 挂载点。
    • DATAPUMPSETTINGS_CREATEAUTHTOKEN: TRUE
    • TABLESPACEDETAILS_AUTOCREATE: TRUE
    • TABLESPACEDETAILS_USEBIGFILE: TRUE
    • TABLESPACEDETAILS_EXTENTSIZEMB: 512
    • EXCLUDEOBJECTS-1: owner:PDBADMIN
  12. 运行零停机迁移模拟运行迁移作业 (-eval),以验证迁移的所有先决条件都是可能的。这将运行云迁移前指导工具 (CPAT) 来验证源数据库是否适合使用零停机迁移逻辑迁移迁移迁移迁移到 Oracle Exadata Database Service on Cloud@Customer 。在继续之前解决 CPAT 报告的问题。例如:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_11 \
    -eval
    成功运行后,继续执行下一步。
  13. 运行零停机迁移作业。例如:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_x86_db_server \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_Exadata_Database_Cloud@Customer_VM_Cluster_Node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_11