機械翻訳について

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

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

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

  1. 顧客のVMオペレーティング・システムからアクセス可能なOracle Advanced Cluster File System (Oracle ACFS)に格納された自動ログイン・ウォレット・ファイル内。
  2. Oracle Key Vault

Oracle Exadata Database Service on Cloud@Customerの顧客管理キー

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

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

次のことが可能です。

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

要件

Oracle Key Vaultについて

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

ノート:

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

関連トピック

キーストアの概要

オンプレミスのOracle Key Vault (OKV)を顧客管理データベース・クラウド・サービスと統合し、クリティカル・データをオンプレミスに保護します。

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

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

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

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

関連トピック

Oracle Exadata Database Service on Cloud@CustomerでOKVを管理するために必要なIAMポリシー

Oracle Exadata Database Service on Cloud@Customerシステムで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シークレットへのアクセスには影響しません。 OKV VaultキーまたはOKV Vaultシークレットは、関連付けられているOKV Vaultの移動とは無関係に、あるコンパートメントから別のコンパートメントに移動できます。 詳細は、「コンパートメントの管理」」を参照してください。

Oracle Key Vaultと連携するためのOracle Exadata Database Service on Cloud@Customerの設定

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

    okv_rest_user」など、任意の修飾ユーザー名を使用できます。 ADB-C@CおよびExaDB-C@Cの場合は、同じまたは異なるRESTユーザーを使用します。 これらのデータベースは、同じまたは異なるオンプレミスOKVクラスタでキー管理できます。 ExaDB-C@Cには、create endpoint権限を持つ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へのシークレットの追加

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

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

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

ステップ2: OKV Vaultでキー・ストアがシークレットにアクセスするための動的グループおよびポリシー・ステートメントの作成

OKV Vaultのシークレットにアクセスする権限をキー・ストア・リソースに付与するには、これらのリソースを識別するIAM動的グループを作成し、OKVボールトおよびシークレットで作成したシークレットへのこの動的グループ・アクセス権を付与する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 Infrastructureからキーストアへの動的グループおよびポリシー・ステートメントの作成

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

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

  1. Exadataインフラストラクチャ・リソースを含むコンパートメントの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: OKV Vaultサービスからシークレットを使用するためのデータベース・サービスのポリシー・ステートメントの作成

OKV Vaultのシークレットを使用してOKV RESTインタフェースにログインする権限をExadata Databaseサービスに付与するには、OKVボールトおよびシークレットを含むコンパートメントよりも上位のコンパートメントのIAMポリシーに移動(または作成)します。 次に、次の形式のポリシー・ステートメントを追加します:
allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

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

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

ステップ5: キー・ストアの作成

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

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

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

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

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

キー・ストアの管理

キー・ストア詳細の表示

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

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

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

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

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

キー・ストア詳細の編集

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

  1. ナビゲーション・メニューを開きます。 Oracle Databaseの下で、Exadata Database Service on Cloud@Customerをクリックします。
  2. コンパートメントを選択します。
  3. 「キーストア」をクリックします。
  4. 「キー・ストア」の名前をクリックするか、「処理」アイコン(3ドット)をクリックして、「詳細を見る」をクリックします。
  5. 「キー・ストア詳細」ページで、「編集」をクリックします。
  6. 「キー・ストアの編集」ページで、必要に応じて変更を行い、「変更内容を保存」をクリックします。

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

Oracle Exadata Database Service on Cloud@Customerシステムのキー・ストアをコンパートメント間で移動するには、次のステップに従います。

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

キー・ストアの削除

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

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

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

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

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

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

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

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

次の表に、キー・ストアを管理するためのREST APIエンドポイントを示します。

操作 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-C@Cシステムにデータベースをプロビジョニングした後、暗号化キー管理をOKVに変更し、そのデータベースのTDEキーをローテーションできます。

ノート:

  • Oracleでは、Oracle Database 11gリリース2 (11.2.0.4)以降のデータベースでの暗号化キーの管理がサポートされています。
  • 暗号化キー管理は、Oracle管理キーから顧客管理キーに変更できますが、顧客管理キーからOracle管理キーに変更することはできません。
  • OKVで顧客管理キーを変更すると、データベースでは停止中止操作に続いて再起動が発生します。 計画メンテナンス・ウィンドウでOKVで顧客管理キーへの移行を実行するように計画します。
  • ExadataデータベースでTDEキーの最新バージョンが使用されるようにするには、Oracle Cloud Infrastructureコンソールのデータベース詳細ページからキーをローテーションします。 Vaultサービスを使用しないでください。
  • TDEキーをローテーションできるのは、顧客管理キーで構成されているデータベースのみです。
  • 暗号化キーはローテーションできません:
    • 特定のOracle Homeでデータベースのリストアが進行中の場合。
    • データベースのパッチ適用またはデータベース・ホームのパッチ適用が進行中の場合。
  1. ナビゲーション・メニューを開きます。 Oracle Databaseをクリックし、Exadata Database Service on Cloud@Customerをクリックします。
  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. ステータスがACTIVEになるまでチェックします。
      [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. ソース・データベースのOKVエンドポイントから、ステップ3で作成したOKVウォレットに、「読取りおよび変更」および「Walletの管理」権限を追加します。
    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のMEKを、ステップ3で作成したOKVウォレットに格納します。
    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. ターゲット・データベースのOKVエンドポイントから、ステップ3で作成したソースPDB OKVウォレットに、「読取り専用」および「Walletの管理」権限を追加します。
    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. OKV RESTコマンドライン・インタフェースを使用して、新しいウォレットを作成します。 名前が提示されました: EXA_DB_NAME_DBID_PDB_NAME_WL
      [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. ステータスがACTIVEになるまでチェックします。
      [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. ソース・データベースのOKVエンドポイントから、ステップ3で作成したOKVウォレットに、「読取りおよび変更」および「Walletの管理」権限を追加します。
    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のMEKを、ステップ3で作成したOKVウォレットに格納します。
    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. okvutilを使用して、ステップ#3で作成したOKVウォレットを、ステップ#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. EXA_DB_NAME_DBID_WLという形式で、ターゲット・データベースからOKVウォレット名を取得します。

      たとえば、ウォレット名は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]#

ExaDB-C@Cで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サーバー・バージョンと同じである必要があります。 この場合、値は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. ステップ3を繰り返します - DomUsの残りの部分で5個。
  7. ステップ1を繰り返します - OKVホームをアップグレードする必要があるその他のDBの場合は6。
  8. OKVベースのTDEを持つすべてのデータベースのDomU 1インスタンスを停止します。 これは、コンソール、srvctlコマンドまたはSQL* Plusを介して実行できます。
  9. 選択したOKVホームからroot.shを実行します。 通常は、新しいOKVバージョンを持つものである必要があります。 PKCS11ライブラリの置換を求めるプロンプトが表示されます。YESを選択する必要があります。
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. OKVベースのTDEですべてのデータベースのDomU 1インスタンスを起動します。 これは、コンソール、srvctlコマンドまたはSQL* Plusを介して実行できます。
  11. ステップ8を繰り返します - DomUsの残りの部分で10個。