ノート:

オンプレミスの19c非コンテナ・データベースからOracle Database 23ai Container Databaseへの移行

イントロダクション

Zero Downtime Migration (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ホストにzipファイルを/home/zdmuser/zdminstall/ディレクトリにコピーします。次のコマンドを使用して、rootユーザーとしてzipファイルの所有者をzdmuserに変更します。

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. 次のコマンドを使用して、ZDMソフトウェアをzdmuserとしてインストールします。

    [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. 次のコマンドを実行して、OCIリソースへのアクセスに使用されるzdmuserとしてOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)ツールをインストールします。たとえば、データ・ポンプ・ダンプ・ファイルをOCIオブジェクト・ストレージにコピーします。

    [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. 次のコマンドを実行して、zdmhostからクラウド・テナンシのOCIユーザーにAPI署名公開キーをアップロードします。

    [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を/etc/hosts (zdmhost)にコピーして、ソース・データベースおよびターゲット・データベースのホスト名を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. $ZDM_HOME/rhp/zdm/template/の下に配置されたzdmhostのテンプレート・レスポンス・ファイルを別のディレクトリにコピーします。

  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を参照してください。