外部デバイスでの暗号化キーの管理

データベース暗号化キーを格納および管理する方法について学習します。

Oracle Exadata Database Service on Dedicated Infrastructureでデータベースのデータベース暗号化キーを格納および管理するには、2つのオプションがあります:

  1. 顧客のVMオペレーティング・システムがアクセスできるOracle Advanced Cluster File System (Oracle ACFS)に格納されている自動ログイン・ウォレット・ファイル。
  2. Oracle Key Vault

Oracle Exadata Database Service on Dedicated Infrastructureの顧客管理キー

Oracle Exadata Database Service on Dedicated Infrastructureの顧客管理キーは、Oracle Exadata Database Service on Dedicated Infrastructure機器に格納されているパスワードで保護されたウォレット・ファイルから、Oracle DatabaseのOracle Database TDEマスター暗号化キーを制御するOKVサーバーに移行できる機能です。

Oracle Key Vault (OKV)は、暗号化されたExaDB-Dデータベースに対して、フォルト・トレラントで可用性の高いスケーラブルなキーおよびシークレット管理を提供します。顧客管理キーは、データの保護に使用されているキーのライフサイクルを集中的に管理、格納およびモニターしながら、セキュリティ・ガバナンス、規制コンプライアンスおよびデータの同種の暗号化を必要とする場合に使用します。

次のことができます:

  • Data Guardで有効化されているかどうかにかかわらず、データベースのOracle管理キーから顧客管理キーに切り替えます。
  • セキュリティ準拠を維持するためのキーのローテーション
  • PDBキーのローテーションもサポートされています。CDBおよびPDBキーのローテーション操作は、データベースが顧客管理の場合にのみ許可されます。

要件

Oracle Key Vaultについて

Oracle Key Vaultは、企業内のキーおよびセキュリティ・オブジェクトを一元管理するために構築された、フルスタックのセキュリティ強化型ソフトウェア・アプライアンスです。

ノート

Oracle Key Vaultは、顧客がプロビジョニングおよび管理するシステムであり、Oracle Cloud Infrastructure管理サービスの一部ではありません。

キー・ストアの概要

オンプレミスのOracle Key Vault (OKV)を顧客管理データベース・クラウド・サービスと統合して、ExaDB-Dで重要なデータを保護します。

Oracle Key Vaultの統合により、暗号化キーを完全に制御し、外部の一元化されたキー管理デバイスに安全に格納できます。

OKVは、Oracleウォレット、JavaキーストアおよびOracle Advanced Security Transparent Data Encryption (TDE)マスター・キー用に最適化されています。Oracle Key Vaultでは、OASIS KMIP標準がサポートされています。このフルスタックのセキュリティ強化型ソフトウェア・アプライアンスは、セキュリティ、可用性およびスケーラビリティのためにOracle LinuxとOracle Databaseのテクノロジを使用しており、互換性のあるハードウェアを選択してデプロイできます。

OKVには、クライアントがエンドポイントを自動登録し、ウォレットおよびキーを設定するためのRESTインタフェースも用意されています。Oracle Exadata Database Service on Dedicated Infrastructureは、OKVアプライアンスへの接続に必要なOKV RESTユーザー管理者パスワードをパスワードで保護されたウォレット・ファイルに一時的に格納し、顧客VMで実行されているソフトウェアがOKVサーバーに接続できるようにします。TDEキーをOKVに移行した後、クラウド自動化ソフトウェアはウォレット・ファイルからパスワードを削除します。Oracleのボールト・サービスを使用してシークレットを作成していることを確認します。これには、キー管理のためにAutonomous DatabaseがOKVに接続するために必要なパスワードが格納されます。

詳細は、Oracle Key Vaultを参照してください。

Oracle Exadata Database Service on Dedicated InfrastructureでのOKVの管理に必要なIAMポリシー

Oracle Exadata Database Service on Dedicated InfrastructureシステムでOKVを管理するためのアイデンティティ・アクセス管理(IAM)ポリシーを確認します。

ポリシーは、リソースへのアクセス権を誰が持っているかを指定するIAMドキュメントです。これは様々な方法で使用されます: ポリシー言語で記述された個々のステートメントを意味する場合、(Oracle Cloud ID (OCID)が割り当てられている)単一の名前付きポリシー・ドキュメントに含まれるステートメントのコレクションを意味する場合、および組織がリソースへのアクセスを制御するために使用する各ポリシーの全体を意味する場合があります。

コンパートメントは、組織の管理者から権限を付与された特定のグループのみがアクセスできる関連リソースのコレクションです。

Oracle Cloud Infrastructureを使用するには、管理者が記述するポリシーで、コンソールを使用するか、ソフトウェア開発キット(SDK)、コマンドライン・インタフェース(CLI)またはその他のツールでREST APIを使用するかにかかわらず、必要なタイプのアクセス権が付与されている必要があります。アクションを実行しようとしたときに、権限がないか認可されていないというメッセージが表示された場合は、付与されているアクセス権のタイプおよび作業するコンパートメントを管理者に確認してください。

管理者の場合: データベース管理者によるDBシステムの管理のポリシーにより、指定したグループがデータベースおよび関連データベース・リソースに対してすべてのことを実行できます。

ポリシーを初めて使用する場合は、ポリシーの開始および共通ポリシーを参照してください。データベースのポリシーの書込みを詳細に調査する場合は、データベース・サービスの詳細を参照してください。

リソースのタグ付け

リソースにタグを適用すると、ビジネス・ニーズに応じてそれらを整理しやすくなります。

リソースの作成時にタグを適用することも、後から必要なタグでリソースを更新することもできます。タグの適用の詳細は、リソース・タグを参照してください。

別のコンパートメントへのリソースの移動

OKV Vault、シークレットおよびキーストア・リソースは、コンパートメント間で移動できます。

OCIリソースを新しいコンパートメントに移動すると、固有のポリシーはすぐに適用され、リソースへのアクセスに影響します。OKV Vaultリソースを移動しても、OKV Vaultに含まれるOKV VaultキーまたはOKV Vaultシークレットへのアクセスには影響しません。OCIキーまたはOCIシークレットは、関連付けられているOKV Vaultの移動とは別に、コンパートメント間で移動できます。詳細は、コンパートメントの管理を参照してください。

Oracle Key Vaultと連携するためのOracle Exadata Database Service on Dedicated Infrastructureの設定

Oracle Key Vaultと連携するようにOracle Exadata Database Service on Dedicated Infrastructureを設定するための前提条件を確認します。

前提条件

  1. OKVが設定されており、Exadataクライアント・ネットワークからそのネットワークにアクセスできることを確認します。OKVクライアント・ソフトウェアおよびOracleデータベース・インスタンスがOKVサーバーにアクセスできるように、クライアント・ネットワーク上のエグレスでポート443、5695および5696を開きます。
  2. OKVユーザー・インタフェースからRESTインタフェースが有効になっていることを確認します。
  3. 「OKV REST管理者」ユーザーを作成します。

    「okv_rest_user」などの任意の修飾ユーザー名を使用できます。ADB-C@C、ExaDB-C@CおよびExaDB-Dでは、同じまたは異なるRESTユーザーを使用します。これらのデータベースは、同じオンプレミスOKVクラスタまたは異なるオンプレミスOKVクラスタでキー管理できます。ExaDB-C@CおよびExaDB-Dには、エンドポイントの作成権限を持つRESTユーザーが必要です。ADB-C@Cには、create endpointおよびcreate endpoint group権限を持つRESTユーザーが必要です。

  4. OKVへの接続に必要なOKV管理者資格証明およびIPアドレスを収集します

詳細は、「ネットワーク・ポート要件」、「Oracle Key Vaultユーザーの管理」および「管理ロールおよびユーザー権限の管理」を参照してください。

ステップ1: OKV Vault ServiceでのVaultの作成およびOKV REST管理者パスワードを格納するためのVaultへのシークレットの追加

Oracle Databaseを登録してOKVでウォレットをリクエストするためにOracle Databaseがプロビジョニングされるたびに、Exadata Cloud InfrastructureはRESTを介してOKVと通信します。したがって、Exadataインフラストラクチャは、OKVサーバーに登録するためにREST管理資格証明にアクセスする必要があります。

これらの資格証明は、OCIのOracle Vault Serviceにシークレットとして安全に格納され、必要な場合にのみExadata Cloud Infrastructureインフラストラクチャからアクセスされます。必要に応じて、資格証明はパスワードで保護されたウォレット・ファイルに格納されます。

OKV VaultサービスにOKV管理者パスワードを格納するには、ボールトの管理で説明されている手順に従ってボールトを作成し、シークレットの管理で説明されている手順に従ってそのボールトにシークレットを作成します。

ステップ2: OCIボールトのシークレットにアクセスするキー・ストアのために動的グループおよびポリシー・ステートメントを作成します

OCIボールトのシークレットにアクセスする権限をキー・ストア・リソースに付与するには、これらのリソースを識別するIAM動的グループを作成し、OCIボールトおよびシークレットで作成したシークレットへのアクセス権をその動的グループに付与するIAMポリシーを作成します。

動的グループを定義する場合、キー・ストアを含むコンパートメントのOCIDを指定して、キー・ストア・リソースを識別します。

  1. キー・ストア・リソースを含むコンパートメントのOCIDをコピーします。

    このOCIDは、コンパートメントの「コンパートメントの詳細」ページにあります。

  2. Oracle Cloud Infrastructureドキュメントの「動的グループを作成するには」の手順に従って、動的グループを作成します。これらの手順に従う場合、次の形式の一致ルールを入力します:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    ここで、<compartment-ocid>は、キー・ストア・リソースを含むコンパートメントのOCIDです。

  3. 動的グループを作成した後、ボールトおよびシークレットを含むコンパートメントより上位のコンパートメント階層にあるコンパートメントのIAMポリシーに移動(または作成)します。その後、次の形式のポリシー・ステートメントを追加します:
    allow dynamic-group <dynamic-group> to use secret-family in compartment <vaults-and-secrets-compartment>

    ここで、<dynamic-group>は作成した動的グループの名前、<vaults-and-secrets-compartment>はボールトおよびシークレットを作成したコンパートメントの名前です。

ステップ3: キー・ストアに対するExadataインフラストラクチャのために動的グループおよびポリシー・ステートメントを作成します

キー・ストアにアクセスする権限をExadata Cloud Infrastructureリソースに与えるには、これらのリソースを識別するIAM動的グループを作成し、作成したキー・ストアへのアクセス権をこの動的グループに付与するIAMポリシーを作成します。

動的グループを定義する場合、Exadataインフラストラクチャを含むコンパートメントのOCIDを指定して、Exadata Cloud Infrastructureリソースを識別します。

  1. Exadata Cloud Infrastructureリソースを含むコンパートメントのOCIDをコピーします。

    このOCIDは、コンパートメントの「コンパートメントの詳細」ページにあります。

  2. Oracle Cloud Infrastructureドキュメントの「動的グループを作成するには」の手順に従って、動的グループを作成します。これらの手順に従う場合、次の形式の一致ルールを入力します:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    <compartment-ocid>は、Exadataインフラストラクチャ・リソースを含むコンパートメントのOCIDです。

  3. 動的グループを作成した後、キー・ストアを含むコンパートメントより上位のコンパートメント階層にあるコンパートメントのIAMポリシーに移動(または作成)します。その後、次の形式のポリシー・ステートメントを追加します:
    Allow dynamic-group <dynamic-group> to use keystores in compartment <key-store-compartment>

    ここで、<dynamic-group>は作成した動的グループの名前、<key-store-compartment>はキー・ストアを作成したコンパートメントの名前です。

ステップ4: OCIボールト・サービスからシークレットを使用するデータベース・サービスのためにポリシー・ステートメントを作成します

OCI Vaultのシークレットを使用してOKV RESTインタフェースにログインする権限をExadata Databaseサービスに付与するには、OCIボールトおよびシークレットを含むコンパートメントよりも上位のコンパートメント階層にあるIAMポリシーに移動(または作成)します。

その後、次の形式のポリシー・ステートメントを追加します:

allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

ここで、<vaults-and-secrets-compartment>は、OCIボールトおよびシークレットを作成したコンパートメントの名前です。

OKV Vaultが設定され、IAM構成が配置されると、Oracle Key Vaultのキー・ストアをOCIにデプロイしてExadata VMクラスタに関連付ける準備が整います。

ステップ5: キー・ストアを作成します

キー・ストアを作成して、Oracle Key Vault (OKV)などのオンプレミス暗号化キー・アプライアンスに接続するには、次のステップに従います。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。

    「キー・ストア」ページには、キー・ストアの名前、各キー・ストアに関連付けられているデータベースの数、および各キー・ストアが作成された日付のリストが表示されます。

  4. 「キー・ストアの作成」をクリックします。
  5. 表示される「Create Key Store」ダイアログで、次の一般情報を入力します。
    • キー・ストアの命名: キー・ストア・リソースを簡単に識別できるようにするわかりやすい説明またはその他の情報。機密情報を入力しないでください。
    • Oracle Key Vault接続設定
      • 接続IPアドレス:少なくとも1つのOKVクラスタ・ノードのIPアドレスを入力します。同じOKVクラスタの複数のカンマ区切りIPアドレス(たとえば、193.10.20.1、193.10.20.2)を使用できます。
      • 管理者ユーザー名: okv_rest_userのユーザー名を入力します。
      • 管理者パスワード・シークレット: 管理者パスワードは、OCI内のシークレット管理サービスに格納されます。OCIシークレットとして格納されているokv_rest_userパスワードを含むテナンシ内のOCI Vaultを選択します。
    • タグ: オプションで、タグを適用できます。リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用する必要があるかどうかがわからない場合は、このオプションをスキップするか(後でタグを適用できます)、管理者に問い合せてください。機密情報を入力しないでください。
  6. 「キー・ストアの作成」をクリックします。
  7. データベースのプロビジョニング時に、必ず同じokv_rest_userユーザー資格証明を使用してください。

    詳細は、ボールトの管理キーの管理およびシークレットの管理を参照してください。

キー・ストアの管理

キー・ストアを管理する方法を学習します。

キー・ストアの詳細の表示

Oracle Key Vault (OKV)接続の詳細および関連付けられたデータベースのリストを含むキー・ストアの詳細を表示するには、次のステップに従います。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。

    「キー・ストア」ページには、キー・ストアの名前、各キー・ストアに関連付けられているデータベースの数、および各キー・ストアが作成された日付のリストが表示されます。

  4. キー・ストアの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。
  5. 「管理者パスワード・シークレット」フィールドのリンクをクリックして、シークレットの詳細を表示します。

    「関連付けられたデータベース」セクションには、このキー・ストアに関連付けられたCDBのリストが表示されます。

キー・ストアの詳細の編集

キー・ストアを編集できるのは、CDBに関連付けられていない場合のみです。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。
  4. キー・ストアの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。
  5. 「キー・ストアの詳細」ページで、「編集」をクリックします。
  6. 「キー・ストアの編集」ページで、必要に応じて変更を加え、「変更の保存」をクリックします。

別のコンパートメントへのキー・ストアの移動

Oracle Exadata Database Service on Dedicated Infrastructureシステムのキーストアをあるコンパートメントから別のコンパートメントに移動するには、次のステップに従います。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。
  4. キー・ストアの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。
  5. 「キー・ストアの詳細」ページで、「リソースの移動」をクリックします。
  6. 「別のコンパートメントへのリソースの移動」ページで、新しいコンパートメントを選択します。
  7. 「リソースの移動」をクリックします。

キー・ストアの削除

キー・ストアを削除できるのは、CDBに関連付けられていない場合のみです。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。
  4. キー・ストアの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。
  5. 「キー・ストアの詳細」ページで、「削除」をクリックします。
  6. 「キー・ストアの削除」ダイアログで、「削除」をクリックします。

キー・ストアに関連付けられたコンテナ・データベースの詳細の表示

次のステップに従って、キー・ストアに関連付けられたコンテナ・データベースの詳細を表示します。

  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 「キー・ストア」をクリックします。
  4. 表示される「キー・ストア」ページで、キー・ストアの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。
  5. 関連付けられたデータベースの名前をクリックするか、「アクション」アイコン(3つのドット)をクリックして、「詳細の表示」をクリックします。

APIを使用したキー・ストアの管理

APIを使用してキー・ストアを管理する方法について学習します。

APIの使用およびリクエストの署名の詳細は、REST APIおよびセキュリティ資格証明を参照してください。SDKについては、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。

操作 REST APIエンドポイント
OKVキー・ストアの作成 CreateKeyStore
OKVキー・ストアの表示 GetKeyStore
OKVキー・ストアの更新 UpdateKeyStore
OKVキー・ストアの削除 DeleteKeyStore
キー・ストア・コンパートメントの変更 ChangeKeyStoreCompartment
顧客管理暗号化とOracle管理暗号化の選択 CreateDatabase
キー・ストア(OKVまたはOracle管理)およびOKVウォレット名の取得 GetDatabase
キー・ストア・タイプの変更 changeKeyStoreType
OKVキーおよびOracle管理キーのローテーション RotateVaultKey

Transparent Data Encryption (TDE)キーの管理

暗号化管理構成を変更したり、TDEキーをローテーションするには、この手順を使用します。

ExaDB-Dシステムでデータベースをプロビジョニングした後、暗号化キー管理をOKVに変更し、そのデータベースのTDEキーをローテーションできます。

ノート

  • Oracleでは、Oracle Database 11gリリース2 (11.2.0.4)より後のデータベースでの暗号化キーの管理をサポートしています。
  • 暗号化キー管理はOracle管理キーから顧客管理キーに変更できますが、顧客管理キーからOracle管理キーに変更することはできません。
  • OKVで顧客管理キーに変更すると、停止の中断操作が発生し、その後再起動します。計画されたメンテナンス・ウィンドウでOKVで顧客管理キーへの移行を実行するように計画します。
  • ExadataデータベースでTDEキーの最新バージョンが使用されるようにするには、Oracle Cloud Infrastructure Consoleのデータベース詳細ページからキーをローテーションします。Vaultサービスは使用しないでください。
  • TDEキーは、顧客管理キーで構成されているデータベースでのみローテーションできます。
  • 暗号化鍵はローテーションできません。
    • 特定のOracle Homeでデータベースのリストアが進行中の場合。
    • データベースへのパッチ適用またはデータベース・ホームのパッチ適用が進行中の場合。
  1. ナビゲーション・メニューを開きます。「Oracle Database」で、「Oracle Exadata Database Service on Dedicated Infrastructure」をクリックします。
  2. コンパートメントを選択します
  3. 暗号化管理の変更またはキーのローテーションを行うデータベースを含むVMクラスタにナビゲートします。
    1. 「Exadata Database Service on Cloud@Customerインフラストラクチャ」で、「Exadata VMクラスタ」をクリックします。
    2. VMクラスタのリストで、アクセスするVMクラスタを特定し、強調表示された名前をクリックしてクラスタの詳細ページを表示します。
  4. 「データベース」セクションで、暗号化管理を変更する、またはキーをローテーションするデータベースの名前をクリックしてその詳細ページを表示します。
  5. 「他のアクション」ドロップダウンをクリックします。
  6. 「暗号化キーの管理」をクリックします。

    キー管理タイプをOracle管理キーから顧客管理キーに変更するには:

    1. 「キー管理タイプの変更」をクリックします。
    2. 「顧客管理キーを使用した暗号化」を選択します。

      Oracle Key Vaultサービスに有効な暗号化キーが必要で、後続のステップで情報を指定する必要があります。詳細は、キーおよびシークレット管理の概念を参照してください。

    3. リージョンを選択します
    4. コンパートメントの選択

      コンパートメントを変更するには、「コンパートメントの変更」リンクをクリックします。

    5. 「変更の保存」をクリックします。

    顧客管理キーを使用してデータベースの暗号化キーをローテーションするには:

    ノート

    ローテーションできるのは、顧客管理の暗号化キーのみです。
    1. 「暗号化キーのローテーション」をクリックして確認ダイアログを表示します。
    2. 「キーのローテーション」をクリックします。
ノート

  • TDEキーをOracle Key Vault (OKV)に移行するには、10分のダウンタイムが必要です。移行中、データベースの状態はUPDATINGになり、OKVを有効にするために複数のデータベースの再起動が原因で接続が失敗することがあります。アプリケーションは、移行の完了後、およびデータベースが元のACTIVE状態に戻ったときに操作を再開できます。
  • OKVキーストア・パスワードはTDEウォレット・パスワードに設定されます。

注意:

キー管理を顧客管理キーに変更した後、OKVからキーを削除すると、データベースが使用できなくなります。

このデータベースのデータベース詳細ページの「暗号化」セクションに、暗号化キー名および暗号化キーOCIDが表示されます。

Oracle Key Vault (OKV)でマスター暗号化キー(MEK)でデータが暗号化されている場合に、リモート・コンテナ・データベース(CDB)からプラガブル・データベース(PDB)を手動でクローニングする方法

dbaascliツールを使用すると、ソースCDBとターゲットCDBが同じ場合(ローカル・クローン)、または異なる場合(リモート・クローン)にPDBをクローニングできます。ただし、データがOKVのMEKで暗号化されている場合、リモートPDBはクローニングできません。

ノート

リモート・クローン中にデータを復号化/暗号化するには、コンテナ・データベースでMEKにアクセスできる必要があります。MEKは、OKVサーバーに格納されるときにターゲットCDBで使用可能にする必要があります。

ソースCDBとターゲットCDBは、同じOKVサーバーのMEKで暗号化されます。

  1. ソースPDBのOKVオブジェクトIDを取得します。
    1. SQL*Plusを使用して、ソースPDBの最新の暗号化キーを取得します。
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. 上記の手順から取得した最新のMEKのOKVオブジェクトID (uuid)を取得します。

      プロンプトが表示されたらOKVエンドポイント・パスワードを入力し、キーボードの[Enter]キーを押します。

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. ソース・データベースにOKV RESTウォレットをインストールします。
    1. okv_rest_cliディレクトリが存在しない場合は、ディレクトリを作成します。
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. okvrestclipackage.zipをダウンロードして抽出します。

      置換を求められたら、ALLを選択します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. okvrestcli.iniおよびokvrestcli_logging.propertiesファイルを次のように変更します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. client_walletディレクトリを作成します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. OKV RESTコマンドライン・インタフェースを使用してOKV RESTウォレットを作成します。

      プロンプトが表示されたら、ソースのOKV RESTパスワードを入力します。

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. ステップ#1で取得したPDB MEKのみを格納する新しいOKVウォレットを作成します。
    1. EXA_DB_NAME_DBID_PDB_NAME_WLの形式で、ソースPDBからOKVウォレット名を取得します。

      たとえば、ウォレット名はEXA_NEWDB1_37508325141_PDB_NAME_WLです。

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. OKV RESTコマンドライン・インタフェースを使用して、新しいウォレットを作成します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    3. アクティブになるまでステータスを確認します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. 「読取りと変更」および「Walletの管理」権限をソース・データベースのOKVエンドポイントから、ステップ3で作成したOKVウォレットに追加します。
    1. ソース・データベースからエンドポイント名を取得します。VMごとに1つ。

      通常、構造はEXA_DB_UNIQUE_NAME_DBID_SID_EPの形式です。

      たとえば、ノード1のエンドポイント名はEXA_NEWDB1_UNIQ_3750832514_NEWDB11_EPになります。

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. OKV RESTコマンドライン・インタフェースを使用して、読取りおよび変更権限およびWalletの管理権限を追加します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. ステップ#1で取得したソースPDBから、ステップ#3で作成したOKVウォレットにMEKを格納します。
    1. OKV RESTコマンドライン・インタフェースを使用して、MEK (ステップ#1.bで取得したuuid)を追加します。

      プロンプトが表示されたら、ソースのOKVエンドポイント・パスワードを入力します。

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. ターゲット・データベースにOKV RESTウォレットをインストールします。
    1. okv_rest_cliディレクトリが存在しない場合は、ディレクトリを作成します。
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. okvrestclipackage.zipをダウンロードして抽出します。

      置換を求められたら、ALLを選択します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<target_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. okvrestcli.iniおよびokvrestcli_logging.propertiesファイルを次のように変更します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. client_walletディレクトリを作成します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. OKV RESTコマンドライン・インタフェースを使用してOKV RESTウォレットを作成します。

      プロンプトが表示されたら、ターゲットのOKV RESTパスワードを入力します。

      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  7. 「読取り専用」および「Walletの管理」権限をターゲット・データベースのOKVエンドポイントから、ステップ3で作成したソースPDB OKVウォレットに追加します。
    1. ターゲット・データベースからエンドポイント名を取得します。VMごとに1つ。

      通常、構造はEXA_DB_UNIQUE_NAME_DBID_SID_EPの形式です。

      たとえば、ノード1のエンドポイント名はEXA_NEWDB1_UNIQ_3750832514_NEWDB11_EPになります。

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. OKV RESTコマンドライン・インタフェースを使用して、「読取り専用」および「Walletの管理」権限を追加します。
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP1> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP2> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  8. PDBをクローニングします。
    1. dbaascliを実行して、PDBをクローニングします。

      プロンプトが表示されたら、ソースDB SYSユーザーのパスワードを入力します。

      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name>
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_pdb_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 197f30e9-209e-4ec5-9700-a13f7915f8b9
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-12_10-32-17-PM_188384.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6848
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-12_10-32-35-PM_204184
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      ***************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  9. OKV RESTコマンドライン・インタフェースを使用して、ステップ3で作成したソースPDB OKVウォレットを削除します。
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  10. ステップ2で作成したOKV RESTウォレットを削除します。
    1. dbaas_acfsディレクトリのウォレット・ファイルを削除します。
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  11. ステップ6で作成したOKV RESTウォレットを削除します。
    1. dbaas_acfsディレクトリのウォレット・ファイルを削除します。
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

ソースCDBおよびターゲットCDBは、別のOKVサーバーのMEKを使用して暗号化されます。

  1. ソースPDBのOKVオブジェクトIDを取得します。
    1. SQL*Plusを使用して、ソースPDBの最新の暗号化キーを取得します。
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. 上記の手順から取得した最新のMEKのOKVオブジェクトID (uuid)を取得します。

      プロンプトが表示されたらOKVエンドポイント・パスワードを入力し、キーボードの[Enter]キーを押します。

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. ソース・データベースにOKV RESTウォレットをインストールします。
    1. okv_rest_cliディレクトリが存在しない場合は、ディレクトリを作成します。
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. okvrestclipackage.zipをダウンロードして抽出します。

      置換を求められたら、ALLを選択します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. okvrestcli.iniおよびokvrestcli_logging.propertiesファイルを次のように変更します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. client_walletディレクトリを作成します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. OKV RESTコマンドライン・インタフェースを使用してOKV RESTウォレットを作成します。

      プロンプトが表示されたら、ソースのOKV RESTパスワードを入力します。

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. ステップ#1で取得したPDB MEKのみを格納する新しいOKVウォレットを作成します。
    1. EXA_DB_NAME_DBID_PDB_NAME_WLの形式で、ソースPDBからOKVウォレット名を取得します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    2. アクティブになるまでステータスを確認します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. 「読取りと変更」および「Walletの管理」権限をソース・データベースのOKVエンドポイントから、ステップ3で作成したOKVウォレットに追加します。
    1. ソース・データベースからエンドポイント名を取得します。VMごとに1つ。

      通常、構造はEXA_DB_UNIQUE_NAME_DBID_SID_EPの形式です。

      たとえば、ノード1のエンドポイント名はEXA_NEWDB1_UNIQ_3750832514_NEWDB11_EPになります。

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. OKV RESTコマンドライン・インタフェースを使用して、読取りおよび変更権限およびWalletの管理権限を追加します。
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. ステップ#1で取得したソースPDBから、ステップ#3で作成したOKVウォレットにMEKを格納します。
    1. OKV RESTコマンドライン・インタフェースを使用して、MEK (ステップ#1.bで取得したuuid)を追加します。

      プロンプトが表示されたら、ソースのOKVエンドポイント・パスワードを入力します。

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. ステップ3で作成したOKVウォレットをOKVサーバーからローカル・ファイルシステムにダウンロードします。
    1. oracleユーザーの権限を持つ新しいディレクトリを作成します。

      このディレクトリには、ソースPDBのMEKのみを含むウォレットが格納されます。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ mkdir /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. ステップ#3で作成したOKVウォレットを、okvutilを使用してステップ#6.aで作成したディレクトリにダウンロードします。

      ローカル・ウォレットを暗号化するためのパスワードを2回入力するよう求められます。ソース・エンドポイント・パスワードと同じパスワードを使用します。また、プロンプトが表示されたら、ソース・エンドポイント・パスワードを入力します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/nfsa.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil download -l /home/oracle/<source_pdb_wallet_dir> -t wallet -g <SOURCE_PDB_OKV_WALLET>
      Enter new wallet password (<enter> for auto-login): 
      Confirm new wallet password: 
      Enter Oracle Key Vault endpoint password: 
      Download succeeded
      [oracle@testserver oracle]$
    3. ウォレット・ディレクトリをZipします。
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle
      [oracle@testserver oracle]$ zip -r <source_pdb_wallet_dir>.zip <source_pdb_wallet_dir>  
        adding: <source_pdb_wallet_dir>/ (stored 0%)
        adding: <source_pdb_wallet_dir>/ewallet.p12 (stored 0%)
      [oracle@testserver oracle]$
  7. ステップ3で作成したソースPDB OKVウォレットを削除します。
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  8. ステップ#1で作成したOKV RESTウォレットを削除します。
    1. dbaas_acfsディレクトリのウォレット・ファイルを削除します。
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  9. ステップ6の焦点のファイルシステムにダウンロードしたソースPDBウォレットをターゲット・クラスタVMにコピーします。
  10. ステップ6で作成したソース・ローカル・ファイルシステムからソースPDBウォレットを削除します。
    1. ウォレット・ディレクトリを削除します。
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -rf /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. ウォレットzipファイルを削除します。
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -f /home/oracle/<source_pdb_wallet_dir>.zip
      [oracle@testserver oracle]$
  11. ターゲット・データベースにOKV RESTウォレットをインストールします。
    1. okv_rest_cliディレクトリが存在しない場合は、ディレクトリを作成します。
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. okvrestclipackage.zipをダウンロードして抽出します。

      置換を求められたら、ALLを選択します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@testserver okv_rest_cli]$ curl -O -k https://<target_okv_server_ip>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. okvrestcli.iniおよびokvrestcli_logging.propertiesファイルを次のように変更します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. client_walletディレクトリを作成します。
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. OKV RESTコマンドライン・インタフェースを使用してOKV RESTウォレットを作成します。

      プロンプトが表示されたら、ターゲットのOKV RESTパスワードを入力します。

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/logs/okvrest.log.lck
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  12. ステップ#6で作成され、ステップ#9でターゲット・クラスタVMにコピーされたソースPDBウォレットをアップロードします。
    1. ソースPDBウォレットを解凍します。
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle/
      [oracle@testserver ~]$ unzip <source_pdb_wallet_dir>.zip 
      Archive:  nfsa_1672104454_NFSPDB_wallet.zip
         creating: <source_pdb_wallet_dir>/
       extracting: <source_pdb_wallet_dir>/ewallet.p12  
      [oracle@testserver ~]$
    2. ターゲット・データベースからOKVウォレット名をEXA_DB_NAME_DBID_WLの形式で取得します。

      たとえば、ウォレット名はEXA_NEWDB1_37508325141_WLです。

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    3. okvutilを使用して、ソースPDBウォレットをターゲットOKVウォレットにアップロードします。

      プロンプトが表示されたら、ソースPDBウォレットのパスワードを入力します。ソース・エンドポイント・パスワードと同じパスワードを使用します。

      また、プロンプトが表示されたら、ターゲット・エンドポイント・パスワードを入力します。

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/<target_db_name>.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil upload -t WALLET -l /home/oracle/<source_pdb_wallet_dir> -g <TARGET_OKV_WALLET>
      Enter source wallet password: 
      Enter Oracle Key Vault endpoint password: 
      WARNING: Object ORACLE.SECURITY.ID.ENCRYPTION. already exists; use -o to overwrite
      Upload succeeded
      [oracle@testserver oracle]$
  13. PDBをクローニングします。
    1. dbaascliを実行して、PDBをクローニングします。
      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name> 
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 7d4f638a-1f3a-4219-a05a-0215588dcae8
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-13_01-29-09-AM_179996.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6857
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-13_01-29-21-AM_196991
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      *************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  14. ステップ#1で作成したOKV RESTウォレットを削除します。
    1. dbaas_acfsディレクトリのウォレット・ファイルを削除します。
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

Oracle Exadata Database Service on Dedicated InfrastructureでOracle Key Vault (OKV)ホームをアップグレードする方法

暗号化タイプがOracle管理キーから顧客管理キー(Oracle Key Vault)に移行された後、DomUsのOKVホームは、移行に使用されたバージョンと同じままになります。

OKVサーバーがアップグレードされた場合、下位互換性のために機能は機能し続けます。ただし、顧客はクライアント・ツールの新機能を入手したい場合があります。その場合は、OKVホームおよびPKCS#11ライブラリをアップグレードします。

  1. 現在のOKVホーム・バージョンがOKVサーバー・バージョンにマイナーであることを検証します。
    1. okvutilを実行してOKVホーム・バージョンを取得します。この場合、値は21.6.0.0.0です。
      # su oracle
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.6.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
    2. ブラウザからOKVサーバーコンソールにログインして、OKVサーバーのバージョンを取得します。この場合、バージョンは21.7.0.0.0です。
  2. ソース・データベースにOKV RESTウォレットをインストールします。このステップは、1つのノードでのみ実行する必要があります。
    1. 存在しない場合は、okv_rest_cliディレクトリを作成します。
      # su oracle
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
    2. okvrestclipackage.zipをダウンロードして抽出します。置換を求められた場合は、ALLを選択します。
      $ cd /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
      $ curl -O -k https://100.75.59.249:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3865k  100 3865k    0     0  5102k      0 --:--:-- --:--:-- --:--:-- 5106k
      $ unzip -q okvrestclipackage.zip
    3. 次の情報でokvrestcli.iniを変更します。
      $ vi /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
       
      $ cat !$
      cat /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
      #Provide absolute path for log_property, okv_client_config properties
      [Default]
      #log_property=./conf/okvrestcli_logging.properties
      #server=[OKV IP Address]
      #okv_client_config=./conf/okvclient.ora
      #user=[OKV username]
      #password=[user password]
        
      #[Profile1]
      #server=
      #okv_client_config=
      #user=
        
      #[Profile2]
      #server=
      #okv_client_config=
      #user=
        
      server=<okv_server_ip>
      user=<okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    4. client_walletディレクトリを作成します。
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    5. OKV REST CLIを使用してOKV REST Walletを作成します。ソースOKV RESTパスワードの入力を求められます。
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet --wallet-user <okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
  3. DomU 1でOKVホーム・ディレクトリを準備します。
    1. OKVホーム・ディレクトリの名前を現在のOKVホーム・バージョンに変更します。
      $ mv /u02/app/oracle/admin/<dbname>/okv_home/okv /u02/app/oracle/admin/<dbname>/okv_home/okv<current_okv_home_version>
    2. OKVサーバーのバージョンとして新しいOKVホーム・ディレクトリを作成します。
      $ mkdir /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version>
    3. ステップ3.bで作成したディレクトリへの通常のOKVホーム名のシンボリックリンクを作成します。
      $ ln -s /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version> /u02/app/oracle/admin/<dbname>/okv_home/okv
  4. DomU 1でOKVホームをアップグレードします。
    1. okvutilを使用してOKVエンドポイント名を取得します。OKVエンドポイント・パスワード(TDEパスワード)の入力を求められます。エントリは「テンプレート」と呼ばれます。

      ホスト名は、現在のDomUホスト名と同じである必要があります。(通常、これはEXA_<DBNAME>_<resourceID>_<CURRENT_DOMU_HOST_NAME>_EP. <resourceID>という名前で、dbaascliシステムgetDatabasesを介してDBをリストすることで取得できます)。

      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
    2. DomU 1にエンドポイントを再エンロールします。
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint re-enroll --endpoint <endpoint_name>
      {
        "result" : "Success"
      }
    3. DomU 1にエンドポイントをプロビジョニングします。OKVエンドポイント・パスワード(TDEパスワード)の入力を求められます。
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint provision --endpoint <endpoint_name> --location /u02/app/oracle/admin/<dbname>/okv_home/okv --auto-login FALSE
      Enter Oracle Key Vault endpoint password:
      {
        "result" : "Success"
      }
  5. OKVホーム・アップグレードが正常に完了したことを確認します。
    1. OKVエンドポイントがOKV Walletのエントリをリストすることを検証します。OKVエンドポイント・パスワード(TDEパスワード)の入力を求められます。
      $ /u02/app/oracle/admin/db1902/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
      You have new mail in /var/spool/mail/root
    2. okvutilを実行してOKVホーム・バージョンを取得します。バージョンはOKV Serverバージョンと同じである必要があります。この場合、値は21.7.0.0.0になります。
      # su oracle
       
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.7.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
  6. DomUsの残りの部分でステップ3から5を繰り返します。
  7. OKVホームをアップグレードする必要がある他のDBについて、ステップ1から6を繰り返します。
  8. OKVベースのTDEを持つすべてのデータベースのDomU 1インスタンスを停止します。これは、コンソール、srvctlコマンドまたはSQL* Plusを使用して実行できます。
  9. 選択したOKVホームからroot.shを実行します。通常は、新しいOKVバージョンを持つものである必要があります。PKCS11ライブラリの置換を求めるプロンプトが表示されます。「はい」を選択する必要があります。
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. OKVベースのTDEを使用して、すべてのデータベースのDomU 1インスタンスを起動します。これは、コンソール、srvctlコマンドまたはSQL* Plusを使用して実行できます。
  11. DomUsの残りの部分でステップ8から10を繰り返します。