Oracle ZDM 26.1 即時部署:使用 Oracle Key Vault (OKV) 進行端對端實體 PDB 複製

簡介

Oracle Zero Downtime Migration (ZDM) 26.1 引進「即時部署」,無需使用專用的 ZDM 伺服器,即可直接從來源或目標資料庫主機進行資料庫移轉。此版本也增強了與 Oracle Key Vault (OKV) 的整合,並改善了通透資料加密 (TDE) 公事包移轉功能。

舊版 ZDM 版本的限制

在 Oracle ZDM 26.1 之前:

ZDM 26.1 的新功能

ZDM 26.1 支援下列公事包移轉案例:

ZDM 26.1 會偵測來源資料庫是否設定為使用 OKV 公事包並下載 TDE 金鑰,然後再將它們移轉至目標資料庫。如果目標資料庫也設定了 OKV 公事包,ZDM 會將移轉的 TDE 金鑰上傳至目標 OKV 公事包。將 ZDM_SKIP_TDE_WALLET_MIGRATION 參數保留為預設值 (FALSE),讓 ZDM 在移轉工作流程期間自動移轉 TDE 公事包。

圖像

目標

版本相容性

本教學課程示範使用 Oracle AI Database 26ai 和 Oracle Key Vault (OKV) 21.14 進行端對端實體 PDB 複製和自動 TDE 公事包移轉的 Oracle Zero Downtime Migration (ZDM) 26.1 Instant Deploy 。

本教學課程的主要工作流程已使用下列驗證:

注意:本教學課程中的部分區段僅適用於舊版的 Oracle Database 以供參考。這些區段已清楚標示為僅限 12.1 或僅限 18c 和 19c ,使用 Oracle AI Database 26ai 時可略過。

移轉前的目前環境

在起始 Oracle Zero Downtime Migration (ZDM) 工作流程之前,請確認來源和目標環境都已正確地設定實體 PDB 複製。下表摘要說明此教學課程中使用的環境,以及移轉前的主要元件狀態。

圖像

必備條件

注意:開始本教學課程之前,請確定您的環境符合所有 Oracle Zero Downtime Migration (ZDM) 26.1 先決條件。如需完整的先決條件清單,請參閱 Oracle ZDM 文件中的準備資料庫移轉小節:

https://docs.oracle.com/en/database/oracle/zero-downtime-migration/26.1/zdmug/preparing-for-database-migration.html#GUID-25B07C59-8143-41CB-B431-3D9225CCFDD6

設定 Oracle Zero Downtime Migration (ZDM) 26.1 即時部署

環境

本教學課程將使用 OCI Oracle Base Database Service 與 Oracle AI Database 26ai (版本 23.26.2.0.0) 進行示範。

來源:主機名稱:sourcedb,資料庫名稱:ORADB,資料庫唯一名稱:ORADB_src TDE 是由 Oracle Key Vault (OKV) 管理。

圖像 圖像

目標:主機名稱:targetdb,資料庫名稱:ORADB,資料庫唯一名稱:ORADB_tgt TDE 使用以檔案為基礎的公事包。

圖像 圖像

移轉工作流程

步驟 1:從 Oracle ZDM 產品頁面 (版本 26.1) 下載最新的 Oracle Zero Downtime Migration (ZDM) 26.1 版本。

從 Oracle Zero Downtime Migration 下載頁面下載最新的 Oracle Zero Downtime Migration (ZDM) 26.1 軟體。軟體會透過 Oracle Software Delivery Cloud (OSDC) 分配。使用您的 Oracle Single Sign-On (SSO) 帳戶登入,接受授權合約,然後下載最新的 ZDM 版本套裝程式 (例如 V1055491-01.zip)。如需最新的下載與文件,請參閱下列資源:

Oracle Zero Downtime Migration Download:
https://www.oracle.com/database/technologies/rac/zdm-downloads.html
Oracle Zero Downtime Migration 26.1 Documentation:
https://docs.oracle.com/en/database/oracle/zero-downtime-migration/26.1/index.html

步驟 2. 將 V1055491-01.zip 檔案複製到具有足夠可用儲存空間的目錄中。

下載軟體之後,請將 ZIP 存檔複製到來源資料庫主機 (如果您計畫使用目標的「即時部署」,請複製目標主機),然後在下一個步驟繼續擷取。

圖像

解壓縮 ZIP 檔會建立 zdm26.1 子目錄。擷取的 ZDM 軟體位於 /opt/opc/zdm/zdm26.1。

步驟 3:使用其他主機的名稱和 IP 位址更新每個主機上的 /etc/hosts 檔案。

將來源主機名稱和 IP 資訊新增至目標主機的 /etc/hosts 檔案。

圖像

將目標主機名稱和 IP 資訊新增至來源主機的 /etc/hosts 檔案。

圖像

步驟 4:複製來源主機上作業系統使用者的 SSH 公開金鑰 (在此情況下為 opc),然後將它新增至目標主機上作業系統使用者 (在此情況下亦為 opc) 的 authorized_keys 檔案中。

來源主機

圖像

目標主機

圖像

測試從來源到目標資料庫主機的 SSH 連線:

圖像

確認已停用 SSH 權限使用者的 TTY。如果停用 TTY,則下列指令會傳回來自遠端主機的日期,而不會發生任何錯誤:

圖像

步驟 5:確認來源資料庫上的 TDE 是由 Oracle Key Vault (OKV) 所管理。

圖像

步驟 6:設定目標資料庫的 Oracle Key Vault (OKV)。

1:將目標資料庫註冊為 Oracle Key Vault (OKV) 端點。

圖像

圖像

2:複製 Oracle Key Vault (OKV) 註冊記號。

圖像

3:註冊目標資料庫端點並下載 Oracle Key Vault (OKV) 端點軟體。

圖像 圖像

4:在目標主機上建立 OKV 的必要目錄:

圖像

5:安裝 Oracle Key Vault 端點 JAR 檔案:

圖像 圖像

6:將來源虛擬公事包指派給目標端點:

圖像 圖像 圖像

7:將目前的公事包上傳至 Oracle Key Vault (OKV) (從檔案型公事包移轉至 OKV):

驗證 OKV 連線之後,將目前的公事包上傳至 OKV。若要驗證目前的 WALLET_ROOT 位置,請執行下列查詢:

圖像

識別公事包位置之後,將現有的公事包複製到 WALLET_ROOT/tde:

圖像

複製完成後,將公事包與儲存在 WALLET_ROOT/tde 中的公事包搭配使用 WALLET_ROOT/okv/bin/okvutil,上傳至 OKV:

圖像

8:將 OKV 密碼新增至金鑰存放區,以自動登入 OKV 金鑰存放區。(在所有節點上執行):

圖像

9:新增私密金鑰以使用外部存放區 (在所有節點上執行):

圖像

10:更新資料庫初始化參數:

更新 wallet_root 和 tde_configuration 初始化參數以供 OKV 使用。請注意,tde_configuration 初始化參數取決於 wallet_root 參數。由於 wallet_root 參數具有 SPFILE 範圍,因此變更必須重新啟動資料庫才能生效。

此外,設定 wallet_root 和 tde_configuration 會覆寫 sqlnet.ora 中的 ENCRYPTION_WALLET_LOCATION 設定。

更新資料庫初始化參數之前,請先執行 spfile 的備份。

圖像

11:sqlnet.ora 和 RAC 資料庫環境設定值 (僅限 12.1):

由於 12.1 中沒有 wallet_root 和 tde_configuration init.ora 參數,因此需要變更 sqlnet.ora 和 RAC 資料庫環境設定值。

Sqlnet.ora:

Change only the method under the ENCRYPTION_WALLET_LOCATION entry to HSM:

ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=HSM)
(METHOD_DATA=(DIRECTORY=/var/opt/oracle/dbaas_acfs/DBNAME/tde_wallet)))

RAC 資料庫環境設定值:新增 ORACLE_BASE 和 ORACLE_UNQNAME 環境變數至 RAC 資料庫環境設定值:

[opc@targetdb ~]$ srvctl getenv database -d DBNAMEUNIQUE
DBNAMEUNIQUE:
TNS_ADMIN=/u02/app/oracle/product/12.1.0/dbhome_1/network/admin/DBNAME
bash-3.2$ srvctl setenv database -d DBNAMEUNIQUE -T "ORACLE_BASE=/u02/app/oracle"
bash-3.2$ srvctl setenv database -d DBNAMEUNIQUE -T "ORACLE_UNQNAME=DBNAMEUNIQUE"
bash-3.2$ srvctl getenv database -d DBNAMEUNIQUE

12:重新啟動資料庫。

[opc@targetdb ~]$ srvctl stop database -d DBNAMEUNIQUE
[opc@targetdb ~]$ srvctl start database -d DBNAMEUNIQUE

13:將 TDE 金鑰存放區移轉至 Oracle Key Vault (OKV)。

在一個資料庫節點上執行下列命令,將 TDE 軟體金鑰存放區移轉至 Oracle Key Vault (OKV)。

SQL>ADMINISTER KEY MANAGEMENT set key identified by "<OKV-pwd>" force keystore migrate using "TDE-wallet-password";

圖像

命令順利傳回之後,請重新啟動資料庫來確認與 Oracle Key Vault 的通訊是否正常運作:

[opc@targetdb ~]$ srvctl stop database -d DBNAMEUNIQUE
[opc@targetdb ~]$ srvctl start database -d DBNAMEUNIQUE

14:驗證 Oracle Key Vault (OKV) 組態

執行下列查詢,確認 Oracle Key Vault (OKV) 組態已正確設定,且資料庫可存取外部金鑰存放區。

圖像

步驟 7:在來源資料庫主機上建立 ZDM 回應檔。此檔案定義移轉組態,包括來源和目標資料庫資訊、Oracle Key Vault (OKV) 參數,以及「實體 PDB 複製」設定值。

下列範例顯示用於此移轉的回應檔:

[opc@sourcedb ~]$ more /opt/opc/zdm/zdm26.1/template/26.1.0/zdm_physical_PDB_Cloning.rsp
ZDM_SRC_DB_OKV_HOME=/u01/app/oracle/admin/ORADB_src/okv_home/okv
ZDM_TGT_DB_OKV_HOME=/u01/app/oracle/admin/ORADB_tgt/okv_home/okv
ZDM_SRC_DB_OKV_VIRTUAL_WALLET_NAME=sourcedbwallet
ZDM_TGT_DB_OKV_VIRTUAL_WALLET_NAME=sourcedbwallet
ZDM_SKIP_TDE_WALLET_MIGRATION=FALSE
PLATFORM_TYPE=VMDB
TGT_DB_UNIQUE_NAME=ORADB_tgt
MIGRATION_METHOD=ONLINE_PHYSICAL
DATA_TRANSFER_MEDIUM=DBLINK
ZDM_PDB_CLONE_METHOD=REFRESHABLE
ZDM_SRC_PDB_NAME=ORADB_PDB1
ZDM_TGT_PDB_NAME=ORADB_PDB1
ZDM_TGT_DBLINK_NAME=clonedblink
ZDM_TGT_DBLINK_USERNAME=
ZDM_TGT_DBLINK_PASSWORD_WALLET=
ZDM_PDB_REFRESH_INTERVAL=60
ZDM_SWITCHOVER=FALSE
ZDM_SRC_DB_RESTORE_SERVICE_NAME=ORADB_PDB1

步驟 8:在來源資料庫主機上執行下列命令來評估移轉,並驗證來源和目標環境是否已準備好進行移轉。

[opc@sourcedb ~]$ /opt/opc/zdm/zdm26.1/zdmcli migrate database \
> -rsp /opt/opc/zdm/zdm26.1/template/26.1.0/zdm_physical_PDB_Cloning.rsp \
> -sourcedb ORADB_src \
> -sourcenode sourcedb \
> -targethome /u01/app/oracle/product/23.0.0.0/dbhome_1 \
> -tdekeystorepasswd \
> -tgttdekeystorepasswd \
> -targetnode targetdb \
> -schedule NOW \
> -eval
Enter source database ORADB_src SYS password:
Enter source database ORADB_src TDE keystore password:
Enter target container database TDE keystore password:
Migration evaluation job started
Result file path: /opt/opc/zdm/zdm26.1/zdmbase/chkbase/scheduled/job-6-2026-06-27-09:08:10.log
======================JOB_EXECUTION_DETAILS_START======================
User: opc
Client: dbSysyabixhpq
 ...............................................
 .........................

注意:

如果 Oracle Key Vault (OKV) 端點密碼與 TDE 金鑰存放區密碼相同,則 -tdekeystorepasswd 和 -tgttdekeystorepasswd 選項就已足夠。

如果 OKV 端點密碼與 TDE 金鑰存放區密碼不同,請同時指定下列選項:

這些選項可讓 ZDM 在移轉公事包時,使用 Oracle Key Vault 端點與 TDE 金鑰存放區密碼獨立進行認證。

驗證移轉工作狀態,如下所示。

圖像

步驟 9:起始移轉,並在 ZDM_CLONE_PDB_TGT 階段後使用 -pauseafter 選項停止移轉。在此階段期間,對來源 PDB 所做的變更會同步到目標 PDB,時間間隔為 ZDM_PDB_REFRESH_INTERVAL 所指定。

圖像

步驟 10:驗證移轉工作狀態。

圖像

檢查目標 PDB 的狀態。

圖像

步驟 11:當您準備好執行最終應用程式切換時,繼續移轉工作。

[opc@sourcedb ~]$ /opt/opc/zdm/zdm26.1/zdmcli resume job -jobid 6

圖像

在移轉完成後驗證目標 PDB 的狀態:

圖像

驗證自動 TDE 公事包移轉

下列日誌顯示 ZDM 會在來源資料庫主機上自動從 Oracle Key Vault (OKV) 下載 TDE 公事包:

圖像

參照

確認

作者: Amresh Kumar Singh (首席顧問)

其他學習資源

您可以在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center 。