Ibkupを使用したOracle Databaseの移行

Ibkupユーティリティを使用してソースOracle Databaseを移行します。

ウォレット・ファイルをコピー

ソースOracle Cloud Infrastructure Classic図形のデータベースから、ターゲットOracle Cloud Infrastructure図形のOracle Database Cloud Serviceデプロイメントにウォレット・ファイルをコピーします。

  1. 次のように、zip (またはtar)を使用してソース・データベース上のtde_walletディレクトリの圧縮コピーを作成します。
    $ cd /u01/app/oracle/admin/source_database_name/tde_wallet
    $ zip wallet.zip ./ewallet.p12 ./cwallet.sso

    または

    $ cd /u01/app/oracle/admin/source_database_name/tde_wallet
    $ tar cvf wallet.tar ./ewallet.p12 ./cwallet.sso
  2. WinSCPなどのセキュア・コピー・ユーティリティを使用して、ターゲットOracle Cloud Infrastructure図形の一時ディレクトリ(/tmpなど)に抽出するウォレット・ファイルの圧縮コピーを作成します。
  3. ルートとして、ターゲット・データベースのibkupディレクトリにtde_walletというディレクトリを作成して、次の手順で作成および使用する様々なファイルを格納します。
    $ sudo -s
    # mkdir –p /home/oracle/ibkup/tde_wallet
    # cd /home/oracle/ibkup/tde_wallet
  4. ルートとして、ターゲット・システムで次のように、一時ディレクトリから/home/oracle/ibkup/tde_walletディレクトリに圧縮されたzipまたはtarファイルをコピーして抽出します。
    # cp /tmp/wallet.zip .
    # unzip wallet.zip

    または

    # cp /tmp/wallet.zip .
    # tar xvf wallet.tar

Dbaasapi入力ファイルの作成と構成

  1. ターゲットのOracle Cloud Infrastructure形状で、begin-request.jsonファイルをibkup/tde_walletサブディレクトリに作成して、ibkup開始アクションを実行するには、次のようにdbaasapiに渡します。
    $ vi begin-request.json
    {
      "object": "db",
      "action": "begin",
      "operation": "ibkup",
      "params": {
        "dbname": "TSTDB",
        "dbid": "database_id",
        "oss_url":
    "container_URL",
        "oss_user": "Cloud_user_name",
        "oss_passwd": "######",
        "decrypt_wallet": "/home/oracle/ibkup/tde_wallet",
        "passwd": "######",
        "dbsize": "database_size_in_GB"
     },
     "outputfile": "/home/oracle/ibkup/begin-response.json",
     "FLAGS": ""
    }
    $

    移行の前提条件を満たしたときに、ソース・データベースに示された値とともにdbnamedbidoss_urloss_userおよびoss_passwd変数に値を割り当てます。passwd変数には、ソース・データベースのsysユーザーのパスワードが必要です。dbsize変数は、ソース・データベースのサイズ(GB単位)です。

    container_URL変数の値を取得するには、Oracle Cloud MyServicesに移動し、「クラウド・ストレージ・コンテナ」フィールド名の上にマウス・カーソルを置きます。

  2. ターゲットOracle Cloud Infrastructure形状で、次のように、dbaasapiに渡すstatus-request.jsonファイルを作成してibkupステータス・アクションを実行します。
    $ cat status-request.json
    {
      "object": "db",
      "action": "status",
      "operation": "ibkup",
      "id": "1",
      "params": {
        "dbname": "TSTDB"
      },
      "outputfile": "/home/oracle/ibkup/status-response.json",
      "FLAGS": ""
    }
    $

    dbname変数にソース・データベースの名前を使用します。

    注意:

    JSONファイルでは、"id"は常に1であるとはかぎりません。最初の値は1ですが、なんらかの理由でバックアップを再実行する必要がある場合は、"id"の値を変更する必要があります。status-response.jsonファイルを表示して前の値を取得し、それを大きくします。
  3. ターゲットOracle Cloud Infrastructure形状で、ibkup開始処理を次のように実行します。
    # /var/opt/oracle/dbaasapi/dbaasapi -i begin-request.json

    Ibkup開始アクションを実行した後、アクション(/home/oracle/ibkup/begin-response.json)の出力ファイルを表示して、アクションが開始されたことを確認し、アクションのIDをメモします。Ibkup操作の進行状況をモニターするには、status-request.jsonファイルにIDを指定する必要があります。

  4. ターゲットOracle Cloud Infrastructure形状で、ibkupステータス処理を実行して進捗を監視します。次の手順を実行します。
    # /var/opt/oracle/dbaasapi/dbaasapi -i status-request.json

    アクションが成功または失敗するまで、引き続きアクション(/home/oracle/ibkup/begin-response.json)の出力ファイルを監視します。あるいは、status-request.jsonファイルの最後に出力されるログ・ファイルの末尾を削除することもできます。

  5. 次のように、アクションが正常に完了したことを確認します。
    1. ターゲットのOracle Cloud Infrastructure形状で、次のようにSYSDBAとしてデータベースに接続し、ターゲット・データベースのステータスを確認します。
      $ sqlplus / as sysdba
      SQL> SELECT status FROM v$instance;
      STATUS
      ------------
      OPEN
    2. 次のようにデータベースの名前とIdを確認します。
      SQL> SELECT name,dbid FROM v$database;
      NAME        DBID
      --------- ----------
      TSTDB      3505857247
    3. データベースがOracle Database 12c以上の場合は、次のようにpdbに関する情報を表示します。
      SQL> SELECT name,open_mode,restricted FROM v$pdbs;
      NAME                   OPEN_MODE  RES
      ---------------------- ---------- ---
      PDB$SEED               READ ONLY  NO
      PDB1                   READ WRITE NO
    4. 次のように、Oracle Net Listenerによって提供されるサービスにソース・データベースから提供されるサービスが含まれていることを確認します。
      $ lsnrctl status
      LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 29-MAR-2018
      12:05:21
      Copyright (c) 1991, 2014, Oracle. All rights reserved.
      Connecting to
      (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TSTDBOCI.sub0301050604
      2.vcn.oraclevcn.com)(PORT=1521)))
      STATUS of the LISTENER
      ------------------------
      Alias LISTENER
      Version TNSLSNR for Linux: Version 12.1.0.2.0 -
      Production
      Start Date 29-MAR-2018 11:12:01
      Uptime 0 days 0 hr. 53 min. 19 sec
      Trace Level off
      Security ON: Local OS Authentication
      SNMP OFF
      Listener Parameter File
      /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.o
      ra
      Listener Log File
      /u01/app/oracle/diag/tnslsnr/TSTDBOCI/listener/alert/log.xml
      Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tstdboci.sub0301050604
      
      2.vcn.oraclevcn.com)(PORT=1521)))
        (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=tstdboci.sub030105060
      42.vcn.oraclevcn.com)(PORT=5500))(Security=(my_wallet_directory=
      /u01/app/oracle/admin/TSTDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
      Services Summary...
      Service "TSTDB.588436052.oraclecloud.internal" has 1 instance(s).
        Instance "TSTDB", status READY, has 1 handler(s) for this service...
      Service "TSTDB.sub03010506042.vcn.oraclevcn.com" has 1 instance(s).
        Instance "TSTDB", status READY, has 1 handler(s) for this service...
      Service "TSTDB.sub03010506042.vcn.oraclevcn.comXDB" has 1 instance(s).
        Instance "TSTDB", status READY, has 1 handler(s) for this service...
      Service "pdb1.588436052.oraclecloud.internal" has 1 instance(s).
        Instance "TSTDB", status READY, has 1 handler(s) for this service...
      Service "pdb1.sub03010506042.vcn.oraclevcn.com" has 1 instance(s).
        Instance "TSTDB", status READY, has 1 handler(s) for this service...
      The command completed successfully
  6. Oracle Enterprise Manager ExpressおよびOracle DBaaS Monitorを検証します。
    MyServices Database ConsoleからOracle DBaaS MonitorおよびOracle Enterprise Manager Expressにログインし、正常に機能していることを検証します。
  7. 必要に応じて、パッチのREADMEドキュメントに従う別のパッチを適用します。