移轉至 Oracle Exadata Database Service on Dedicated Infrastructure

本節說明如何將 Oracle Exadata 工作負載移轉至 Oracle Exadata Database Service on Dedicated Infrastructure ,並將您的 VMware 應用軟體移轉至 Oracle Cloud VMware Solution

架構

此架構顯示從內部部署 Oracle Exadata 資料庫和 VMware 應用程式移轉至 Oracle Exadata Database Service on Dedicated InfrastructureOracle Cloud VMware Solution

使用 Oracle Zero Downtime Migration ,可將資料從企業內部部署移轉至雲端時,自動執行資料庫移轉,同時最短的停機時間。

使用 HCX 和 vMotion 等 VMware 工具,將您在 VMware 上執行的內部部署應用系統移轉至 Oracle Cloud VMware SolutionOracle Cloud VMware Solution 可讓您全自動導入 OCI 租用戶內執行的 VMware 軟體定義資料中心 (SDDC)。

下圖說明此參照架構。



migrate-vmware-cloud-solution-exadata-dedicated-architecture.zip

此架構支援下列元件:

  • 地區

    Oracle Cloud Infrastructure 區域是一個本地化的地理區域,包含一或多個資料中心 (稱為可用性網域)。區域與其他區域無關,因此廣大的距離可加以區隔 (跨國家或甚至洲)。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。就像傳統的資料中心網路,VCN 可讓您完全控制網路環境。VCN 可以有多個非重疊 CIDR 區塊,而您可以在建立 VCN 之後進行變更。您可以將 VCN 區隔成子網路,然後對區域或可用性網域進行調整。每個子網路都是由不與 VCN 中其他子網路重疊的連續位址範圍所組成。您可以在建立子網路後變更其大小。子網路可以是公用網路或專用子網路。

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service on Dedicated Infrastructure 在 OCI 資料中心內提供 Oracle Exadata Database Machine 服務。The Oracle Exadata Database Service on Dedicated Infrastructure service can host many Oracle databases that run in one or more VM clusters that run on a single Exadata rack in an OCI region.Oracle Exadata Database Service on Dedicated Infrastructure 是資料庫合併的理想平台。

  • Oracle Cloud VMware Solution 軟體定義資料中心 (SDDC)

    Oracle 與 VMware 合作開發經 VMware 認證的軟體定義資料中心 (SDDC) 建置,用於 Oracle Cloud Infrastructure 內。這個名為 Oracle Cloud VMware Solution 的實作使用 Oracle Cloud Infrastructure 來代管高可用性 VMware SDDC。此外,也可讓您將所有內部部署的 VMware SDDC 工作負載順暢地移轉至 Oracle Cloud VMware SolutionOracle Cloud VMware Solution 包含下列 VMware 元件:

    • VMware vSphere ESXi
    • VMware 繁體中文
    • VMware vCenter
    • VMware NSX-T
    • VMware HCX (選擇性)
  • 裸機

    Oracle Cloud VMware Solution 軟體定義資料中心 (SDDC) 包含代管 Oracle Cloud VMware Solution 的裸機伺服器。裸機伺服器支援需要大量核心、大量記憶體及高頻寬 (例如 Oracle Cloud VMware Solution) 的應用系統。您可以在裸機伺服器上部署 Oracle Cloud VMware Solution ,並與其他公有雲和企業內部部署資料中心相比,配置具有顯著效能改進的虛擬機器。

  • 服務閘道

    服務閘道可讓您從 VCN 存取其他服務,例如 Oracle Cloud Infrastructure Object Storage 。VCN 到 Oracle 服務的流量會透過 Oracle 網路光纖通道,而一律不會周遊網際網路。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,可為 VCN 與區域外部網路之間的 VCN (例如另一個 Oracle Cloud Infrastructure 區域中的 VCN、企業內部部署網路或其他雲端提供者中的網路) 之間的專用網路流量提供路徑。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 提供一個簡單的方式,在您的資料中心與 Oracle Cloud Infrastructure 之間建立專屬的專用連線。FastConnect 提供與網際網路型連線比較的高頻寬選項,以及更可靠的網路體驗。

  • 檔案儲存

    OCI 檔案儲存用於邏輯移轉,以從共用檔案系統匯入移轉的資料庫。

  • 物件儲存

    OCI Object Storage 可用於移轉期間暫時儲存的邏輯和實體移轉。

Before You Begin - 開始之前

開始之前,請檢查本設定中所使用之主要元件的版本,並複查產品文件以供日後參考。

複查需求

  • 確定來源資料庫正在執行 Oracle Database 版本 19.18 Enterprise Edition 或更新版本。
  • 目標資料庫在 Oracle Database 版本 19.18 Enterprise Edition 或更新版本上必須是 Oracle Exadata Database Service on Dedicated Infrastructure X8 或更新版本。
  • Oracle Zero Downtime Migration 必須是 21.4 或更新版本。
  • 中介儲存體必須包括 OCI Object Storage 、Oracle ZFS Storage Appliance (NAS) 和 OCI File Storage

審核文件

這個解決方案播放手冊描述如何移轉資料庫工作負載。請參閱下面的解決方案,瞭解如何移轉您的 VMware 工作負載。對於資料庫移轉的相關資訊環境、詳細資訊及參照,有幫助其他資源。

瞭解如何將工作負載的 VMware 元件移轉至 Oracle Cloud VMware Solution

檢閱 Oracle Zero Downtime Migration 資源:

複查實體移轉資源:

複查邏輯移轉資源:

複習 Oracle Database 資源:

關於必要產品與角色

此解決方案需要下列產品:

  • Oracle Cloud Infrastructure Identity and Access Management
  • OCI Compute,OCI 運算
  • OCI 物件儲存
  • OCI 檔案儲存
  • Oracle Zero Downtime Migration
  • Oracle Exadata
  • 專用基礎架構上的 Oracle Exadata Database Service

這些是每個產品所需的角色。

產品名稱:角色 需要 ...
Oracle Cloud Infrastructure Identity and Access Management :OCI_user
  • 建立用於實體移轉的認證記號
  • 建立邏輯移轉的 API 金鑰
OCI Compute :admin 建立 OCI Compute 執行處理以執行 Oracle Zero Downtime Migration 軟體
OCI Object Storage :Storage Admin 建立用於邏輯與實體移轉的 OCI 物件儲存儲存桶
OCI 檔案儲存Storage Admin 建立 OCI 檔案儲存以進行邏輯移轉
Oracle Zero Downtime Migration :opc 建立 zdmuser 以安裝並執行 Oracle Zero Downtime Migration 軟體
Oracle Zero Downtime Migration :zdmuser
  • 安裝 Oracle Zero Downtime Migration 軟體
  • 執行 Oracle Zero Downtime Migration
Oracle Exadata:root/sudoer user
  • 從網路連附儲存裝置掛載網路檔案系統共用,以匯出資料庫以進行邏輯移轉
  • Oracle Zero Downtime Migration 虛擬機器啟用無密碼 ssh
  • 執行 sudo 指令以安裝 Oracle Zero Downtime Migration 軟體代理程式
  • 執行 sudo 指令來備份或匯出資料庫
Oracle Exadata 資料庫:sys/system
  • 使用 Oracle Recovery Manager (RMAN) 進行實體移轉備份資料
  • 執行資料汲取以匯出資料庫以進行邏輯移轉
Oracle Exadata Database Service on Dedicated Infrastructure: Database Admin 建立目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫
Oracle Exadata Database Service on Dedicated Infrastructure VM Cluster Nodes: opc
  • OCI File Storage 掛載網路檔案系統共用,以匯入邏輯移轉的資料庫
  • Oracle Zero Downtime Migration 虛擬機器啟用無密碼 ssh
  • 安裝 Oracle Zero Downtime Migration 軟體代理程式
  • 執行 sudo 指令以回復或匯入資料庫
Oracle Exadata Database Service on Dedicated Infrastructure Database: sys/system
  • 使用 Oracle Recovery Manager (RMAN) 回復資料,以進行實體移轉
  • 執行資料汲取以匯入邏輯移轉的資料庫

請參閱 Oracle 產品、解決方案和服務,以取得您需要的內容。

關於邏輯與實體移轉

Oracle Zero Downtime Migration 支援兩種類型的資料庫移轉,從 Oracle Exadata 移轉至 Oracle Exadata Database Service on Dedicated Infrastructure :邏輯移轉與實體移轉。

邏輯移轉使用 Oracle Data Pump 和 Oracle GoldenGate 的組合,而實體移轉則使用 Oracle Recovery Manager (RMAN) Oracle Data Guard 的組合。下表說明應使用邏輯或實體移轉的情況。

邏輯移轉 實體移轉
移轉一些可插拔資料庫和 (或) 綱要時建議使用。 建議在移轉完整資料庫時使用。例如,含有所有可插式資料庫的容器資料庫,或是原封不動地移轉。
可移轉選擇性可插式資料庫 (PDB) 和 (或) 綱要。 容器資料庫將會移轉至容器資料庫,而非容器資料庫將會移轉至非容器資料庫。
來源和目標上的 Sys 密碼可以不同。來源與目標之間的資料庫名稱可以不同。 來源和目標上的 Sys 密碼和資料庫名稱應該相同。來源與目標上的 DB_UNIQUE_NAME 必須不同。
資料庫可以在移轉期間進行升級。 資料庫在移轉時無法升級。

使用邏輯移轉進行移轉

本節說明如何執行離線邏輯移轉。如需線上移轉,請參閱「複查文件」一節。

執行移轉之前,請注意以下事項。

  • Oracle Exadata 上的來源資料庫不需要加密。Oracle Zero Downtime Migration 會在移轉期間將目標資料庫加密。
  • 來源和目標資料庫不需要具有相同的 sys 密碼、公事包密碼、資料庫版本、資料庫名稱和修正程式層級。
  • Oracle Zero Downtime Migration allows migrating certain pluggable databases (PDBs) and/or schemas to pluggable databases in Oracle Exadata Database Service on Dedicated Infrastructure.
  • 邏輯移轉需要共用檔案系統。在邏輯移轉期間,Oracle Zero Downtime Migration 將不會將資料直接匯出至 OCI Object Storage 。在來源 Exadata 資料庫上,Oracle Zero Downtime Migration 會將資料匯出至共用檔案系統 (網路檔案系統或 Oracle Advanced Cluster File System)。接著,匯出的資料會上傳至 OCI Object StorageOracle Zero Downtime Migration ,接著將資料傾印從 OCI Object Storage 移至 OCI File Storage 。最後,Oracle Exadata Database Service on Dedicated Infrastructure 可以透過網路檔案系統從 OCI File Storage 匯入資料。
  • 內部部署 Oracle Exadata 可以執行單一執行處理與 RAC 資料庫。Oracle Exadata Database Service on Dedicated Infrastructure runs RAC databases.在資料庫移轉期間,Oracle Zero Downtime Migration 會視需要將單一執行處理轉換成 RAC 資料庫。
  • 在企業內部部署的 Oracle Exadata 中,可以選擇使用 Oracle 通透資料加密來加密資料庫。將資料庫從 Exadata 移轉至 Dedicated Infrastructure 上的 Oracle Exadata Database Service 時,一律會加密目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫。
  • 下列步驟假設在安裝 Oracle Exadata 的資料中心與設定 Oracle Exadata Database Service on Dedicated InfrastructureOracle Zero Downtime Migration 虛擬機器的 OCI 虛擬雲端網路之間具有直接的連線 (透過 FastConnect 或 IPSec VPN,如架構圖所示)。

下列步驟描述如何執行離線邏輯移轉。

  1. 在 OCI 主控台中,於將設定目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫的相同 VCN 中建立一個運算執行處理。
    此運算執行處理可以是任何型態,至少需要兩個 OCPU 和 16GB RAM,即可執行 Oracle Linux 7。9 作業系統。此虛擬機器將用來執行 Oracle Zero Downtime Migration 軟體。
  2. 依照「檢閱文件」一節中的 Oracle Zero Downtime Migration 安裝文件,下載並安裝 OCI 運算執行處理上的 Oracle Zero Downtime Migration 21.4 軟體。
    zdmuser 身分執行 Oracle Zero Downtime Migration 軟體。
  3. zdmuser 身分登入執行 Oracle Zero Downtime Migration 軟體的運算執行處理,然後產生 SSH 金鑰組。從 zdmuser 帳戶啟用無密碼 ssh 至來源 Exadata 資料庫 (rootprivilege-sudoer user) 上的所有節點,以及目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫 opc user 帳戶上的所有 VM 叢集節點。
  4. 確定 Oracle Zero Downtime Migration VM 可以使用主機名稱和 IP 位址與來源資料庫主機通訊。請檢查下列各項:
    • 視需要修改 VCN DNS 解析器或 Oracle Zero Downtime Migration VM 中的 /etc/hosts 檔案。
    • 確認有安全規則允許 Oracle Zero Downtime Migration VM 連線至預設監聽器連接埠 1521 和 ssh 連接埠 22 上的來源資料庫。
    • 確定 Oracle Zero Downtime Migration VM 可連線預設監聽器連接埠 1521 與 ssh 連接埠 22 上目標 Oracle Exadata Database Service on Dedicated Infrastructure 主機。
  5. 在 Oracle ZFS Storage Appliance 或網路連接儲存裝置上,建立網路檔案系統共用,以作為移轉進度時傾印資料庫資料的位置。
  6. 將網路檔案系統共用掛載到 Exadata 資料庫的所有節點。
    確定所有使用者都具備讀取、寫入、執行 (rwx) 權限。記下掛載點。
  7. 在 OCI 主控台中,建立一個 OCI File Storage
    記下掛載目標、匯出以及 IP 位址。Oracle Exadata Database Service on Dedicated Infrastructure 備份網路預設含有 IP 位址。
  8. 使用 IP 位址並從步驟 7 匯出,即可透過網路檔案系統在 Oracle Exadata Database Service on Dedicated Infrastructure VM 叢集的所有節點上掛載此檔案儲存。
    確定虛擬雲端網路包括安全原則,允許 Oracle Exadata Database Service on Dedicated Infrastructure 備份網路上的網路檔案系統協定。記下掛載點。
  9. Create a target Oracle Exadata Database Service on Dedicated Infrastructure database using the OCI console or REST API.依照下列方式設定資料庫:
    • 新目標資料庫的名稱可以與來源資料庫的名稱不同。
    • 新資料庫可以是比來源資料庫更新的版本。
    • 提供 admin 使用者的密碼。記下密碼。
    • 請勿選取備份目的地,或在建立資料庫期間啟用自動備份。這些設定值可以在資料庫移轉之後啟用。
    在建立資料庫之後,請將資料庫 OCID 記下來。
  10. 在 OCI 主控台中,如果還沒有 OCI Object Storage 儲存桶,請加以建立。
    請注意 Swift URL、物件儲存命名空間和儲存桶名稱。
  11. 您可以透過 OCI 主控台,為擁有目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫的 OCI 使用者建立 API 金鑰,還具備將資料上傳到步驟 10 中建立之 OCI Object Storage 儲存桶的權限。
    請注意使用者 OCID、租用戶 OCID、指紋及 OCI 區域。在 PEM 檔案上儲存對應的私密與公開金鑰。Oracle Zero Downtime Migration 將使用此 API 金鑰連線至 OCI,以在資料庫移轉期間取得目標資料庫資訊,以及將資料傾印上傳至 OCI Object Storage
  12. 將上一個步驟的 PEM 檔案複製到 Oracle Zero Downtime Migration VM。
  13. sys 使用者身分登入來源 Exadata 資料庫,以確保參數 Streams_Pool_Size 至少設為 2G,例如:
    SQL>show parameter streams_pool_size;
    SQL>alter system set streams_pool_size=2G scope=both SID=’*’;                  
  14. 使用 Oracle Zero Downtime Migration 的「零停機移轉」邏輯移轉回應檔樣板,建立移轉的回應檔。索引鍵參數是:
    • TARGETDATABASE_OCIDOracle Exadata Database Service on Dedicated Infrastructure 目標資料庫的 OCID。
    • MIGRATION_METHOD: OFFLINE_LOGICAL
    • DATA_TRANSFER_MEDIUM: OSS
    • TARGETDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_CONNECTIONDETAILS_HOST :來源 Exadata 資料庫上第一個節點的 IP/ 主機名稱。
    • SOURCEDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME :來源 PDB 或非容器資料庫 (非 CDB) 的服務名稱。使用 lsnrctl 來尋找。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID :步驟 11 的租用戶 OCID。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID :步驟 11 的使用者 OCID。
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT :來自步驟 11 的指紋。
    • OCIAUTHENTICATIONDETAILS_PRIVATEKEYFILE :從步驟 12 前往 Oracle Zero Downtime Migration 伺服器上私密金鑰 PEM 檔案的檔案路徑。
    • OCIAUTHENTICATIONDETAILS_REGIONID :步驟 11 中 OCI 使用者的 OCI 區域 ID。
    • TARGETDATABASE_CONNECTIONDETAILS_PORT: 1521
    • TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME :目標資料庫中目標可插拔資料庫的服務名稱。使用 lsnrctl 來尋找。
    • SOURCECONTAINERDATABASE_ADMINUSERNAME: system
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_HOST :來源 Exadata 資料庫上第一個節點的 IP/ 主機名稱。
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_SERVICENAME :Exadata 資料庫中來源容器資料庫的服務名稱。請使用 lsnrctl 來尋找)。
    • DATAPUMPSETTINGS_JOBMODE: SCHEMA
    • DATAPUMPSETTINGS_FIXINVALIDOBJECTS: TRUE
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME: mig
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH :從步驟 6 開始掛載網路檔案系統。
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME: mig.
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH :從步驟 8 掛載網路檔案系統。
    • DATAPUMPSETTINGS_CREATEAUTHTOKEN: TRUE
    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE: 4
    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE: 4
    • DATAPUMPSETTINGS_DATABUCKET_NAMESPACE :步驟 10 的 OCI 物件儲存命名空間。
    • DATAPUMPSETTINGS_DATABUCKET_BUCKETNAME :從步驟 10 OCI Object Storage 儲存桶名稱。
    • TABLESPACEDETAILS_AUTOCREATE: TRUE
    • TABLESPACEDETAILS_USEBIGFILE: TRUE
    • TABLESPACEDETAILS_EXTENTSIZEMB: 512
    • EXCLUDEOBJECTS-1: owner:PDBADMIN
  15. 執行 Oracle Zero Downtime Migration 模擬執行移轉工作 (-eval),驗證所有進行移轉的先決條件。這會執行雲端移轉前建議程式工具 (CPAT),驗證來源資料庫是否適合透過 Oracle Zero Downtime Migration 邏輯移轉至 Oracle Exadata Database Service on Dedicated Infrastructure 。繼續之前,請先解決 CPAT 所報告的問題。例如:
    
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -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_dedicated_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_14 \
    -eval
    此命令會要求 sys 使用者的來源和目標資料庫密碼。
    順利執行模擬移轉之後,請繼續進行下一個步驟。
  16. 執行乾式移轉成功之後,請執行 Oracle Zero Downtime Migration 工作。例如:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -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_dedicated_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_14
    此命令會要求 sys 使用者的來源和目標資料庫密碼。

使用實體移轉進行移轉

本節說明如何執行離線實體移轉。如需線上移轉,請參閱「複查文件」一節。

在執行實體移轉之前,請先記下下列內容。

  • Oracle Database 19.16 中的表格空間加密管理有一個新參數。此參數可能會導致實體移轉發生衝突。複查「複查文件 (Review Documentation)」區段中的「表格空間加密管理 (Tablespace Encryption Management)」,瞭解詳細資訊。
  • 內部部署 Oracle Exadata 可以執行單一執行處理與 RAC 資料庫。Oracle Exadata Database Service on Dedicated Infrastructure runs RAC databases.在資料庫移轉期間,Oracle Zero Downtime Migration 會視需要將單一執行處理轉換成 RAC 資料庫。
  • 移轉之前,必須先在來源資料庫定義通透資料加密 (TDE) 公事包,即使來源資料庫未加密也一樣。
  • 在企業內部部署的 Oracle Exadata 中,可以選擇使用 Oracle 通透資料加密來加密資料庫。將資料庫從 Exadata 移轉至 Dedicated Infrastructure 上的 Oracle Exadata Database Service 時,一律會加密目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫。
  • The following steps assume there is direct network connectivity between the Data Center where Exadata is installed, and the OCI Virtual Cloud Network where the Oracle Exadata Database Service on Dedicated Infrastructure and the Oracle Zero Downtime Migration virtual machine is configured (via FastConnect or IPSec VPN as shown in the architecture diagram).
  • Oracle Exadata 上的來源資料庫不需要加密。Oracle Zero Downtime Migration 會在移轉期間將目標資料庫加密。
  • 來源和目標資料庫上的 sys 密碼、公事包密碼、資料庫版本和修正程式層級必須相同。
  • Oracle Zero Downtime Migration 會將容器資料庫 (CDB) 移轉至 CDB ,將非 CDB 移轉至非 CDB
  • Oracle Zero Downtime Migration 使用 Oracle Database Backup Cloud Service ,將來源 Exadata 資料庫備份至 OCI Object StorageOracle Zero Downtime Migration ,然後從此備份回復目標資料庫。

下列步驟描述如何執行離線實體移轉。

  1. 在 OCI 主控台中,於將設定目標資料庫的相同子網路中建立運算執行處理。
    此運算執行處理可以是任何型態,至少需要兩個 OCPU 和 16GB RAM,即可執行 Oracle Linux 7。9 作業系統。此虛擬機器將用來執行 Oracle Zero Downtime Migration 軟體。
  2. 依照「檢閱文件」一節中的 Oracle Zero Downtime Migration 安裝文件,下載並安裝 OCI 運算執行處理上的 Oracle Zero Downtime Migration 21.4 軟體。
    zdmuser 身分執行 Oracle Zero Downtime Migration 軟體。
  3. zdmuser 的身分登入執行 Oracle Zero Downtime Migration 軟體的運算執行處理,然後產生 SSH 金鑰組。從 zdmuser 帳戶啟用無密碼 ssh 至來源 Exadata 資料庫 (rootprivilege-sudoer user) 上的所有節點,以及目標資料庫 opc user 帳戶上的所有 VM 叢集節點。
  4. 確定 Oracle Zero Downtime Migration VM 可以使用主機名稱和 IP 位址與來源資料庫主機通訊。請檢查下列各項:
    • 視需要修改 VCN DNS 解析器或 Oracle Zero Downtime Migration VM 中的 /etc/hosts 檔案。
    • 確認有安全規則允許 Oracle Zero Downtime Migration VM 連線至預設監聽器連接埠 1521 和 ssh 連接埠 22 上的來源資料庫。
    • 確定 Oracle Zero Downtime Migration VM 可連線預設監聽器連接埠 1521 和 ssh 連接埠 22 上的目標資料庫主機。
  5. 在 OCI 主控台中,如果還沒有 OCI Object Storage 儲存桶,請加以建立。
    請注意 Swift URL、物件儲存命名空間和儲存桶名稱。
  6. 在 OCI 主控台中,為 OCI_user 上傳資料至 OCI 物件儲存儲存桶建立認證權杖。
    請注意,記號將不會再顯示。
  7. 確保安全政策允許 OCI_user 將資料上傳到 OCI Object Storage 儲存桶。
  8. Create an Oracle Exadata Database Service on Dedicated Infrastructure target database using the OCI GUI or REST API.依照下列方式設定目標資料庫:
    • 目標和來源資料庫的名稱必須相同,但 DB_UNIQUE_NAME 不同。
    • 來源資料庫和目標資料庫上的 sys 密碼、公事包密碼、資料庫版本、修正程式層級以及時區檔案版本必須相同。
    • 請勿選取「備份目的地」或啟用「自動備份」。這些設定值可以在資料庫移轉之後啟用。
  9. 驗證來源資料庫在「存檔日誌模式」中設定。如果未啟用 Archivelog,請參閱下方的啟用 Archivelog 模式
  10. 如果來源資料庫未加密,請參閱下方的設定通透資料加密 (TDE) 金鑰存放區。資料不需要加密,實體移轉只需要使用 TDE 金鑰存放區。確定金鑰存放區 (公事包) 密碼與用來在 Oracle Exadata Database Service on Dedicated Infrastructure 中建立目標資料庫的 sys/wallet 密碼相同。
  11. 建立 Oracle Zero Downtime Migration 的回應檔以執行移轉。索引鍵參數包括:
    • TGT_DB_UNIQUE_NAME :目標 Oracle Exadata Database Service on Dedicated Infrastructure 資料庫的資料庫唯一名稱。
    • MIGRATION_METHODOFFLINE_PHYSICALONLINE_PHYSICAL
    • DATA_TRANSFER_MEDIUM: OSS
    • PLATFORM_TYPE: EXACS
    • 主機:步驟 5 中 OCI 物件儲存命名空間的 Swift URL,其格式為:https://swiftobjectstorage.<region>.oraclecloud.com/v1/<namespace>>.舉例而言:
      https://switfobjectstorage.us-phoenix-1.oraclecloud.com/v1/axwytvijqqld
    • OPC_CONTAINER :從步驟 4 OCI Object Storage 儲存桶名稱。
    • SHUTDOWN_SRC: TRUE
  12. 執行 Oracle Zero Downtime Migration 乾式執行移轉工作 (-eval),驗證所有可能的移轉先決條件。例如:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -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_dedicated_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_10 \
    -backupuser “OCI_user_id_for_user_allowed_to_upload_data_to_OCI_object_storage_bucket”
    -eval
    此指令會要求輸入兩個密碼。第一個密碼是來源資料庫的 sys 密碼。第二個密碼是上傳資料至 OCI 物件儲存儲存桶之使用者的 OCI_user 密碼。請勿在此處輸入使用者密碼,請改為輸入步驟 6 的認證記號。
    成功執行乾燥後,請繼續下一個步驟。
  13. 執行 Oracle Zero Downtime Migration 工作。例如:
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -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_dedicated_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_10 \
    -backupuser “OCI_user_id_for_user_allowed_to_upload_data_to_OCI_object_storage_bucket
    此指令會要求輸入兩個密碼。第一個密碼是來源資料庫的 sys 密碼。第二個密碼是上傳資料至 OCI 物件儲存儲存桶之使用者的 OCI_user 密碼。請勿在此處輸入使用者密碼,請改為輸入步驟 6 的認證記號。
離線實體移轉已完成。

啟用存檔日誌模式

Oracle Zero Downtime Migration 實體移轉的來源資料庫必須啟用存檔日誌模式。這些步驟將描述如何在來源資料庫上設定「存檔日誌」模式。

  1. 驗證來源資料庫未在 Archivelog 模式中設定。
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    NOARCHIVELOG
  2. 設定來源資料庫日誌存檔目的地。因為此組態適用於 Exadata 中執行的資料庫,所以 Archivelog 目的地必須是 Oracle RECO ASM 磁碟群組。
    SQL> alter system set log_archive_dest_1='LOCATION=+RECOC1' scope=both SID='*';
    System altered.
    SQL> select destination,STATUS from v$archive_dest where statuS='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    +RECOC1
    VALID
  3. 關閉資料庫。
    $ srvctl stop database -d db_name
  4. 開始在第一個節點上掛載資料庫。
    SQL> startup mount;
    ORACLE instance started.
  5. 啟用存檔日誌模式。
    alter database archivelog;
  6. 開啟資料庫。
    alter database open;
  7. 確認資料庫為「存檔日誌」模式。
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    ARCHIVELOG
    SQL> select destination,STATUS from v$archive_dest where status='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    +RECOC1
    VALID
  8. 在第二個節點上重新啟動資料庫。
    $ srvctl start instance -d db_name -n hostname_node2
  9. 在兩個節點上驗證可插式資料庫為開啟、讀取、寫入模式。如果可插式資料庫未開啟,請同時在兩個節點上開啟可插式資料庫,然後儲存狀態。
    SQL> Alter pluggabale database pdb_name open instances=all;
    SQL>Alter pluggable database pdb_name save state instances=all;

設定 Transparent Data Encryption (TDE) 金鑰存放區

Oracle Zero Downtime Migration 實體移轉需要 auto_login TDE 加密金鑰存放區 / 公事包 (即使來源資料庫未加密)。此金鑰存放區的密碼必須與目標資料庫金鑰存放區的密碼相同。以下步驟描述如何在來源資料庫上設定金鑰存放區。

  1. 檢查資料庫是否已設定預設金鑰存放區位置。
    SQL> select * from v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    NOT_AVAILABLE UNKNOWN SINGLE NONE UNDEFINED
    1
    SQL>
    此輸出顯示未設定任何金鑰存放區或公事包。
  2. 在兩個 Exadata 節點上設定 oracle 使用者的變數 TNS_ADMIN
    $ORACLE_HOME/network/admin/db_name
  3. 建立一個目錄,將 sqlnet.ora 檔案儲存在 TNS_ADMIN 所指向的 Exadata 節點上。
    mkdir -p $ORACLE_HOME/network/admin/db_name
  4. TNS_ADMIN 指向的目錄中建立 sqlnet.ora 檔案,並在兩個 Exadata 節點上包含下列內容。
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
     (METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/db_name/wallet)))
  5. 建立一個目錄,將金鑰存放區或公事包儲存在 Exadata 節點上 sqlnet.ora 所指向的位置。
    $mkdir -p $/u01/app/oracle/admin/db_name/wallet
  6. 在第一個節點上,建立使用密碼保護的金鑰存放區。
    目標資料庫金鑰存放區也必須使用此密碼加以設定。
    SQL>administer key management create keystore '/u01/app/oracle/admin/db_name/wallet' identified by keystore_password;
  7. 在第一個節點上,開啟金鑰存放區。
    如果來源資料庫是非 CDB,請移除 container = ALL
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY keystore_password container = ALL;
  8. 建立金鑰存放區備份。
    如果來源資料庫是非 CDB,請移除 container = ALL
    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password with backup container = ALL;
  9. 確認已建立並備份金鑰存放區。
    SQL> SELECT * FROM v$encryption_keys;
    Snip…
    ACTIVATING_PDBNAME
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    ATOlrcGaa0/iv/dFeRSkNSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    db_name
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    1 86B637B62FDF7A65E053F706E80A27CA
    Snip…
  10. 從步驟 7 中建立的金鑰存放區建立 auto_login 金鑰存放區。
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE '/u01/app/oracle/admin/db_name/wallet' IDENTIFIED BY keystore_password ;
  11. 從步驟 7 關閉金鑰存放區。
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY keystore_password;
  12. 確認 auto_login 金鑰存放區仍然開啟。
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    OPEN AUTOLOGIN SINGLE NONE NO
  13. 建立從節點 1 到節點 2 的公事包檔案。
    cd /u01/app/oracle/admin/db_name/wallet.
    scp * node_2:/u01/app/oracle/admin/db_name/wallet
  14. 在兩個 Exadata 節點上重新啟動資料庫。
    $ srvctl stop database -d db_name
    $ srvctl start database -d db_name
    $ srvctl status database -d db_name
    Instance db_name1 is running on node node_1
    Instance db_name2 is running on node node_2
  15. 確認兩個節點上皆開啟 auto_login 公事包。
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet/
    OPEN AUTOLOGIN SINGLE NONE NO
    1
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    OPEN AUTOLOGIN SINGLE UNITED NO
    2
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    OPEN_NO_MASTER_KEY AUTOLOGIN SINGLE UNITED UNDEFINED
    3
    SQL>
  16. 在兩個節點上驗證可插式資料庫為開啟、讀取、寫入模式。如果無法開啟可插式資料庫,請同時在兩個節點上開啟可插式資料庫,然後儲存狀態。
    SQL> Alter pluggabale database pdb_name open instances=all;
    SQL>Alter pluggable database pdb_name save state instances=all;