バックアップと復元: バージョン19.3.0.5.6

バージョン19.3.0.5.6以降、オラクル社のスクリプトによるバックアップは、単一のEssbaseインスタンス用となりました。つまり、単一のAutonomous Databaseを使用して複数のEssbaseインスタンスをデプロイした場合でも、オラクル社のスクリプトを使用してバックアップを実行できます。

オラクル社提供のスクリプトでは、Autonomous Databaseデプロイメント(Autonomous Transaction ProcessingまたはAutonomous Data Warehouse)のみがサポートされています。

この章の規模と範囲を制限するために、いくつか仮定します。すべての例で、次のとおりとします。
  • Autonomous Transaction Processingは、Essbaseスキーマのデプロイ先となるリレーショナル・データベースです。
  • Oracle Identity Cloud Service (IDCS)は、Essbaseデプロイメントのセキュリティ・プロバイダです。
  • Essbaseシステム管理ユーザー名(WebLogicに格納され、システム内で唯一の非IDCSユーザー)は、ソースとターゲットのEssbaseスタック間で同じです。
  • 復元時に、ソース・インスタンスのバックアップには、Essbaseシステム管理者ロールを保持する有効なOracle Identity Cloud Serviceユーザーが少なくとも1つあります。

Essbaseインスタンスのオラクル社のスクリプトによるバックアップ

オラクル社提供のスクリプトでは、次のタスクが実行されます。

  • オブジェクト・ストレージと連動して機能するためのデータベースの構成。
  • Essbaseサービスの停止。
  • データベースのバックアップ。
  • Essbaseデータ・ブロック・ボリュームのバックアップ。
  • Essbaseサービスの開始。

スクリプトによってEssbaseサービスが停止するため、バックアップを開始する前に、システムからユーザーを適切に誘導してください。Alter Application (特にenable/disable)およびAlter System (特にlogoff/kill)を参照してください。disableコマンドを使用する場合、バックアップの完了後にenableコマンドを使用してそれらを元に戻す必要があります。

Autonomous Databaseを使用してデプロイされたEssbaseインスタンスのバックアップを開始するには、ユーザーがシステム内にいない都合のよい時間にバックアップをスケジュールして、次のステップに従います。

ノート:

プライベートIPを使用する場合は、Oracle Cloud Infrastructure Bastionサービス・インスタンスをプロビジョニングし、プロキシとして使用します。
  1. バックアップの管理に必要なポリシーが所定の場所にあることを確認します。ポリシーの設定を参照してください。
  2. Essbaseコンピュートに(opcユーザー)としてssh接続します。
  3. sudo su - oracle
  4. cd /u01/vmtools/backup/
  5. スクリプトを実行して、オブジェクト・ストレージと連動して機能するように構成します。これは、Essbaseインスタンスごとに1回かぎりのアクションです。
    ./configure-backup-storage.sh
    スクリプトを起動すると、次の3つの入力を要求されます。
    1. Enter database admin password:

      クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。

    2. Enter OCI Username:
      Oracle Cloud Infrastructureのユーザー名を見つけるには:
      1. Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコンOCIプロファイル・メニュー・アイコンのイメージ。をクリックします。
      2. ユーザーをクリックします。
      3. ページ上部のプロファイル名をコピーします。

        oracleidentitycloudservice/を含む完全なユーザー名(電子メール・アドレスのみではありません)をコピーします。

      4. コマンド・プロンプトに戻って、貼り付けて[Enter]を押します。
    3. Enter OCI Token:

      認証トークンを入力します。認証トークンは保護情報であるため、コマンド・プロンプトに入力または貼り付けた際、テキストは見えません。

      まだ生成していない場合は、Oracle Cloud Infrastructure Object Storageユーザーの認証トークンを生成します。

  6. バックアップ・スクリプトを実行します。

    データベース管理パスワードの入力を要求されます。クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。

    これで、データ・ブロック・ボリュームがバックアップされます。

    ./run-backup.sh

    ノート:

    Essbaseサービスは、backup.shスクリプトによって停止され、スクリプトの終了後に再開されます。
  7. オブジェクト・ストレージのネイティブURIを取得します。

    バックアップ・スクリプトの最後に、"moving export file"エントリが2つあります。最初のエントリにオブジェクト・ストレージのネイティブURIが含まれており、これをコピーして保存できます。オブジェクト・ストレージのネイティブURIは、復元中にデータ・ポンプ・インポート・コマンドを発行する際に必要です。(moving export fileエントリを変更して.dmpファイル名をessbase%u.dmpで置き換える必要があります。)

Essbaseインスタンスの復元

まだ実行していない場合は、Oracle Instant Clientおよびツールをインストールして構成します。データ・ポンプおよびSQL*Plusを実行する必要があります。

障害からリカバリする場合は、オラクル社以外のスクリプトによるバックアップを復元するには、新しいターゲットEssbaseインスタンスをデプロイする必要があります。新しいターゲット・インスタンスは、障害が発生したコンピュートにデプロイされたのと同じバージョンである必要があります。新しいターゲット・インスタンスをデプロイしたら、そのターゲットを使用してバックアップからリカバリできます。

障害が発生していなくても、ソース・インスタンスを移行またはロールバック(同一ホスト・リカバリ)する場合は、後述の復元ステップを使用します。ただし、次の例外があります。
  • ステップ1から6をスキップします。
  • ステップ8bで、REMAP_SCHEMA=<sourceEBprefix>_ESSBASE:<targetEBprefix>_ESSBASEパラメータを含めないでください。
  • バックアップを取ったのと同じホームでリカバリするため、後述のステップで言及されているターゲット・インスタンスがソース・インスタンスになります。
次のステップにより、同じAutonomous Databaseにデプロイされている可能性がある他のEssbaseインスタンスに影響を与えずに、単一のEssbaseインスタンスを復元できます。

ノート:

プライベートIPを使用する場合は、Oracle Cloud Infrastructure Bastionサービス・インスタンスをプロビジョニングし、プロキシとして使用します。
  1. Oracle Marketplaceを使用してターゲットEssbaseスタックをデプロイします。
    • ソースOracle Identity Cloud Serviceの機密アプリケーションを使用します。
    • ソースAutonomous Databaseおよびパスワードを使用します。必要に応じて、新しいAutonomous Databaseを作成します。これは、新しいリージョンで復元する場合に必要です。
    • ソースの仮想クラウド・ネットワークおよびアプリケーション・サブネットを使用します。必要に応じて、新しいネットワークを作成します。これは、新しいリージョンで復元する場合に必要です。
    • ソース・スタックにロード・バランサがある場合、ターゲットのロード・バランサをデプロイしないでください。バックエンド・セットは、ターゲット・スタックのデプロイ後に変更できます。必要に応じて、新しいロード・バランサを作成します。これは、新しいリージョンで復元する場合に必要です。
    • ソース・スタックにホストがある場合、ターゲット・スタックを使用して要塞をデプロイします(ソース要塞は、リカバリに成功したら削除できます)。
    • ソースで使用したのと同じEssbaseシステム管理ユーザー名およびパスワードをターゲットで使用します。
    • ソース・スタックで使用したのと同じOracle Identity Cloud Service Essbase管理ユーザーをターゲット・スタックで使用します。これが不可能な場合は、ソースEssbaseインスタンスに、Essbaseシステム管理者ロールを保持する有効なOracle Identity Cloud Serviceユーザーが少なくとも1つ必要です。復元後、ソース・インスタンスのEssbaseシステム管理者ロールを保持する有効なOracle Identity Cloud Serviceユーザーとして、ターゲット・インスタンスにログインする必要があります。
  2. ターゲット・インスタンスのログインURLを管理します。
    1. ソース・ロード・バランサがある場合、ターゲット・コンピュートで使用するために、'essbase'バックエンド・セットを管理します。ロード・バランサがターゲット・コンピュートへの接続をリフレッシュする時間を確保した後、Essbase Webインタフェースにログインして、バックアップからの復元に進む前にターゲット・インスタンスが正しくデプロイされていることを確認します。
      1. ソース・コンピュート・バックエンドを削除します。
      2. ターゲット・コンピュート・バックエンドを追加します。ポート443を使用します。

      同じロード・バランサIPがターゲットEssbaseインスタンスにルーティングされるようになったため、Oracle Identity Cloud Serviceの機密アプリケーションのURLを更新する必要はありません。

    2. ソース・スタックにロード・バランサがない場合、Oracle Identity Cloud Serviceの機密アプリケーションのリダイレクトURLおよびログアウト後のリダイレクトURLを、ターゲットIPアドレスで更新します。
  3. ターゲットEssbaseコンピュートに(opcユーザー)としてssh接続します。
  4. sudo su - oracle
  5. cd /u01/vmtools/backup/
  6. スクリプトを実行して、オブジェクト・ストレージと連動して機能するように構成します。これは、Essbaseインスタンスごとに1回かぎりのアクションです。

    ターゲットに対して構成/バックアップ・スクリプトを実行します。

    ./configure-backup-storage.sh
    スクリプトを起動すると、次の3つの入力を要求されます。
    1. Enter database admin password:

      クリア・テキストのパスワードを入力します。パスワードは保護情報であるため、コマンド・プロンプトに入力した際、テキストは見えません。

    2. Enter OCI Username:
      Oracle Cloud Infrastructureのユーザー名を見つけるには:
      1. Oracle Cloud Infrastructureで、右上隅に移動してプロファイル・メニュー・アイコンOCIプロファイル・メニュー・アイコンのイメージ。をクリックします。
      2. ユーザーをクリックします。
      3. ページ上部のプロファイル名をコピーします。

        oracleidentitycloudservice/を含む完全なユーザー名(電子メール・アドレスのみではありません)をコピーします。

      4. コマンド・プロンプトに戻って、貼り付けて[Enter]を押します。
    3. Enter OCI Token:

      認証トークンを入力します。認証トークンは保護情報であるため、コマンド・プロンプトに入力または貼り付けた際、テキストは見えません。

    4. スクリプトの実行終了後に画面に表示される、ディレクトリ名および資格証明名を書き留めます。
  7. ターゲットEssbaseサービスを(oracleユーザーとして)停止しますOracle Cloud Infrastructureでノード・マネージャまたはEssbaseコンピュートを停止しないでください
  8. backup.shスクリプトで作成されたソース・スキーマのバックアップからターゲット・データベース・スキーマを復元します。

    ターゲット・スタックのAutonomous Databaseを復元する際、REMAP_SCHEMAオプションを使用してソース・スキーマのバックアップをターゲットEssbaseスキーマにインポートします。

    1. ターゲットEssbaseスキーマが格納されているAutonomous Databaseを指すようにInstant Clientが構成されていることを確認します。
    2. Oracle Instant Clientを使用して、次のデータ・ポンプ・インポート・コマンドを発行します。
      impdp admin@<database name>_high directory=<directory name> credential=<credential name> dumpfile=<object storage native URI> REMAP_SCHEMA=<source essbase prefix>_ESSBASE:<target essbase prefix>_ESSBASE table_exists_action=replace
      ノート:
      • <database name>は、インポートするために接続するデータベースの名前です。
      • <directory name>は、configure-backup-storage.shスクリプトの実行後に書き留めたディレクトリ名です。
      • <credential name>は、configure-backup-storage.shスクリプトの実行後に書き留めた資格証明名です。
      • <object storage native uri>は、バックアップ時に取得したのと同じものです。
        • ネームスペース(/n/)は、テナンシのネームスペースです。
        • バケット(/b/)は、ソース・インスタンスのオブジェクト・ストレージ・バケットです。
        • オブジェクト(/o/)は、ソース・インスタンスのオブジェクト・ストレージの<backup folder name>/<dump file name>です。impdp文で使用する.dmpファイル名は、essbase%u.dmpにする必要があります。%uは、複数の.dmpファイル(複数作成されている場合)を取得するワイルドカードです。
  9. スキーマのインポートが終了したら、SQL Developerなどのデータベース・クライアントを使用してデータを監査します。<targetprefix>_ESSBASEスキーマ内のESSBASE_APPLICATION表を参照して、ターゲット・スキーマ(スキーマのインポート前は空)にソース・アプリケーションがあることを確認できます。
  10. /etc/fstabのデータ・ブロック・ボリュームのエントリを一時的に無効にします。
    1. ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
    2. sudo vi /etc/fstab
    3. /u01/dataのエントリの前に#を挿入します。
    4. ファイルを保存します。
  11. データ・ブロック・ボリュームをターゲットEssbaseコンピュートからデタッチします。iSCSIの警告をメモし、Oracle Cloud Infrastructureコンソールを使用してデタッチする前に、必ずボリュームをアンマウントして切断します。
    1. アンマウントするには:
      1. ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
      2. lsblk
      3. sudo umount /u01/data
    2. iSCSIを切断するには:
      1. Oracle Cloud Infrastructureコンソールで、ターゲット・コンピュートを選択します。
      2. 「リソース」「アタッチされたブロック・ボリューム」を選択します。
      3. データ・ブロック・ボリュームの「アクション」メニューOCIの縦型ブロック・ボリューム・メニュー・アイコンのイメージ。から、「iSCSIコマンドおよび情報」を選択します。
    3. 切断するためのiSCSIコマンドをコピーします。
    4. ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
    5. コピーした切断コマンドを貼り付けて[Enter]を押します。
    6. デタッチするには:
      1. Oracle Cloud Infrastructureコンソールで、ターゲット・コンピュートを選択します。
      2. 「リソース」「アタッチされたブロック・ボリューム」を選択します。
      3. データ・ブロック・ボリュームの「アクション」メニューOCIの縦型ブロック・ボリューム・メニュー・アイコンのイメージ。から、「デタッチ」を選択します。
  12. データ・ブロック・ボリュームをソース・ブロック・ボリュームのバックアップから復元します。必ず、ターゲット・コンピュート・インスタンスと同じ可用性ドメインを選択します。
  13. 前のステップで作成したデータ・ブロック・ボリュームをターゲット・コンピュートにアタッチします。ボリュームのアタッチメント・タイプは、iSCSIにする必要があります。デバイス・パスを選択する必要はありません。
  14. OCIコンソールに示されたiSCSIコマンドを使用して、新たにアタッチしたターゲット・ブロック・ボリュームを接続します
  15. /etc/fstabの/u01/dataのエントリを更新して新しいデータ・ブロック・ボリュームをマウントします。
    1. ターゲット・コンピュートに(opcユーザーとして) ssh接続します。
    2. lsblkを実行して、新たにアタッチした構成およびデータのボリュームの名前を確認します。
    3. sudo blkidを実行して、新たにアタッチしたデータ・ボリュームのUUIDを書き留めます。
    4. sudo vi /etc/fstab
    5. データ・ブロック・ボリュームのエントリをコメント解除します。
    6. 既存のデータ・ボリューム・エントリのUUIDを新たにアタッチしたデータ・ボリュームのUUIDで置き換えます。マウント・ポイント/u01/dataが変更されていないことを確認します。従来のfstabオプションを参照してください。
    7. /etc/fstabファイルを保存したら、次のコマンドを発行します。
      1. sudo systemctl daemon-reload
      2. sudo mount -a
    8. lsblkを実行してマウント・ポイントを確認します。
  16. Essbaseサービスを(oracleユーザーとして)開始します。

ノート:

ターゲットEssbaseスタックに正常にリカバリしたら、障害が発生したソース・コンピュート・ノードを削除し、不要なデータ・ブロック・ボリュームおよびバックアップをさらにクリーン・アップできます。