B OAA/OARMのバックアップおよびリカバリの理解

この章では、バックアップおよびリカバリの方法について説明します。内容は次のとおりです。

B.1 OAA/OARMのバックアップ

Oracleでは、予期しないイベントからリカバリしてOAA/OARMシステムをリストアできるように、完全バックアップのOAA/OARMデータを定期的に取得することをお薦めします。

OAA/OARMは、ファイル・システム・データ、ポリシーおよび構成データ、ランタイム・データで構成されます:
  • ファイル・システム・データは、NFSボリュームに格納されます。このデータには、ウォレット、ボールト、インストール・プロパティおよびログが含まれます。
  • ポリシーおよび構成データは、データベースに格納されます。このデータには、保証レベル、ルール、ポリシー、アクション、グループ、カスタマイズされた構成プロパティおよびトランザクション定義が含まれます。
  • ランタイム・データは、データベースに格納されます。このデータには、ユーザー・プリファレンス、ユーザー・セッション、カスタム・ユーザー・アクティビティ、オンライン・トランザクションおよび処理データが含まれます。

完全バックアップは、ファイル・システム・データとデータベースのバックアップで構成されます。

Oracleでは、様々な間隔で(またはポリシーや構成の重大な変更が行われた場合に)ポリシーおよび構成データのスナップショットを取得することもお薦めします。

B.1.1 ファイル・システム・データのバックアップ

Oracleでは、予期しないイベントからリカバリしてOAA/OARMシステムをリストアできるように、OAA/OARMファイル・システム・データを定期的にバックアップすることをお薦めします。

OAA/OARMファイル・システム・データは、NFSボリューム(<NFS_CONFIG_PATH><NFS_CREDS_PATH><NFS_LOGS_PATH>および<NFS_VAULT_PATH>)に格納されます。

これらのNFSボリュームのコンテンツをバックアップするため、コピーするか、圧縮されたzipまたはtarファイルを作成し、安全でセキュアな場所にファイルを格納する必要があります。

NFSボリュームの詳細は、「NFSボリュームの構成」を参照してください。

B.1.2 ランタイム・データのバックアップ

Oracleでは、予期しないイベントからリカバリしてOAA/OARMシステムをリストアできるように、OAA/OARMランタイム・データを定期的にバックアップすることをお薦めします。

ランタイム・データをバックアップするには、標準のデータベース・バックアップ方法を使用します。

OCIベースのデータベースについては、データベースのデータのバックアップに関する項を参照してください。

OCIベース以外のデータベースについては、『バックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

B.1.3 ポリシーおよび構成データのバックアップ

Oracleでは、予期しないイベントからリカバリしてOAA/OARMシステムをリストアできるように、OAA/OARMポリシーおよび構成データを定期的にバックアップすることをお薦めします。

ポリシーおよび構成データをバックアップするには:

  1. <PolicyUrl>/policy/risk/v1/snapshots REST APIエンドポイントを使用して構成のスナップショットを作成します。たとえば:
    curl --location --request POST '<PolicyUrl>/policy/risk/v1/snapshots/' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
    --data '{
        "name":"Backup Snapshot <DATE>",
        "description": "This is a snapshot from <DATE>"
    }'

    PolicyUrlの検索および認証の詳細は、「OAA管理API」を参照してください。

    スナップショット・エンドポイントの詳細は、スナップショットRESTエンドポイントに関する項を参照してください。

    前述のコマンドは、次のようにsnapshotIdを返します:
    {
        "status": "201",
        "message": "Snapshot created successfully.",
        "snapshot": {
            "name": "Backup Snapshot <DATE>",
            "description": "This is a snapshot from <DATE>",
            "snapshotId": "3",
            "createTime": "<DATE>"
        }
    }
  2. 前に返されたsnapshotIdを使用して、次のようにスナップショットをzipファイルにエクスポートします:
    curl --location --request GET '<PolicyUrl>/policy/risk/v1/snapshots/<snapshotId>' \
    --header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' >snapshot<DATE>.zip

    ダウンロードしたzipファイルを安全でセキュアな場所に格納します。

B.2 OAA/OARMのリストア

システムまたはランタイム・データをリストアするには、最初にバックアップを作成しておく必要があります。「OAA/OARMのバックアップ」を参照してください。

OAA/OARMをリストアするステップは、リストアする理由と、同じOAA/OARMインストールやデータベース・インストールにリストアするか、新しいインストールやデータベース・インストールにリストアするかによって異なります。次の項では、様々なシナリオに基づくリカバリ・ステップの概要について説明します:

B.2.1 既存のインストールへのリストア

後続の手順を使用して次を実行できます:
  • 完全システム・リストア: ファイル・システム・データ、データベース(ランタイム・データ)、ポリシーおよび構成データの完全リストアを既存のインストールに実行する必要がある場合。これにより、最後の完全バックアップが取得された時点まで環境がリストアされます。
  • 部分リストア: システム・データ、ポリシーおよび構成データ、データベース、またはそれらの組合せのいずれかのみを既存のインストールにリストアする必要がある場合。
  1. データベースをリストアする必要がある場合は、標準のデータベース・リカバリ方法を使用してデータベースをリストアします。詳細は、Oracle Databaseのドキュメントを参照してください。
  2. OAA/OARMファイル・システム・データをリストアする必要がある場合は、「OAA/OARMファイル・システム・データのリストア」「既存のインストールへのファイル・システム・データのリストア」に従います。
  3. 次のコマンドを実行して、OAA/OARMポッドを再起動します:
     kubectl get deployment -n <namespace> | grep <deployment-name> | awk '{print $1}' | xargs kubectl rollout restart deployment -n <namespace>
    たとえば:
    kubectl get deployment -n oaans | grep oaainstall | awk '{print $1}' | xargs kubectl rollout restart deployment -n oaans
    出力は次のようになります:
    deployment.apps/oaainstall-email restarted
    deployment.apps/oaainstall-fido restarted
    deployment.apps/oaainstall-oaa restarted
    deployment.apps/oaainstall-oaa-admin-ui restarted
    deployment.apps/oaainstall-oaa-kba restarted
    deployment.apps/oaainstall-oaa-policy restarted
    deployment.apps/oaainstall-push restarted
    deployment.apps/oaainstall-risk restarted
    deployment.apps/oaainstall-risk-cc restarted
    deployment.apps/oaainstall-sms restarted
    deployment.apps/oaainstall-spui restarted
    deployment.apps/oaainstall-totp restarted
    deployment.apps/oaainstall-yotp restarted
    deployment.apps/oaamgmt-oaa-mgmt restarted

    前述のコマンドは、元のポッドを停止する前に、まず新しいOAA/OARMポッドを起動します。

    次のコマンドを実行して、ポッドのステータスを確認します:
    kubectl get pods -n <namespace>
    たとえば:
    kubectl gets pods -n oaans
    前のポッドがすべて終了し、新しいポッドがREADY 1/1になると、システムがリストアされます:
    NAME                             READY   STATUS    RESTARTS   AGE
    oaainstall-email-75cccd89f8-9xrgs          1/1     Running   0          5m34s
    oaainstall-fido-68777f8cc8-pfw8c           1/1     Running   0          5m34s
    oaainstall-oaa-74d5669788-lj5cp            1/1     Running   0          5m34s
    oaainstall-oaa-admin-ui-585d55c45b-fzdvk   1/1     Running   0          5m34s
    oaainstall-oaa-kba-5b9db9f8db-zwkh2        1/1     Running   0          5m34s
    oaainstall-oaa-policy-559fb4d777-qjvwm     1/1     Running   0          5m34s
    oaainstall-push-6898c6cb56-l4mg2           1/1     Running   0          5m34s
    oaainstall-risk-cc-db558dc5c-qlh8q         1/1     Running   0          5m34s
    oaainstall-risk-f48b794bc-j46pz            1/1     Running   0          5m34s
    oaainstall-sms-659677b84b-wf7sn            1/1     Running   0          5m34s
    oaainstall-spui-6fc8685df9-fhp9w           1/1     Running   0          5m33s
    oaainstall-totp-cccd94786-622qd            1/1     Running   0          5m33s
    oaainstall-yotp-5fbfd55d4c-d6wqn           1/1     Running   0          5m33s
    oaamgmt-oaa-mgmt-94f84ccc6-gwdp2           1/1     Running   0          5m32s
    
  4. 最後のデータベース・バックアップ後に取得されたスナップショットからポリシーおよび構成データをインポートする必要がある場合は、「OAA/OARMポリシーおよび構成データのリストア」に従います。

B.2.2 新規インストールへのリストア

後続の手順を使用して次を実行できます:

  • 完全システム・リストア: ファイル・システム・データ、データベース(ランタイム・データ)、ポリシーおよび構成データの完全リストアを新規インストールおよびデータベース環境に実行する必要がある場合。これにより、最後の完全バックアップが取得された時点まですべてのファイル・システム・データ、ポリシーおよび構成データ、ランタイム・データがリストアされます。
  • 部分リストア: システム・データ、ポリシーおよび構成データ、データベース(ランタイム・データ)、またはそれらの組合せのいずれかのみを新規インストールにリストアする必要がある場合。

    ノート:

    データベースのみを新規データベース・インストールにリストアする場合でも、ステップ3に従ってOAA/OARMファイル・システム・データをリストアする必要があります。

ノート:

次の手順では、ファイル・システム・データを新しいインストール環境にリストアする場合に、その新しい環境に必要なインストールの前提条件が満たされていることを想定しています。「OAA、OARMおよびOUAをインストールするための前提条件の構成」を参照してください
  1. データベースを新しい環境にリストアする必要がある場合は、標準のデータベース・リカバリ方法を使用してデータベースをリストアします。詳細は、Oracle Databaseのドキュメントを参照してください。
  2. ファイル・システム・データを新しいインストール環境にリストアする必要がある場合は、OAA/OARMインストール・ファイルをその環境にダウンロードします。「インストール・ファイルのダウンロードと管理コンテナの準備」を参照してください。
  3. 「OAA/OARMファイル・システム・データのリストア」「新規インストールへのファイル・システム・データのリストア」に従って、OAA/OARMファイル・システム・データをリストアします。
  4. 最後のデータベース・バックアップ後に取得されたスナップショットからポリシーおよび構成データをインポートする必要がある場合は、「OAA/OARMポリシーおよび構成データのリストア」に従います。

B.2.3 インストールのクローニング

このシナリオでは、既存の環境からシステム・データまたはポリシーおよび構成データ(あるいはその両方)を使用して、既存のインストールを新しい環境にクローニングすることを想定しています。このシナリオでは、ランタイム・データはリストアされません。

ノート:

次の手順では、ファイル・システム・データを新しいインストールにクローニングする場合に、その新しい環境に必要なインストールの前提条件が満たされていることを想定しています。「OAA、OARMおよびOUAをインストールするための前提条件の構成」を参照してください
  1. OAA/OARMインストール・ファイルを新しいシステムにダウンロードします。「インストール・ファイルのダウンロードと管理コンテナの準備」を参照してください。
  2. 「OAA/OARMファイル・システム・データのリストア」「新規インストールへのファイル・システム・データのリストア」に従って、OAA/OARMファイル・システム・データを新しいシステムにリストアします。
  3. 「OAA/OARMポリシーおよび構成データのリストア」に従って、ポリシーおよび構成データをリストアします。

B.2.4 OAA/OARMファイル・システム・データのリストア

OAA/OARMファイル・システム・データをリストアするには、最初にバックアップを作成しておく必要があります。「ファイル・システム・データのバックアップ」を参照してください。

既存のインストールへのファイル・システム・データのリストア

ファイル・システム・データを同じ環境にリストアするには:
  1. ファイル・システム・データをバックアップからNFSボリューム<NFS_CONFIG_PATH><NFS_CREDS_PATH><NFS_LOGS_PATH>および<NFS_VAULT_PATH>にコピーします。
  2. <NFS_CONFIG_PATH>/installOAA.propertiesファイルを確認し、NFS、Oracle Database、OAM OAuthエンドポイントなどのすべての外部リソースが使用可能で実行中であることを確認します。
  3. OAA管理コンテナが実行中であるかどうかを確認します:
    kubectl get pods -n <namespace> | grep oaamgmt
    たとえば:
    kubectl get pods -n oaans | grep oaamgmt
  4. OAA管理コンテナが実行されていない場合は、次のステップを実行する必要があります:
    1. installOAA.propertiesを<NFS_CONFIG_PATH>から$WORKDIR/oaaimages/oaa-installディレクトリにコピーします。
    2. 「管理コンテナの作成」に従って、OAA管理を起動します。
  5. 「既存のインストールへのリストア」のOAA/OARMポッドを再起動する手順に進みます。

新規インストールへのファイル・システム・データのリストア

ファイル・システム・データを新しい環境にリストアするには:
  1. ファイル・システム・データをバックアップからNFSボリューム<NFS_CONFIG_PATH><NFS_CREDS_PATH><NFS_LOGS_PATH>および<NFS_VAULT_PATH>にコピーします。
  2. <NFS_CONFIG_PATH>/installOAA.propertiesファイルを確認し、NFS、Oracle Database、OAM OAuthエンドポイントなどのすべての外部リソースが使用可能で実行中であることを確認します。

    ノート:

    新しいシステムやデータベースにリストアする場合は、関連するすべてのパラメータが新しいシステムやデータベースを参照していることを確認してください。
  3. <NFS_LOGS_PATH>/status.infoファイルを削除します。
  4. installOAA.propertiesを<NFS_CONFIG_PATH>から$WORKDIR/oaaimages/oaa-installディレクトリにコピーします。
  5. 「管理コンテナの作成」に従って、OAA管理コンテナを起動します。
  6. OAA管理コンテナ内からOAAインストール・スクリプトを実行します。「OAA、OARMおよびOUAのデプロイ」を参照してください。これにより、リストアされたOAA/OARMファイル・システム・データに基づいて新しいデプロイメントが作成されます。

B.2.5 OAA/OARMポリシーおよび構成データのリストア

ポリシーおよび構成データをリストアするには、以前にスナップショットを作成しているか、前のバックアップからのスナップショットzipファイルを保持している必要があります。

ノート:

次のステップを実行する前に、現在のポリシーおよび構成データのスナップショットを取得することをお薦めします。「ポリシーおよび構成データのバックアップ」を参照してください。

前のsnapshotIdからのリストア

前のsnapshotIdからリストアするには:
curl --location --request POST '<PolicyUrl>/policy/risk/v1/snapshots/<snapshotId>/apply' \
--header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
--data ''

PolicyUrlの検索および認証の詳細は、「OAA管理API」を参照してください。

スナップショット・エンドポイントの詳細は、スナップショットRESTエンドポイントに関する項を参照してください。

スナップショットzipファイルからのリストア

スナップショットzipファイルからリストアするには:
  1. スナップショットzipファイルをインポートします:
    curl --location --request POST '<PolicyUrl>/policy/risk/v1/snapshots/' \
    --header 'Content-Type: application/octet-stream' \
    --header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
    --data-binary '@<PATH>/snapshot<DATE>.zip'
    これにより、snapshotIdが返されます:
    {
      "status": "201",
      "message": "Snapshot created successfully.",
      "snapshot": {
        "name": "Backup Snapshot <DATE>",
        "description": "This is a snapshot from <DATE>",
        "snapshotId": "4",
        "createTime": "<DATE>"
      }
    }
  2. スナップショットを適用します:
    curl --location --request POST '<PolicyUrl>/policy/risk/v1/snapshots/<snapshotId>/apply' \
    --header 'Authorization: Basic <Base64Encoded(<username>:<password>)>' \
    --data ''
    出力は、次のようなものです:
    {
      "serverResponseTime": 1683106368000,
      "clientContext": {
        "invocationContext": {
          "createTime": 1683106335536,
          "invocationId": "d61f7f30-a264-4be0-bb2d-9e5e88c58d19",
          "traceDataXml": "<OARMInvocationContext><invocationId><![CDATA[d61f7f30-a264-4be0-bb2d-9e5e88c58d19]]></invocationId><locale></locale><createTime><DATE></createTime></OARMInvocationContext>"
        },
        "sessionContext": {
          "sessionId": "",
          "clientId": "",
          "clientVersion": "",
          "userPrincipal": "",
          "ipAddress": "",
          "userAgent": "",
          "createTime": 1683106335537,
          "appName": "UASPolicyApi",
          "accessControlledRole": false,
          "orgAccessList": [],
          "roles": [],
          "traceDataXml": "<OARMSessionContextOARMSessionContext><clientId></clientId><userAgentString></userAgentString><userPrincipal></userPrincipal><roles><![CDATA[[]]]></roles><ip></ip><clientVersion></clientVersion><createTime><DATE></createTime></OARMSessionContextOARMSessionContext>"
        },
        "taskContext": {
          "taskId": "d61f7f30-a264-4be0-bb2d-9e5e88c58d19",
          "createTime": 1683106335536,
          "traceDataXml": "<OARMTaskContext><taskId><![CDATA[d61f7f30-a264-4be0-bb2d-9e5e88c58d19]]></taskId><createTime><DATE></createTime></OARMTaskContext>"
        },
        "traceDataXml": "<clientContext><OARMSessionContextOARMSessionContext><clientId></clientId><userAgentString></userAgentString><userPrincipal></userPrincipal><roles><![CDATA[[]]]></roles><ip></ip><clientVersion></clientVersion><createTime><DATE></createTime></OARMSessionContextOARMSessionContext><OARMTaskContext><taskId><![CDATA[d61f7f30-a264-4be0-bb2d-9e5e88c58d19]]></taskId><createTime><DATE></createTime></OARMTaskContext><OARMInvocationContext><invocationId><![CDATA[d61f7f30-a264-4be0-bb2d-9e5e88c58d19]]></invocationId><locale></locale><createTime><DATE></createTime></OARMInvocationContext></clientContext>"
      },
      "object": true,
      "error": false,
      "success": true,
      "oarmmessages": [],
      "warning": false,
      "serverVersion": "11.1.1.2.0",
      "systemError": false,
      "serverId": "oaainstall-oaa-policy-77bccf774b-48b6s/10.244.1.206",
      "traceDataXml": "<OARMResponse><serverId><![CDATA[oaainstall-oaa-policy-77bccf774b-48b6s/10.244.1.206]]></serverId><status><![CDATA[SUCCESS]]></status><serverResponseTime><DATE></serverResponseTime><serverVersion><![CDATA[11.1.1.2.0]]></serverVersion><messageList></messageList></OARMResponse>"