使用邏輯移轉進行移轉

這些步驟描述如何執行離線邏輯移轉。線上邏輯移轉需要執行 Oracle GoldenGate 的額外伺服器,這可確保資料庫在移轉期間一律處於線上狀態。在執行離線邏輯移轉之前,請注意下列事項。

  • x86 伺服器上的來源資料庫不需要加密。Oracle Zero Downtime Migration 會在移轉期間加密目標資料庫。
  • 來源資料庫和目標資料庫上的 sys 密碼、資料庫版本和修正程式層級可以不同。
  • 您可以在移轉期間升級資料庫。
  • Zero Downtime Migration logical migrations will allow the migration of certain pluggable database (PDB) and or schemas to a pluggable database (PDB) in Oracle Exadata Database Service on Cloud@Customer.

若要執行離線邏輯移轉,請執行下列動作:

  1. 下載並安裝「零停機移轉」軟體到個別的伺服器上。使用 zdmuser ,執行「零停機移轉」軟體。
  2. zdmuser 的身分登入您的「零停機移轉」伺服器。
  3. 產生 ssh 金鑰組。
  4. 啟用無密碼 ssh,從 zdmuser 到來源 x86 伺服器 (root/privilege-sudoer user),以及目標 Oracle Exadata Database Service on Cloud@Customer 資料庫 (opc user) 上的所有 VM 叢集節點。
  5. 在 Oracle ZFS Storage Appliance (NAS) 上,建立在移轉進行時要用來作為資料庫資料傾印之預留位置的網路檔案系統 (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 或非容器資料庫 (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 資料庫中目標可插拔資料庫 (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