附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
從內部部署 19c 非容器資料庫移轉至 Oracle Database 23ai 容器資料庫
簡介
零停機移轉 (ZDM) 21.5 引進進行中升級的實體移轉,實現 Oracle 資料庫的無縫轉換。此功能支援將 11.2.0.4 和 12c Oracle 資料庫移轉至 19c Oracle 資料庫,以及從 19c 來源資料庫移轉至 Oracle Database 23ai。
本教學課程概述 ZDM 如何在目標層次執行升級時,協助將來源非容器資料庫 (CDB) 19c 資料庫移轉及轉換成 CDB。ZDM 會使用暫時非 CDB 目標資料庫來執行初始移轉,讓客戶能夠移轉和升級非 CDB 資料庫。完成此初始階段後,ZDM 會利用自動升級轉換成多租用戶,並將資料庫升級成所需的版本。
本教學課程專為將執行 19c 版本的內部部署非 CDB 資料庫從 Linux 平台移轉至 Oracle Database 23ai CDB 而設計。
以下是來源和目標環境的特性和詳細資訊。
目標
- 使用 ZDM 工具移轉至 Oracle Cloud Infrastructure (OCI)。
必要條件
-
來源資料庫應為存檔日誌模式。
-
如果來源資料庫是 12c 版本 2 和更新版本,則必須啟用通透資料加密 (TDE)。確定
WALLET_TYPE
設為AUTOLOGIN
或PASSWORD
。 -
來源資料庫和目標資料庫上的參數
DB_UNIQUE_NAME
必須不同。 -
移轉之前必須先建立目標資料庫。
-
在目標伺服器佈建與來源資料庫本位目錄版本相同的「Oracle 本位目錄」。
作業 1:準備並安裝 ZDM 伺服器
-
佈建用於 ZDM 軟體安裝的專用運算主機。安裝 ZDM 軟體的主機稱為 ZDM 服務主機。主機上必須符合下列先決條件:
- Oracle Linux 8 和開機磁碟區大小為 200GB。
- 100GB 的可用儲存空間。
- 沒有執行中的 Oracle Grid Infrastructure。
- 可能連線至來源和目標資料庫 (伺服器)。
-
使用 putty 連線至 ZDM 主機。
-
執行下列命令以擴充檔案系統,讓 200GB 可用。
[opc@zdm ~]$ sudo su - [root@zdm ~]# df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda3 39G 3.2G 36G 9% / [root@zdm ~]# /usr/libexec/oci-growfs -y [root@zdm ~]# df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda3 192G 3.2G 189G 2% /
-
使用下列命令,以 root 使用者身分建立新群組、使用者以及所需的目錄。
[root@zdm ~]# groupadd zdm [root@zdm ~]# useradd -g zdm zdmuser [root@zdm ~]# mkdir -p /home/zdmuser/zdminstall [root@zdm ~]# mkdir /home/zdmuser/zdmhome [root@zdm ~]# mkdir /home/zdmuser/zdmbase [root@zdm ~]# chown -R zdmuser:zdm /home/zdmuser/
-
使用下列指令,以 root 使用者身分安裝必要的套裝軟體。
[root@zdm ~]# yum install oraclelinux-developer-release-el8 libnsl perl unzip glibc-devel expect libaio ncurses-compat-libs ncurses-devel numactl-libs openssl mlocate bind-utils
-
下載 ZDM 軟體版本 21.5,並將壓縮檔複製到 ZDM 主機至
/home/zdmuser/zdminstall/
目錄。使用下列命令,將 zip 檔案的擁有者變更為 root 使用者的zdmuser
。[root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
-
使用下列指令,以
zdmuser
身分安裝 ZDM 軟體。[zdmuser@zdm ~]$ cd /home/zdmuser/zdminstall/ [zdmuser@zdm zdminstall]$ unzip zdm21.5.zip [zdmuser@zdm zdminstall]$ ZDMHOME=/home/zdmuser/zdmhome [zdmuser@zdm zdminstall]$ ZDMBASE=/home/zdmuser/zdmbase [zdmuser@zdm zdminstall]$ /home/zdmuser/zdminstall/zdm21.5/zdminstall.sh setup oraclehome=/home/zdmuser/zdmhome oraclebase=/home/zdmuser/zdmbase ziploc=/home/zdmuser/zdminstall/zdm21.5/zdm_home.zip -zdm ZDM service setup finished successfully...
-
執行下列命令以啟動 ZDM 並將狀態檢查為
zdmuser
。[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice start Return code is 0 Server started successfully. [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status --------------------------------------- Service Status --------------------------------------- Running: true
-
執行下列命令來建立
zdmuser
的 SSH 金鑰組。稍後將使用 SSH 登入來源和目標資料庫伺服器。保留預設值。[zdmuser@zdm ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/zdmuser/.ssh/id_rsa): Created directory '/home/zdmuser/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zdmuser/.ssh/id_rsa. Your public key has been saved in /home/zdmuser/.ssh/id_rsa.pub. The key fingerprint is: SHA256:giU7jz/8Z1VPiS9Ds/gfokHdevpm0dk59fPYEHRChs4 zdmuser@zdmhost The key's randomart image is:
-
從使用者詳細資訊頁面為您的 OCI 使用者建立認證權杖。
按一下認證權杖、產生權杖,輸入描述,然後按一下產生權杖。
注意:請為您的記錄複製此記號,因為此記號不會再次顯示。
-
請執行下列命令以
zdmuser
的身分安裝 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 工具,此工具將用於存取 OCI 資源。例如,將資料汲取傾印檔複製到 OCI Object Storage 中。[zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
注意: OCI CLI 安裝需要使用者 OCID 、租用戶 OCID 、原建立區域,依據您的雲端租用戶使用這些值,並將其他參數值保留為預設值。
[zdmuser@zdm ~]$ oci setup config
-
執行下列命令,將 API 簽署公開金鑰從
zdmhost
上傳至雲端租用戶中的 OCI 使用者。[zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem -----BEGIN PUBLIC KEY----- ********** -----END PUBLIC KEY-----
移至 OCI 主控台,瀏覽至使用者詳細資訊頁面,按一下 API 金鑰和新增 API 金鑰。選取貼上公開金鑰,輸入上述命令的輸出,然後按一下新增。
-
執行下列命令,使用 OCI CLI 或 OCI 主控台在 OCI 租用戶中建立標準 OCI 物件儲存的儲存桶。
[zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
-
從
zdmhost
連線至來源和目標資料庫伺服器:將 SSH 金鑰從zdmhost
複製為zdmuser
,複製至工作 1.9 中建立的來源和目標。#on ZDM host as zdmuser [zdmuser@zdm ~]$ cat .ssh/id_rsa.pub #on the source database host as user opc [opc@sourcedb ~]$ vi .ssh/authorized_keys #insert the public key and save the changes [opc@targetdb ~]$ vi .ssh/authorized_keys #insert the public key and save the changes
-
請以 root 使用者身分將主機名稱、IP 和 FQDN 複製到 zdmhost 上的
/etc/hosts
,以解析來源資料庫和目標資料庫的主機名稱至 zdmhost。
作業 2:在來源資料庫和目標資料庫中執行前置檢查
-
執行下列命令,在目標 Oracle Base Database Service 執行處理上建立與來源版本相同的
ORACLE_HOME
。[root@tgtzdm ~]# dbcli list-dbhomes ID Name DB Version Home Location Status ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ---------- c548b052-64b7-4257-bfdc-d7c201a430ab OraDB23000_home1 23.5.0.24.07 /u01/app/oracle/product/23.0.0.0/dbhome_1 Configured
[root@tgt23ai ~]# dbcli create-dbhome -v 19.23 Job details ---------------------------------------------------------------- ID: a63db258-7ffc-4dee-b8e5-5accf223e39b Description: Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808 Status: Created Created: September 19, 2024 at 3:22:48 PM IST Progress: 0% Message: Create Database Home Error Code:
-
執行下列命令以驗證資料庫本位目錄建立。
[root@tgt23ai ~]# dbcli describe-job --jobid a63db258-7ffc-4dee-b8e5-5accf223e39b Job details ---------------------------------------------------------------- ID: a63db258-7ffc-4dee-b8e5-5accf223e39b Description: Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808 Status: Success Created: September 19, 2024 at 3:22:48 PM IST Progress: 100% Message: Create Database Home Error Code: Task Name Start Time End Time Status ------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ---------- Database home creation September 19, 2024 at 3:22:49 PM IST September 19, 2024 at 3:27:40 PM IST Success [root@test23ai ~]# dbcli list-dbhomes ID Name DB Version Home Location Status ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ---------- 43247858-4ff6-4fcb-85f2-09d453d863bf OraDB23000_home1 23.5.0.24.07 /u01/app/oracle/product/23.0.0.0/dbhome_1 Configured a63db258-7ffc-4dee-b8e5-5accf223e39b OraDB19000_home1 19.23.0.0.0 /u01/app/oracle/product/19.0.0.0/dbhome_1 Configured
工作 3:準備回應檔
-
將
zdmhost
上置於$ZDM_HOME/rhp/zdm/template/
下的範本回應檔案複製到其他目錄。 -
根據來源和目標環境設定修改複製的回應檔。下列是使用最少參數共用的範例回應檔,用於完成升級的移轉。
TGT_DB_UNIQUE_NAME=tgt23ai_ai MIGRATION_METHOD=OFFLINE_PHYSICAL DATA_TRANSFER_MEDIUM=OSS PLATFORM_TYPE=VMDB SRC_DB_LISTENER_PORT=1521 HOST=https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com/v1/frrudica1wgd OPC_CONTAINER=ZDM NONCDBTOPDB_CONVERSION=TRUE TGT_SKIP_DATAPATCH=FALSE ZDM_NONCDBTOPDB_PDB_NAME=newpdb23 ZDM_PRE_UPGRADE_TARGET_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
工作 4:評估移轉
根據來源和目標詳細資訊修改參數,以評估移轉。
./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s****aik@oracle.com \
-eval
注意:您可以使用下列命令來監督工作。
$ZDM_HOME/bin/zdmcli query job -jobid <jobid>
工作 5:執行實際移轉
使用下列命令執行實際移轉。根據來源和目標環境修改值。
./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s***aik@oracle.com
相關連結
認可
- 作者 - Snehaa Patnaik (導入專家 - 自訂、第三方、VM 資料庫和應用程式)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Migrate from an On-Premises 19c non-Container Database to Oracle Database 23ai Container Database
G25680-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.