附註:

從內部部署 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 而設計。

以下是來源和目標環境的特性和詳細資訊。

顯示來源和目標詳細資訊的影像

目標

必要條件

作業 1:準備並安裝 ZDM 伺服器

  1. 佈建用於 ZDM 軟體安裝的專用運算主機。安裝 ZDM 軟體的主機稱為 ZDM 服務主機。主機上必須符合下列先決條件:

    • Oracle Linux 8 和開機磁碟區大小為 200GB。
    • 100GB 的可用儲存空間。
    • 沒有執行中的 Oracle Grid Infrastructure。
    • 可能連線至來源和目標資料庫 (伺服器)。
  2. 使用 putty 連線至 ZDM 主機。

  3. 執行下列命令以擴充檔案系統,讓 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% /
    
  4. 使用下列命令,以 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/
    
  5. 使用下列指令,以 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
    
  6. 下載 ZDM 軟體版本 21.5,並將壓縮檔複製到 ZDM 主機至 /home/zdmuser/zdminstall/ 目錄。使用下列命令,將 zip 檔案的擁有者變更為 root 使用者的 zdmuser

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. 使用下列指令,以 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...
    
  8. 執行下列命令以啟動 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
    
  9. 執行下列命令來建立 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:
    
  10. 使用者詳細資訊頁面為您的 OCI 使用者建立認證權杖。

    按一下認證權杖產生權杖,輸入描述,然後按一下產生權杖

    注意:請為您的記錄複製此記號,因為此記號不會再次顯示。

    顯示建立認證權杖的影像

  11. 請執行下列命令以 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
    
  12. 執行下列命令,將 API 簽署公開金鑰從 zdmhost 上傳至雲端租用戶中的 OCI 使用者。

    [zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem
    -----BEGIN PUBLIC KEY-----
    **********
    -----END PUBLIC KEY-----
    

    移至 OCI 主控台,瀏覽至使用者詳細資訊頁面,按一下 API 金鑰新增 API 金鑰。選取貼上公開金鑰,輸入上述命令的輸出,然後按一下新增

    顯示新增 API 金鑰的影像

  13. 執行下列命令,使用 OCI CLI 或 OCI 主控台在 OCI 租用戶中建立標準 OCI 物件儲存的儲存桶。

    [zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
    
  14. 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
    
  15. 請以 root 使用者身分將主機名稱、IP 和 FQDN 複製到 zdmhost 上的 /etc/hosts,以解析來源資料庫和目標資料庫的主機名稱至 zdmhost。

作業 2:在來源資料庫和目標資料庫中執行前置檢查

  1. 執行下列命令,在目標 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:
    
  2. 執行下列命令以驗證資料庫本位目錄建立。

    [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:準備回應檔

  1. zdmhost 上置於 $ZDM_HOME/rhp/zdm/template/ 下的範本回應檔案複製到其他目錄。

  2. 根據來源和目標環境設定修改複製的回應檔。下列是使用最少參數共用的範例回應檔,用於完成升級的移轉。

    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

認可

其他學習資源

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

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