Oracle Cloud Infrastructureドキュメント

Exadata DBシステムのOracle Database機能の構成

このトピックでは、Exadata DBシステムで使用するOracle Multitenant、表領域の暗号化および大規模ページを構成する方法について説明します。

Exadata DBシステムでのOracle Multitenantの使用

Oracle Database 12c以上を使用するExadata DBシステムを作成すると、Oracle Multitenant環境が作成されます。

マルチテナント・アーキテクチャによって、Oracleデータベースを、0、1または多数のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)として機能させることができます。 PDBは、Oracle Net Servicesクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。 Oracle Database 12cより前のバージョンを使用するすべてのOracleデータベースは非CDBです。

Oracle Transparent Data Encryption (TDE)をプラガブル・データベース(PDB)で使用するには、PDBのマスター暗号化キーを作成およびアクティブ化する必要があります。

マルチテナント環境では、各PDBには、すべてのコンテナで使用される単一のキーストアに格納された独自のマスター暗号化キーがあります。

Exadata DBシステムCDBに接続する暗号化されたpdbのマスター暗号化キーをエクスポートおよびインポートする必要があります。

ソースPDBが暗号化されている場合、マスター暗号化キーをエクスポートしてからインポートする必要があります。

PDB内からTDEマスター暗号化キーをエクスポートおよびインポートすることで、PDBに属するすべてのTDEマスター暗号化キーをエクスポートおよびインポートできます。 TDEマスター暗号化キーのエクスポートおよびインポートは、PDBの切断と接続操作をサポートします。 PDBのアンプラグとプラグでは、PDBに属するすべてのTDEマスター暗号化キー、およびメタデータが対象になります。

「『Oracle Database Advanced Securityガイド』」でリリース191812.2または12.1のPDB向けのTDEマスター暗号化キーのエクスポートおよびインポートを参照してください。

「Oracle Database SQL言語リファレンス」でリリース191812.2または12.1のADMINISTER KEY MANAGEMENTに関する項を参照してください。

PDBの暗号化キーを作成してアクティブ化する必要があるかどうかを判断するため
PDB内でマスター暗号化キーを作成およびアクティブ化するには
マスター暗号化キーをエクスポートおよびインポートするには

表領域暗号化の管理

デフォルトでは、Exadataデータベースに作成するすべての新しい表領域が暗号化されます。

ただし、データベースの作成時に最初に作成される表領域は、デフォルトでは暗号化されません。

  • Oracle Database 12cリリース2以上を使用するデータベースの場合、データベースの作成時に最初に作成されたUSERS表領域のみ暗号化されます。 USERS以外の表領域を含め、その他の表領域は暗号化されません:
    • ルート・コンテナ(CDB$ROOT)。
    • シード・プラガブル・データベース(PDB$SEED)です。
    • 最初のPDBは、データベースの作成時に作成されます。
  • Oracle Database 12cリリース1またはOracle Database 11gを使用するデータベースの場合、データベースの作成時に最初に作成された表領域は暗号化されません。

Exadataにおける表領域の暗号化の実装と、様々なデプロイメント・シナリオに対する影響の詳細は、「Oracle CloudにおけるOracle Databaseの表領域暗号化の動作」を参照してください。

暗号化された表領域の作成

ユーザー作成表領域は、デフォルトで暗号化されます。

デフォルトでは、SQL CREATE TABLESPACEコマンドを使用して作成されるすべての新しい表領域は、AES128暗号化アルゴリズムで暗号化されます。 デフォルトの暗号化を使用するためにUSING 'encrypt_algorithm'句を含める必要はありません。

CREATE TABLESPACEコマンドにUSING 'encrypt_algorithm'句を含めることで、サポートされている別のアルゴリズムを指定できます。 サポートされているアルゴリズムは、AES256、AES192、AES128および3DES168.です。

表領域暗号化の管理

ソフトウェア・キーストア(Oracle Database 11gではOracleウォレットと呼ばれます)とマスター暗号化キーを管理でき、デフォルトで暗号化を有効にするかどうかを制御できます。

マスター暗号化キーの管理

表領域の暗号化では、2層のキー・ベース・アーキテクチャを使用して、表領域を透過的に暗号化(および復号化)します。 マスター暗号化キーは、外部セキュリティ・モジュール(ソフトウェア・キーストア)に格納されます。 このマスター暗号化キーは表領域暗号化キーの暗号化に使用され、表領域のデータの暗号化と復号化に使用されます。

Exadata DBシステムでデータベースが作成されると、ローカル・ソフトウェア・キーストアが作成されます。 キーストアはコンピュート・ノードに対してローカルであり、データベース作成プロセス中に指定された管理パスワードによって保護されます。 データベースが起動すると、自動ログイン・ソフトウェア・キーストアが自動的に開きます。

ADMINISTER KEY MANAGEMENT SQL文を使用して、マスター暗号化キーを変更(ローテーション)できます。 例えば:

SQL> ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG 'tag'
IDENTIFIED BY password WITH BACKUP USING 'backup';
keystore altered.

「『Oracle Database Advanced Securityガイド』」のリリース191812.2または12.1の"TDEマスター暗号化キーの管理"に関する項、またはリリース「『Oracle Database Advanced Security管理者ガイド』」の"マスター暗号化キーの設定およびリセット"に関する項を参照してください。

デフォルトの表領域暗号化の制御

ENCRYPT_NEW_TABLESPACES初期化パラメータでは、新しい表領域のデフォルトでの暗号化が制御されます。 Exadataデータベースでは、このパラメータはデフォルトでCLOUD_ONLYに設定されています。

このパラメータの値は次のとおりです。

説明
ALWAYS 作成時には、ENCRYPTION句に異なるアルゴリズムが指定されていないかぎり、表領域はAES128アルゴリズムで透過的に暗号化されます。
CLOUD_ONLY Exadataデータベースで作成される表領域は、ENCRYPTION句で異なるアルゴリズムが指定されていないかぎり、AES128アルゴリズムで透過的に暗号化されます。 非汎用データベースの場合、表領域は、ENCRYPTION句が指定されている場合にのみ暗号化されます。 ENCRYPTIONがデフォルト値です。
DDL 作成時、表領域はデフォルトでは透過的に暗号化されず、ENCRYPTION句が指定されている場合にのみ暗号化されます。

ノート

Oracle Database 12cリリース2 (12.2)以降では、Exadataデータベースで暗号化されていない表領域を作成できなくなりました。
ENCRYPT_NEW_TABLESPACESDDLに設定し、ENCRYPTION句を指定せずにCREATE TABLESPACEコマンドを発行した場合は、エラー・メッセージが返されます。

大規模ページの管理

Oracle Databaseでは、メモリー量の多いシステムで、大規模ページのパフォーマンスがかなり向上します。 Oracle Cloud InfrastructureでホストされたExadata DBシステムのOracle Databaseには、大規模ページをデフォルトで使用するための構成設定が用意されていますが、大規模ページの構成を最適化するために手動で調整することもできます。

大規模なページは、Linuxカーネル2.6.に統合された機能です。 大規模ページを有効にすると、オペレーティング・システムが大規模なメモリー・ページをサポートできるようになります。 大規模ページを使用して、Linuxページ表を管理するために必要なシステムCPUおよびメモリー・リソースの量を削減して(これには仮想メモリー・アドレスと物理メモリー・アドレスのマッピングが格納されます)、システム・パフォーマンスを向上させることができます。 Oracle Databasesでは、大規模ページを使用することで、システム・グローバル領域(SGA)に関連付けられるページ表エントリの数を大幅に削減できます。

Oracle Cloud InfrastructureでホストされるExadata DBシステムでは、標準ページは4 KBですが、大規模ページはデフォルトで2 MBです。 このため、50 GB SGAを持つExadata DBシステム上のOracle Databaseでは、25,600大規模ページのみと比較してSGAを格納するための13,107,200標準ページが必要です。 その結果、CPUリソースの格納および管理のために必要なメモリー量が少なくて済む、ページ表のサイズが大幅に小さくなります。

大規模ページの構成の調整

Oracle Database用の大規模ページの構成は、2ステップ・プロセスです:

  • オペレーティング・システム・レベルでは、大規模ページに割り当てられるメモリー量全体は、/etc/sysctl.confファイルのvm.nr_hugepagesエントリで制御されます。 この設定は、環境内の各コンピュート・ノードで実行され、すべてのコンピュート・ノードにわたり設定の一貫性を保つことを強くお薦めします。 大規模ページの割当てを変更するには、各コンピュート・ノードでrootユーザーとして次のコマンドを実行します:

    # sysctl -w vm.nr_hugepages=value 

    ここで、valueは割り当てる大規模ページの数です。

    Oracle Cloud InfrastructureでホストされているExadata DBシステムでは、各大規模ページはデフォルトで2 MBです。 したがって、大規模ページに50 GBのメモリーを割り当てるには、次のコマンドを実行できます:

    # sysctl -w vm.nr_hugepages=25600
  • Oracle Databaseレベルでは、大規模ページの使用はUSE_LARGE_PAGESインスタンス・パラメータの設定によって制御されます。 この設定は、クラスタ・データベースの各データベース・インスタンスに適用されます。 Oracleでは、データベースに関連付けられたすべてのデータベース・インスタンスで一貫性のある設定を行うことをお薦めします。 次のオプションを使用できます。
    • TRUE - 使用可能な場合に、データベース・インスタンスで大規模ページを使用できることを指定します。 11.2.0.3の後のOracle Databaseのすべてのバージョンについて、Oracleは、大規模ページを使用して、SGAの大部分を割り当てます。 大規模ページの割当てを使い切ると、標準のメモリー・ページが使用されます。
    • FALSE - データベース・インスタンスで大規模ページを使用しないことを指定します。 この設定は、通常、大規模ページが利用できるページが多い場合は推奨されません。
    • ONLY - データベース・インスタンスで大規模ページを使用する必要があることを指定します。 この設定では、SGA全体が大規模ページに対応できない場合、データベース・インスタンスの起動に失敗します。

オペレーティング・システム・レベルまたはOracle Databaseレベルで調整を行う場合は、すべての構成が機能することを確認してください。

大規模ページの一般的な概要および大規模ページの構成の詳細は、「Oracle Database LinuxおよびUNIXベースのオペレーティング・システム管理者リファレンス」でリリース191812.1または11.2を参照してください。 また、「Oracle Databaseリファレンス」でリリース12.212.1または11.2USE_LARGE_PAGESを参照してください。