2.7. 仮想サーバーインスタンス新環境移行(RHEL + Oracle DB)のデータ移行手順

2.7.1. 前提条件および注意事項

・移行元に展開したミドルウェア、アプリケーションなどは移行先に新規にインストールする必要があります。


・ミドルウェア、アプリケーションなどの移行手順は、提供元のベンダーにお問合せください。

 ※Oracleについては、本手順にて移行先環境構築やDB移行を行います。


・本手順では、データ移行にデータボリュームを利用します。

・Oracle Databaseデータベースの移行には「Oracle Data Pump」を使用します。

・移行作業にかかる時間は、データの容量やネットワーク環境によって異なります。

・インスタンスの一覧画面でシリーズが「V1〜」のものは旧環境のリソースです。

 旧環境でご利用いただいているサーバーは、本手順での移行が必要です。

  完了後、シリーズが「V2〜(新環境)」と表示されていることを必ずご確認ください。


<仮想サーバーインスタンスのシリーズ確認手順>

 ①SDPFポータルにて、「仮想サーバー」→「サーバーインスタンス」→「インスタンス」を選択します。

 ②インスタンスの一覧画面に「シリーズ」が表示されます。

../../../_images/image060.png

・ボリュームの一覧画面で種別が「Type-A」のものは旧環境のリソースです。

 旧環境でご利用いただいているサーバーは、本手順での移行が必要です。

  完了後、種別が「Type-B(新環境)」と表示されていることを必ずご確認ください。


<ボリュームの種別手順>

 ①SDPFポータルにて、「仮想サーバー」→「サーバーインスタンス」→「ボリューム」を選択します。

 ②ボリュームの一覧画面に「種別」が表示されます。

../../../_images/image061.png

2.7.2. 移行作業内容

  1. 移行先サーバーの作成

    以下リンクを参照して、移行先サーバーを作成します。

     Oracle Database 19c (Linux版)のご利用方法

    ※チュートリアルを参考に、移行先サーバー作成に必要な手順を実施します。

     SDPFの標準的な構成の場合は、「2.1. はじめに」~「2.6. データベース作成後の確認」までを実施します。

     ネットワーク構成については、既存のお客さま環境に合わせて設定してください。

  2. バックアップデータ保存用ストレージの作成

    以下リンクを参照して、バックアップデータ保存用のボリュームを作成します。

     データボリュームの新規作成方法

    作成するデータボリュームは、以下の通りです

    データボリュームの設定値

    項目

    設定内容

    ボリュームソース

    ソースの指定なし(空のボリューム)

    サイズ

    移行元インスタンス作成時のデータボリュームの容量

    ボリューム種別

    Type-A

    以下リンクの「4.1.2インスタンスへのデータボリュームのアタッチ」を参照して、バックアップデータ保存用のボリュームを移行元サーバーのインスタンスへ接続します。

     インスタンスへのデータボリュームのアタッチ

     ※ボリュームのアタッチ/デタッチは仮想サーバーインスタンスを”停止”した状態で行ってください。

      https://sdpf.ntt.com/faq/virtual-server-35/

    SDPFポータルへログインし、[仮想サーバー]>[サーバーインスタンス]>[インスタンス]メニューを開きます。

    ../../../_images/image001.png

    移行元サーバーを選択し、詳細画面を開き、[コンソール]タブを選択します。

    ../../../_images/image002.png

    移行元サーバーにログインし、下記コマンドを入力し、バックアップデータ保存用ボリュームが接続されていることを確認します。

    # lsblk
    
    ../../../_images/image003.png

    下記コマンドを入力し、現在接続されているディスクのパーティションの状況(バックアップデータ保存用ボリュームのパーティションが存在しないこと)を確認します。

    # fdisk -l
    
    ../../../_images/image004.png

    下記コマンドを入力し、現在のファイルシステムのディスクの使用状況(バックアップデータ保存用ボリュームが存在しないこと)を確認します。

    # df -Th
    
    ../../../_images/image005.png

    下記コマンドを入力し、バックアップデータ保存用ボリュームに対してfdiskの対話モードを起動します。

    # fdisk /dev/vdb
    

    下記を入力し、新しいパーティションを作成します。

    Select(default p):「n」を入力してください。

    ../../../_images/image006.png

    ・パーティションタイプを選択します。
     Select(default p): p
     ※本手順ではデフォルトの「p」を入力します。

    ・パーティション番号を設定します。
     Partition number(1-4,default 1): 1を入力してください
     ※本手順ではデフォルトの「1」を入力します。

    ・パーティション値を設定します。
     First sector:何も入力せず、そのままEnter
     Last sector:何も入力せず、そのままEnter
    ../../../_images/image007.png

    新しいパーティションが作成されたことを確認します。
    ../../../_images/image008.png

    ・パーティションのタイプを変更していきます。
     Command(m for help):「t」を入力してください。
    ・システムコード(Linux LVM)を選択します。
     Hex code or alias(type L to list all):「8e」を入力してください。
    ../../../_images/image009.png

    ・パーティションのタイプが変更されたことを確認します。
     Command(m for help):「p」を入力してください。
    ../../../_images/image010.png

    ・変更内容を保存します。
     Command(m for help):「w」を入力してください。
    ../../../_images/image011.png

    下記コマンドを入力し、バックアップデータ保存用ボリュームのパーティションが追加されたことを確認します。
    # fdisk -l
    
    ../../../_images/image012.png

    下記コマンドを入力し、上記で作成したパーティションにファイルシステムを作成します。
    # mkfs -t xfs /dev/vdb1
    
    ../../../_images/image013.png

    マウントポイント用のディレクトリを作成していきます。 下記コマンドを入力し、ディレクトリを移動します。
    # pwd
    # cd /
    # pwd
    
    ../../../_images/image014.png

    下記コマンドを入力し、現在のディレクトリ内の状況を確認します。
    # ll
    
    ../../../_images/image015.png

    下記コマンドを入力し、マウントポイント用のディレクトリを作成します。
    # mkdir data1
    
    ../../../_images/image016.png

    下記コマンドを入力し、マウントポイント用のディレクトリが作成されたことを確認します。
    # ll
    
    ../../../_images/image017.png

    下記コマンドを入力し、元のディレクトリに戻ります。
    # cd
    # pwd
    
    ../../../_images/image018.png

    下記コマンドを入力し、バックアップデータ保存用ボリュームを、マウントポイント用のディレクトリへマウントします。
    # mount デバイス マウントポイント
    
    ../../../_images/image019.png

    下記コマンドを入力し、マウントされたことを確認します。
    # df -Th
    
    ../../../_images/image020.png


  3. バックアップ作業


    【LinuxOSのデータ】

    移行元サーバーで、バックアップデータを作成します。
    「id ユーザー名」で出力される、移行するユーザーのID情報(ユーザーID・グループID・所属グループ)を控えてください。
     ※控えた情報は、後続の手順「リストア作業」にて利用します。
    # id ユーザー名
    
    ../../../_images/image021.png

    以下のコマンドで、移行したいデータディレクトリをコピーします。
    cp -auv(コピー元ディレクトリ)(コピー先ディレクトリ)
    # cp -auv /home/test/migration_data /data1/
      -a 元のファイル属性を保持
      -u 保存先ファイルより新しい、ファイルが存在しない場合にのみファイルをコピー
      -v 実行内容を表示
    
    ../../../_images/image022.png

    【OracleDBのデータ】

    移行対象のデータの保存先となるディレクトリを作成します。
    $ mkdir -p /home/oracle/datapump
    
    ../../../_images/image023.png

    以下のコマンドで、 sysユーザーでデータベースに接続します。
    $ sqlplus ユーザー名/パスワード@//ホスト名(localhost または ホスト名 または IPアドレス):1521/移行対象データのあるPDB as sysdba
    
    ../../../_images/image024.png

    以下のコマンドで、指定したパスへのディレクトリ・オブジェクトを作成します。
    SQL> CREATE OR REPLACE DIRECTORY ディレクトリ名 AS ‘OS上の絶対パス‘;
    
    ../../../_images/image025.png

    以下のコマンドで、ユーザーにディレクトリへの読み書き権限を付与します。
    SQL> GRANT READ, WRITE ON DIRECTORY ディレクトリ名 to Oracleデータベースで作成したユーザー名;
    
     ※pumpファイルの出力等を行うため、任意のユーザーに権限を付与します。
      本手順では、既存ユーザー(testuser)に対して、権限を付与しております。
    ../../../_images/image026.png

    以下のコマンドで、ユーザーにデータポンプのエクスポート(expdb)の実行権限を付与します。
    SQL> GRANT DATAPUMP_EXP_FULL_DATABASE TO ユーザー名;
    
    ../../../_images/image027.png

    以下のコマンドで、ユーザーにデータポンプのインポート(impdb)の実行権限を付与します。完了したら、exitします。
    SQL> GRANT DATAPUMP_IMP_FULL_DATABASE TO ユーザー名;
    SQL> exit;
    
    ../../../_images/image028.png

    以下コマンドで、DBをエクスポートします。
    $ expdp ユーザー名/パスワード@//ホスト名(localhost または ホスト名 または IPアドレス):1521/移行対象データのあるPDB SCHEMAS=エクスポートしたいスキーマ DIRECTORY=ディレクトリ名 DUMPFILE=作成したいファイル名.dmp LOGFILE=作成したいログファイル名.log
    
    ../../../_images/image029.png

    出力したファイルはSCPコマンド等でバックアップデータ保存用ボリュームに転送します。

    バックアップデータ保存用ストレージ上にバックアップデータが正しく移行されていることを確認して、バックアップ作業は完了です。


    下記コマンドを入力し、バックアップデータ保存用ボリュームをアンマウントします。


  4. バックアップデータ保存用ボリュームの移行


    下記コマンドを入力し、バックアップデータ保存用ボリュームをアンマウントします。
    # umount /data1
    
    下記コマンドを入力し、 アンマウントされたことを確認します。
    # df -Th
    
    ../../../_images/image030.png


    SDPFポータル画面を開き、「仮想サーバー」→「サーバーインスタンス」→「ボリューム」画面で、バックアップデータ保存用ボリュームを選択し、「接続の管理」を選択します。

    ※「接続の管理」からボリュームの切断(デタッチ)を行いますが、下記URL事象が発生する可能性があるため、デタッチ実施の際は、仮想サーバーインスタンスを停止した状態で実施してください。
    ../../../_images/image031.png

    「ボリュームの接続の管理」画面で、「ボリュームの切断」を押下します。
    ../../../_images/image032.png

    「ボリュームの切断の確認」画面で、「ボリュームの切断」を押下します。
    ../../../_images/image033.png

    先ほど作成したバックアップデータ保存用ボリュームを選択し、アクションリストから「ボリューム種別の変更」を選択します。
    ../../../_images/image034.png

    ボリューム種別がType-Bになっていることを確認し、「ボリューム種別の変更」を選択します。
    ../../../_images/image035.png

    バックアップデータ保存用ボリュームのタイプが”Type-B”になっていることを確認します。
    ../../../_images/image036.png

    次に、バックアップデータ保存用ボリュームを移行先サーバーに接続します。
    以下リンクの「4.1.2インスタンスへのデータボリュームのアタッチ」を参考に実施します。

    ※ボリュームのアタッチ/デタッチは仮想サーバーインスタンスを”停止”した状態で行ってください。


    SDPFポータルで、[仮想サーバー]>[サーバーインスタンス]>[インスタンス]メニューを開きます。
    ../../../_images/image037.png

    移行先サーバーを選択し、詳細画面を開き、[コンソール]タブを選択します。
    ../../../_images/image038.png

    移行先サーバーにログインし、マウントポイント用のディレクトリを作成していきます。
    下記コマンドを入力し、バックアップデータ保存用ボリュームが接続されていることを確認します。
    # df -Th
    
    ../../../_images/image039.png


    下記コマンドを入力し、ディレクトリを移動します。
    # pwd
    # cd /
    # pwd
    

    ../../../_images/image040.png


    下記コマンドを入力し、現在のディレクトリ内の状況を確認します。
    # ll
    

    ../../../_images/image041.png


    下記コマンドを入力し、マウントポイント用のディレクトリを作成します。
    # mkdir data1
    

    ../../../_images/image042.png


    下記コマンドを入力し、マウントポイント用のディレクトリが作成されたことを確認します。
    # ll
    

    ../../../_images/image043.png


    下記コマンドを入力し、元のディレクトリに戻ります。
    # cd
    # pwd
    

    ../../../_images/image044.png


    下記コマンドを入力し、バックアップデータ保存用ボリュームを、マウントポイント用のディレクトリへマウントします。
    # mount (デバイス) (マウントポイント)
    
    下記コマンドを入力し、マウントされたことを確認します。
    # df -Th
    

    ../../../_images/image045.png


  5. リストア作業


    【LinuxOSのデータ】

    移行先サーバーで、リストア作業を実施します。
    移行先となるユーザーを作成します。
    # groupadd -g (GID) (グループ名)
    # useradd -u (UID) -g (GID) (ユーザー名)
    # passwd (ユーザー名)
    
     ※「3.バックアップ作業(20ページ)」で控えた移行するユーザーのID情報(ユーザーID・グループID・所属グループ)を指定してください。
      移行先サーバーの作成にて、移行先となるユーザーも作成済の場合、本手順の実施は不要です。
    ../../../_images/image046.png

    移行先となるユーザーディレクトリ配下に移行データ用ディレクトリを作成します。
    コマンド例: mkdir /home/test/migration_data_from_oldrhel
    
    ../../../_images/image047.png


    以下のコマンドで、バックアップデータを移行先ディレクトリにコピーします。
    # cp -auv(コピー元ディレクトリ)(コピー先ディレクトリ)
    
    コマンド例: cp -auv /data1 /home/test/migration_data_from_oldrhel
                  -a 元のファイル属性を保持
                  -u 保存先ファイルより新しい、ファイルが存在しない場合のみファイルをコピー
                  -v 実行内容を表示
    
    ../../../_images/image048.png


    以下のコマンドで、差分を確認します。何も表示されなければ成功です。
     diff -r(コピー元)(コピー先)
    
    
    コマンド例: diff -r /home/test/migration_data_from_oldrhel/migration_data /data1
    
    ../../../_images/image0623.png


    以下のコマンドで、ファイルの中身が読み取れるか確認します。
    # cd (リストア先のディレクトリ)
    
    
      cat (ファイル名)
    
    コマンド例: cd migration_data_from_oldrhel/ migration_data
    
    
      cat testtext1.txt
    
    ../../../_images/image0633.png

    【OracleDBのデータ】

    移行先サーバーで、リストア作業を実施します。
    以下のコマンドで、データベースに接続します。
    $ sqlplus ユーザー名/パスワード@//ホスト名(localhost または ホスト名 または IPアドレス):1521/移行対象データのあるPDB as sysdba
    
    ../../../_images/image049.png


    以下のコマンドで、 移行対象のDBがあるPDBにセッションを切り替えます。
    SQL> ALTER SESSION SET CONTAINER = DBの移行先となるPDB;
    
    ../../../_images/image050.png


    以下のコマンドで、移行元にてエクスポートしたdmpファイルが保存されているパスへのディレクトリ・オブジェクトを作成します。
    SQL> CREATE OR REPLACE DIRECTORY ディレクトリ名 AS '/DB_create';
    
    ../../../_images/image051.png


    以下のコマンドで、PDB内にインポートデータの受け皿となるユーザーを作成し、権限(データベース利用権限、読み書き権限)を付与します。
    SQL> CREATE USER ユーザー名 IDENTIFIED BY パスワード;
    SQL> GRANT CONNECT, RESOURCE TO ユーザー名;
    SQL> GRANT READ, WRITE ON DIRECTORY ディレクトリ名 TO ユーザー名;
    
    ../../../_images/image052.png


    以下のコマンドで、作成した表領域への書き込み権限を指定ユーザーに付与します。
    完了したら、exitコマンドでデータベースを終了します。
    SQL> ALTER USER ユーザー名 QUOTA UNLIMITED ON 表領域名;
    
    ../../../_images/image053.png


    以下コマンドで、DBをインポートします。
    $ impdp ユーザー名(system or sys)/パスワード@//ホスト名(localhost または ホスト名 または IPアドレス):1521/移行対象データのあるPDB schemas=DBを使用するスキーマ名 directory=指定したディレクトリ名 dumpfile=移行元で作成したdmpファイル logfile=作成したいログファイル名.log
    
    ../../../_images/image054.png



  6. バックアップデータ保存用ボリューム・移行元サーバーの削除

    注釈

    新環境へのデータ移行完了しており、アプリケーションが問題なく稼働することをご確認いただけましたら、バックアップデータ保存用ボリュームと移行元サーバーを削除していきます。



    【ボリュームの削除】

    移行先サーバーで、下記コマンドを入力し、バックアップデータ保存用ボリュームをアンマウントします。
    # umount /data1
    
    ../../../_images/image055.png


    下記コマンドを入力し、 アンマウントされたことを確認します。
    # df -Th
    
    ../../../_images/image056.png


    SDPFポータル画面を開き、「仮想サーバー」→「サーバーインスタンス」→「ボリューム」画面で、バックアップデータ保存用ボリュームを選択し、「接続の管理」を選択します。
    ../../../_images/image057.png

    「ボリュームの接続の管理」画面で、「ボリュームの切断」を押下します。
    ../../../_images/image058.png

    「ボリュームの切断の確認」画面が表示されるので、「ボリュームの切断」を押下します。
    ../../../_images/image059.png

    以下を参照して、コントロールパネルのボリューム一覧画面から、削除したいボリュームを選択し、「ボリュームの削除」を実行します。

    【移行元サーバーの削除】

    以下を参照して、 移行元サーバーを削除します。

2.7.3. APIを利用した移行作業内容および詳細

APIを利用した手順について、現時点での準備はございません。

2.7.4. 切り戻し方法

手順「移行元サーバーの削除」前であれば、移行元環境が残っているため、切り戻しが可能です。

 ※手順「移行元サーバーの削除」後の切り戻しはできません。

必要に応じて、以下手順を参考にサーバーインスタンスのスナップショット作成やバックアップの取得をご検討ください。

 インスタンスのスナップショットを作成する

 ボリュームをイメージ管理へアップロードする

 Arcserve UDP 10.0 を用いた Smart Data Platform でのバックアップリストア運用例


2.7.5. 手順通り進まない場合の対処方法

エラー等が発生した場合や手順に関する不明点がございましたら、チケットシステムよりチケット起票いただきお問い合わせください。

 ※チケット起票手順につきましては、「SDPFクラウド/サーバー関連チケット起票方法 」をご参照ください。

お問い合わせ内容によって下記区分をご選択ください。

 Incident Submission : 故障・不具合に関するお問い合わせ

 General Inquiry : 設備更改のガイドラインおよび手順書に関するお問い合わせ

以上で「仮想サーバーインスタンス新環境移行(Rhel + Oracle)のデータ移行手順」は完了となります。