Exadata Cloud InfrastructureのOracle Database機能の構成
このトピックでは、Exadata Cloud Infrastructureインスタンスで使用するOracle Multitenant、表領域暗号化およびヒュージ・ページを構成する方法について説明します。
Exadata Cloud InfrastructureインスタンスでのOracle Multitenantの使用
Oracle Database 12c以降を使用するExadata Cloud Infrastructureインスタンスを作成すると、Oracle Multitenant環境が作成されます。
マルチテナント・アーキテクチャを使用すると、Oracleデータベースを、0個以上のプラガブル・データベース(PDB)を含むマルチテナント・コンテナ・データベース(CDB)として機能させることができます。 PDBは、Oracle Netクライアントに非CDBとして表示されるスキーマ、スキーマ・オブジェクトおよび非スキーマ・オブジェクトのポータブル・コレクションです。 Oracle Database 12cより前のバージョンを使用しているすべてのOracleデータベースは、非CDBです。
プラガブル・データベース(PDB)でOracle Transparent Data Encryption (TDE)を使用するには、PDBのマスター暗号化キーを作成してアクティブにする必要があります。
マルチテナント環境では、各PDBに、すべてのコンテナによって使用される単一キーストアに格納される独自のマスター暗号化キーがあります。
Exadata Cloud InfrastructureインスタンスCDBに接続する暗号化されたPDBのマスター暗号化キーをエクスポートおよびインポートする必要があります。
ソースPDBが暗号化されている場合は、マスター暗号化キーをエクスポートしてからインポートする必要があります。
PDB内からTDEマスター暗号化キーをエクスポートおよびインポートすることで、PDBに属するすべてのTDEマスター暗号化キーをエクスポートおよびインポートできます。 TDEマスター暗号化キーのエクスポートおよびインポートでは、PDBのアンプラグおよびプラグ操作がサポートされます。 PDBのアンプラグとプラグでは、PDBに属するすべてのTDEマスター暗号化キー、およびメタデータが対象になります。
リリース19、18、12.2または12.1については、「Oracle Database上級セキュリティ・ガイド」のPDBのTDEマスター暗号化キーのエクスポートおよびインポートに関する項を参照してください。
リリース19、18、12.2または12.1については、「Oracle Database SQL言語リファレンス」のADMINISTER KEY MANAGEMENTを参照してください。
PDBの暗号化キーを作成してアクティブ化する必要があるかどうかを判断
- SQL*Plusを起動し、
SYSDBA
権限を持つSYS
ユーザーとしてデータベースにログインします。 -
コンテナをPDBに設定します:
SQL> ALTER SESSION SET CONTAINER = pdb;
-
V$ENCRYPTION_WALLET
を次のように問い合せます。SQL> SELECT wrl_parameter, status, wallet_type FROM v$encryption_wallet;
STATUS
列にOPEN_NO_MASTER_KEY
,の値が含まれている場合、マスター暗号化キーを作成して有効化する必要があります。
PDB内にマスター暗号化キーを作成し、アクティブ化するには
-
コンテナをPDBに設定します:
SQL> ALTER SESSION SET CONTAINER = pdb;
-
次のコマンドを実行して、PDBのマスター暗号化キーを作成および有効化します。
SQL> ADMINISTER KEY MANAGEMENT SET KEY USING TAG 'tag' FORCE KEYSTORE IDENTIFIED BY keystore-password WITH BACKUP USING 'backup_identifier';
直前のコマンドで:
keystore-password
はキーストア・パスワードです。 デフォルトでは、キーストア・パスワードは、データベースの作成時に指定された管理パスワードの値に設定されます。- オプションの
USING TAG 'tag'
句を使用して、タグを新しいマスター暗号化キーに関連付けることができます。 WITH BACKUP
句とオプションのUSING 'backup_identifier'
句を使用して、新しいマスター暗号化キーが作成される前に、キーストアのバックアップを作成することができます。
「Oracle DatabaseリリースのSQL言語リファレンス」 19、18または12.2の
ADMINISTER KEY MANAGEMENT
も参照してください。ノート:
キーストアの使用中にキー管理操作を有効にするために、Oracle Database 12cリリース2以上では、
ADMINISTER KEY MANAGEMENT
コマンドにFORCE KEYSTORE
オプションが含まれています。 このオプションは、Oracle Database 12cリリース1およびOctober 2017以降のバンドル・パッチでも使用できます。Oracle Database 12cリリース1データベースに2017年10月以降のバンドル・パッチがインストールされていない場合は、次の代替ステップを実行できます:
- キーストアを閉じます。
- パスワードベースのキーストアを開きます。
FORCE KEYSTORE
オプションを指定せずにADMINISTER KEY MANAGEMENT
を使用して、PDBでマスター暗号化キーを作成してアクティブ化します。ADMINISTER KEY MANAGEMENT
をCREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
オプションとともに使用して、自動ログイン・キーストアを更新します。
-
V$ENCRYPTION_WALLET
を再び問い合せて、STATUS
列がOPEN
に設定されていることを確認します:SQL> SELECT wrl_parameter, status, wallet_type FROM v$encryption_wallet;
-
V$INSTANCE
を問い合せて、新しく更新されたキーストア・ファイルを含むデータベース・サーバーを識別するHOST_NAME
列の値をノートにとります:SQL> SELECT host_name FROM v$instance;
-
更新されたキーストア・ファイルを他のすべてのデータベース・サーバーにコピーします。
更新後のキーストアを配布するには、更新後のキーストア・ファイルが含まれていない各データベース・サーバーに対して次のアクションを実行する必要があります:
-
ルート・コンテナに接続し、
V$ENCRYPTION_WALLET
を問い合せます。WRL_PARAMETER
列に含まれるキーストアの場所をノートにとります:SQL> SELECT wrl_parameter, status FROM v$encryption_wallet;
-
更新したキーストア・ファイルをコピーします。
更新済のデータベース・サーバーから、すべての更新済キーストア・ファイルをコピーする必要があります。
V$ENCRYPTION_WALLET
のWRL_PARAMETER
列で確認されるキーストアの場所を使用します。
更新したキーストアを開きます:SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE open FORCE KEYSTORE IDENTIFIED BY keystore-password CONTAINER=all;
ノート:
キーストアの使用中にキー管理操作を有効にするために、Oracle Database 12cリリース2以上では、
ADMINISTER KEY MANAGEMENT
コマンドにFORCE KEYSTORE
オプションが含まれています。 このオプションは、Oracle Database 12cリリース1およびOctober 2017以降のバンドル・パッチでも使用できます。Oracle Database 12cリリース1データベースに2017年10月以降のバンドル・パッチがインストールされていない場合は、次の代替ステップを実行できます:
- 更新されたキーストア・ファイルをコピーする前に、キーストアを閉じます。
- 更新したキーストア・ファイルをコピーします。
FORCE KEYSTORE
オプションを指定せずにADMINISTER KEY MANAGEMENT
を使用して、更新したキーストアを開きます。
-
-
GV$ENCRYPTION_WALLET
を問い合せて、すべてのデータベース・インスタンスでSTATUS
列がOPEN
に設定されていることを確認します:SQL> SELECT wrl_parameter, status, wallet_type FROM gv$encryption_wallet;
暗号化キーをエクスポートおよびインポートするには
- マスター暗号化キーをエクスポートします。
- SQL*Plusを起動し、PDBにログインします。
-
次のコマンドを実行します。
SQL> ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "secret" TO 'filename' IDENTIFIED BY keystore-password;
- マスター暗号化キーをインポートします。
- SQL*Plusを起動し、PDBにログインします。
-
次のコマンドを実行します。
SQL> ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS WITH SECRET "secret" FROM 'filename' IDENTIFIED BY keystore-password;
表領域の暗号化の管理
デフォルトでは、Exadataデータベースに作成するすべての新しい表領域が暗号化されます。
ただし、データベースの作成時に最初に作成される表領域は、デフォルトでは暗号化されない場合があります。
- Oracle Database 12cリリース2以降を使用するデータベースの場合、データベースの作成時に最初に作成された
USERS
表領域のみが暗号化されます。USERS
以外の表領域を含む他の表領域は暗号化されません:- ルート・コンテナ(
CDB$ROOT
)。 - シード・プラガブル・データベース(
PDB$SEED
)。 - データベースの作成時に作成される最初のPDB。
- ルート・コンテナ(
- Oracle Database 12cリリース1またはOracle Database 11gを使用するデータベースの場合、データベースの作成時に最初に作成された表領域はいずれも暗号化されません。
Exadataでの表領域暗号化の実装、および様々なデプロイメント・シナリオへの影響の詳細は、「Oracle Database Oracle Cloudの表領域暗号化動作」を参照してください。
暗号化された表領域の作成
ユーザー作成された表領域は、デフォルトで暗号化されます。
デフォルトでは、SQL CREATE TABLESPACE
コマンドを使用して作成された新しい表領域は、AES128暗号化アルゴリズムで暗号化されます。 デフォルトの暗号化を使用するためにUSING 'encrypt_algorithm'
句を含める必要はありません。
CREATE TABLESPACEコマンドにUSING 'encrypt_algorithm'句を含めることで、サポートされている別のアルゴリズムを指定できます。 サポートされているアルゴリズムは、AES256、AES192、AES128および3DES168です。
表領域の暗号化の管理
ソフトウェア・キーストア (Oracle Database 11gではOracleウォレットと呼ばれる)、マスター暗号化キー、および暗号化をデフォルトで有効にするかどうかの制御を管理できます。
マスター暗号化キーの管理
表領域の暗号化では、2層式のキー・ベースのアーキテクチャを使用して表領域を透過的に暗号化(および復号化)します。 マスター暗号化キーは、外部のセキュリティ・モジュール(ソフトウェア・キーストア)内で保管されます。 このマスター暗号化キーを使用して表領域の暗号化キーを暗号化し、これを使用して表領域でデータを暗号化および復号化します。
Exadata Cloud Serviceインスタンスでデータベースが作成されると、ローカル・ソフトウェア・キーストアが作成されます。 キーストアはコンピュート・ノードに対してローカルであり、データベース作成プロセス中に指定された管理パスワードによって保護されます。 自動ログインのソフトウェア・キーストアは、データベースが起動されたときに自動的に開かれます。
ADMINISTER KEY MANAGEMENT SQL
文を使用して、マスター暗号化キーを変更(ローテーション)できます。 たとえば:
SQL> ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG 'tag'
IDENTIFIED BY password WITH BACKUP USING 'backup';
keystore altered.
リリース19、18、12.2または12.1の「Oracle Database上級セキュリティ・ガイド」のTDEマスター暗号化キーの管理に関する項、またはリリース11.2の「Oracle Database上級セキュリティ管理者ガイド」の「マスター暗号化キーの設定とリセット」を参照してください。
デフォルトの表領域の暗号化の制御
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_TABLESPACES
をDDL
に設定し、ENCRYPTION
句を指定せずにCREATE TABLESPACE
コマンドを発行すると、エラー・メッセージが返されます。
ヒュージ・ページの管理
ヒュージ・ページを使用すると、大量のメモリーを使用するシステムにおいて、Oracle Databaseのパフォーマンスが大幅に向上します。 Exadata Cloud Infrastructureインスタンス上のOracle Databaseには、デフォルトでヒュージ・ページを使用する構成設定が用意されていますが、ヒュージ・ページの構成を最適化するために手動で調整できます。
ヒュージ・ページはLinuxカーネル2.6に統合されている機能です。 ヒュージ・ページを有効化すると、オペレーティング・システムで大規模なメモリー・ページをサポートすることが可能になります。 ヒュージ・ページを使用することで、仮想メモリー・アドレスと物理メモリー・アドレス間のマッピングを保存するLinuxページ表の管理に必要なシステムCPUとメモリー・リソースが削減され、システムのパフォーマンスが改善されます。 Oracle Databaseの場合、ヒュージ・ページを使用すると、システム・グローバル領域(SGA)に関連するページ表エントリの数を大幅に削減できます。
Exadata Cloud Infrastructureインスタンスでは、標準ページは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エントリで制御されます。 これは環境内の各コンピュート・ノードで設定されます。すべてのコンピュート・ノードで、この設定を同じにすることをお薦めします。 Huge Page割当てを変更するには、各コンピュート・ノードで次のコマンドをルート・ユーザーとして実行します:
# sysctl -w vm.nr_hugepages=value
ここで、
value
は割り当てるヒュージ・ページの数です。Exadata Cloud Infrastructureインスタンスでは、各ヒュージ・ページはデフォルトで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を割り当てます。 Huge Page割当てを使い切ると、標準メモリー・ページが使用されます。FALSE
- データベース・インスタンスでヒュージ・ページを使用しないことを指定します。 ヒュージ・ページが使用可能である場合、一般的にこの設定はお薦めできません。ONLY
- データベース・インスタンスでヒュージ・ページを使用する必要があることを指定します。 この設定では、SGA全体がヒュージ・ページに収まらない場合、データベース・インスタンスの起動に失敗します。
オペレーティング・システムまたはOracle Databaseレベルで調整を行う場合は、構成全体が機能していることを確認します。
ヒュージ・ページの概要およびヒュージ・ページの構成の詳細は、リリース19、18、12.1または11.2の「Oracle Database LinuxおよびUNIXベースのオペレーティング・システムの管理者リファレンス」を参照してください。 リリース12.2、12.1または11.2については、「Oracle Databaseリファレンス」のUSE_LARGE_PAGES
も参照してください。