2 CDBの作成の準備

CDBを作成する前に、物理レイアウト、データベースの文字セット、データベースのブロック・サイズなどの多くの重要な決定を行う必要があります。

マルチテナント環境の前提条件

マルチテナント環境の前提条件を満たす必要があります。

マルチテナント環境を作成して使用する前に、次の最小前提条件を満たしている必要があります。

  • Oracle Database 12c以降のリリースをインストールするか、そのリリースにアップグレードする必要があります。Oracle MultitenantはOracle Database 11g以前のリリースではサポートされていません。

    インストールには、オペレーティング・システム固有の各環境変数の設定、およびソフトウェアとデータベース・ファイルのディレクトリ構造の設定が含まれます。

  • データベースの互換性レベルは、12.0.0以上に設定する必要があります。

  • Oracle Databaseインスタンスを起動するために十分なメモリーが使用可能であること。

    CDBに必要なメモリーは、その各コンテナのワークロードおよびコンテナの数にあわせてサイズ指定します。

  • Oracle Databaseを実行するコンピュータ上で、設計したPDBのための十分なディスク記憶域が使用可能であること。Oracle RAC環境では、十分な共有記憶域が使用可能である必要があります。

    CDBに必要なディスク記憶域は、そのCDBに含められるすべてのPDBの領域要件の合計です。

前提条件は、使用しているオペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』または『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』に説明されています。Oracle Universal Installerを使用すると、表示される手順に従ってインストールでき、環境変数、ディレクトリ構造および認可の設定に関するヘルプが表示されます。

関連項目:

CDBを作成するタイミングの決定

Oracle Databaseのソフトウェア・インストールの途中または後で、CDBを作成できます。

インストール後にCDBを作成する一般的な理由は、次のとおりです。

  • Oracle Universal Installer (OUI)を使用してソフトウェアのみをインストールし、CDBを作成しなかったため。

  • 既存のCDBと同じホストに別のCDBを作成するため。この場合、この章では、新しいCDBで既存のデータベースと同じOracleホームが使用されると想定します。OUIを再度実行して、新しいOracleホームにCDBを作成することもできます。

CDBを作成する場合は、次の方法があります。

CDBの構成方法の決定

CDBの作成を準備するには、調査と綿密な計画が必要です。

PDBの計画

プラガブル・データベース(PDB)の表および索引を計画し、それらに必要な領域を見積ります。

CDBでは、ほとんどのユーザー・データがPDBに存在します。ルートには、ユーザー・データは含まれないか、または最小限のユーザー・データが含まれます。CDBに含められるPDBを計画します。CDBのディスク記憶域要件は、Oracle Databaseインストールに必要な領域に、CDBに含められるPDBの領域要件の合計を加えたものです。

MAX_PDBS初期化パラメータは、CDBルートまたはアプリケーション・ルートで作成できるPDBの合計数の制限を指定します。MAX_PDBSのデフォルト値および最大値は、Oracle Databaseオファリングによって異なります。異なるエディションとサービスでサポートされる機能の詳細は、『Oracle Databaseライセンス情報ユーザー・マニュアル』を参照してください。

CDBにアプリケーション・コンテナを作成することもできます。アプリケーション・コンテナは、1つ以上のアプリケーションのデータを格納するアプリケーションPDBのコレクションです。また、アプリケーション・コンテナではユーザーが作成するアプリケーション共通オブジェクトがサポートされ、アプリケーション・コンテナ内のアプリケーションPDBで共有できます。

関連項目:

物理レイアウトの計画

CDBを構成する基礎となるオペレーティング・システム・ファイルのレイアウトを計画します。

CDBルート、PDB$SEED、各PDB、各アプリケーション・ルートおよび各アプリケーションPDBについて個別のデータファイルが存在します。

単一インスタンスCDBにオンラインREDOログが1つ存在するか、またはOracle Real Application Clusters (Oracle RAC) CDBのインスタンスごとにオンラインREDOログが1つ存在します。また、Oracle RACでは、すべてのデータファイルおよびオンラインREDOログ・ファイルが共有記憶域に存在する必要があります。

関連項目:

初期化パラメータの管理方法の学習

初期化パラメータ・ファイルに含まれる可能性がある初期化パラメータについて理解します。

CDBを作成する前に、サーバー・パラメータ・ファイル(SPFILE)の概念および操作について理解しておいてください。SPFILEファイルを使用すると、初期化パラメータをサーバー側のバイナリ・ファイルに永続的に格納して管理できます。

CDBでは、1つのSPFILEまたは1つのテキスト形式の初期化パラメータ・ファイル(PFILE)が使用されます。ルートに設定した初期化パラメータの値は、PDBで継承することが可能です。ALTER SYSTEM文を使用して、PDBの一部の初期化パラメータを設定できます。

SPFILEを操作する場合、CDBルートは現在のコンテナである必要があります。SPFILEを作成または変更するユーザーは、SYSDBASYSOPERまたはSYSBACKUP管理権限を持つ共通ユーザーである必要があり、AS SYSDBAAS SYSOPERまたはAS SYSBACKUPとしてそれぞれ接続して権限を行使する必要があります。

次の初期化パラメータが重要です。

  • CDBを作成するには、ENABLE_PLUGGABLE_DATABASE初期化パラメータがTRUEに設定されている必要があります。

  • CDBルートのグローバル・データベース名を作成するには、DB_NAMEDB_DOMAINの両方の初期化パラメータを設定します。ルートのグローバル・データベース名は、CDBのグローバル・データベース名です。PDBのグローバル・データベース名は、PDB名およびDB_DOMAIN初期化パラメータによって定義されます。

関連項目:

文字セットの選択

CDBの文字セットを選択する必要があります。

CDBのデータベースの文字セットを選択する場合、CDBに統合(接続)するデータベースの現在の文字セットを考慮する必要があります。CDBデータベースの文字セットにはAL32UTF8、CDBの各国語文字セットにはAL16UTF6をお薦めします。これらは最も柔軟性が高いためです。

非CDBをPDBにアップグレードする場合、最初に非CDBをAL32UTF8に移行するのが最適です。Oracle Database Migration Assistant for Unicode (DMU)を使用すると、非CDBをAL32UTF8に移行できます。CDBの作成後に、DMUを使用してCDBの文字セットを移行することはできません。

デフォルトのCDB文字セット

CDBに対して適切な文字セットを選択することが重要です。CDBの文字セットには、AL32UTF8を使用することをお薦めします。

AL32UTF8とは、Unicode標準であるUTF-8エンコードに対してOracleで使用している名前です。Unicode標準は、現在世界で使用されている言語のほとんどをサポートする汎用文字セットです。Unicode標準を使用することは、データベース処理を含め、すべての多言語テクノロジにおいて不可欠です。

CDBが作成され、本番データが累積された後にデータベース文字セットを変更することは、時間がかかる複雑なプロジェクトになります。そのため、インストール時に適切な文字セットを選択することが重要です。データベースに現在多言語データが格納されていなくても、数年内に多言語データを格納する予定がある場合、通常は、データベース文字セットにAL32UTF8を選択することのみが、適切な判断となります。Unicodeの普遍性と柔軟性は、通常はシングルバイト文字セットと比較した場合のテキスト処理速度の若干の低下や非Unicode文字セットよりも高い非ASCIIテキストの記憶域要件などの関連する追加コストを上回る価値があります。

AL32UTF8を使用せず、ベンダー要件によって選択が制限されない場合は、データベースに推奨としてリストされている文字セットの1つを使用することをお薦めします。推奨される文字セットは、最新のクライアント・オペレーティング・システムの要件に基づいて選択されたものです。Oracle Universal Installer (OUI)は推奨されるリストのみを提示し、非推奨文字セットを選択するにはDatabase Configuration Assistant (DBCA)を別途使用する必要があります。また、DBCAのデフォルトのデータベース作成構成では、推奨される文字セットのみ選択できます。非推奨文字セットを選択するには、DBCAまたはCREATE DATABASE文の高度な構成モードを使用する必要があります。

文字セットの選択肢がOUIまたはDBCAインストール・モードで表示されない場合は、別の文字セットを持つカスタム・データベース・テンプレートが選択されていないかぎり、AL32UTF8がデータベース文字セットとして使用されます。

ノート:

  • AL32UTF8は、UnicodeのUTF-8エンコーディングの適切な実装です。Oracle Universal Installer (OUI)およびOracle Database Configuration Assistant (DBCA)を使用してデータベースを作成する際、デフォルトのデータベース文字セットとしてAL32UTF8が使用されます。

  • ASCIIベースのプラットフォーム上のデータベースには、ASCIIベースの文字セットのみ選択できます。

注意:

アプリケーションのベンダーから明示的にリクエストされた場合、または必要な場合を除き、UTF8をデータベース文字セットとして使用しないでください。名称は似ていますが、UTF8はUnicodeエンコーディングUTF-8の適切な実装ではありません。UTF-8処理が予期されている場合にUTF8文字セットが使用されると、データの消失およびセキュリティの問題が発生する場合があります。このことは、XMLやURLアドレスなどのWeb関連データに特に該当します。

AL32UTF8およびUTF8文字セットは、最大文字幅が異なるため、相互に互換性がありません。AL32UTF8の最大文字幅は4バイトで、UTF8の最大文字幅は3バイトです。

関連項目:

データベースに推奨される文字セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください
CDBとPDBで異なる文字セット

CDBルートの文字セットがAL32UTF8の場合、CDBに接続されているPDBはCDBルートと異なる文字セットを保持できます。

PDB$SEEDから作成されたPDBは、そのシードからAL32UTF8文字セットを継承しますが、PDBは別の文字セットに移行できます。ルートの文字セットがAL32UTF8でない場合、CDBルート内のすべてのPDBはそのルートの文字セットを使用します。

ノート:

Oracle Multitenantでは、あるコンテナのLOBに対する異なる文字セットのコンテナによるデータ・リンク、拡張データ・リンクまたはCONTAINERS()句を使用したアクセスはサポートされません。たとえば、CDBルートとsalespdbの文字セットが異なる場合、CDBルートで実行されるCONTAINERS()問合せはsalespdbのLOBにアクセスできません。

サポートするタイム・ゾーンの決定

CDBでサポートする必要があるタイム・ゾーンを検討します。

CDB全体(すべてのPDBを含む)についてタイム・ゾーンを設定できます。また、PDBごとに個々にタイム・ゾーンを設定することもできます。

関連項目:

データベースのタイムゾーンおよびタイムゾーン・ファイルの指定の詳細は、データベースのタイムゾーン・ファイルの指定を参照してください

データベース・ブロック・サイズおよびREDOログ・ブロック・サイズの選択

CDBの標準データベース・ブロック・サイズを選択します。

このサイズはCDBの作成時にDB_BLOCK_SIZE初期化パラメータによって指定しますが、CDBの作成後は変更できません。標準ブロック・サイズはCDB全体に適用されます。

セクター・サイズが4KBのディスク上にオンラインREDOログ・ファイルを格納する場合は、オンラインREDOログのブロック・サイズを手動で指定する必要があるかどうかを確認します。

SYSTEMおよびSYSAUX表領域の作成

CDBルートおよび各PDBには、個別のSYSAUXおよびSYSTEM表領域が存在します。

SYSAUX表領域の適切な初期サイズを決定する必要があります。また、SYSTEM以外のユーザーに対してはデフォルトの表領域を使用し、データベース・オブジェクトがSYSTEM表領域に誤って保存されないようにします。CDBルートおよび各PDBに、個別のデフォルト表領域を指定できます。

関連項目:

一時表領域の計画

デフォルト一時表領域の使用を計画します。

デフォルトの一時表領域は、CDB内のすべてのコンテナに存在します。したがって、CDBルート、すべてのPDB、アプリケーション・ルートおよびアプリケーションPDBには、独自のデフォルト一時表領域があります。

Oracle Databaseは、再帰的SQL専用の共有一時表領域を使用します。ホストされるPDBテナントは、この表領域を直接使用しません。

関連項目:

UNDOモードの選択

UNDOデータを管理するために、UNDO表領域を使用します。

CDBは異なるUNDOモードで実行できます。CDB全体で1つのアクティブなUNDO領域を持つか、CDB内のコンテナごとに別々のUNDO表領域を持つように、CDBを構成できます。CDBの作成時にUNDOモードを指定でき、CDBの作成後にUNDOモードを変更できます。

CDB全体で1つのアクティブなUNDO表領域を持つことを選択した場合は、共有UNDOが使用され、ローカルUNDOが無効になります。この構成では、単一インスタンスCDBには、アクティブなUNDO表領域が1つ存在します。ローカルUNDOが有効にされている場合は、単一インスタンス構成の各コンテナに1つのUNDO表領域があります。Oracle RACのCDBの場合、PDBがオープンされる各ノードで、各PDBに1つのUNDO表領域があります。共有UNDOを使用する場合は、適切な権限を持ち、現在のコンテナがルートである共通ユーザーのみが、UNDO表領域を作成できます。

ベスト・プラクティスはCDBでローカルUNDOを使用することです。共有UNDOは、主にアップグレードおよび移行のためにのみサポートされます。共有UNDOと比べると、ローカルUNDOにはわずかなオーバーヘッドがありますが、ローカルUNDOが持つ利点によって、ほとんどの環境でより適したUNDOとなります。ローカルUNDOによって切断操作およびポイント・イン・タイム・リカバリが速くなり、一部の機能(PDBの再配置など)で必要となります。デフォルトでは、DBCAはローカルUNDOを有効にして新しいCDBを作成します。

CDBでは、UNDO_MANAGEMENT初期化パラメータをAUTOに設定する必要があり、UNDOデータの管理にUNDO表領域が必要です。

ローカルUNDOが有効になっていない場合、現在のコンテナがルートであると、UNDO表領域は静的データ・ディクショナリ・ビューおよび動的パフォーマンス(V$)ビューに表示されます。現在のコンテナがPDBである場合、UNDO表領域は動的パフォーマンス・ビューにのみ表示されます。

また、ローカルUNDOが無効になっている場合、Oracle Databaseでは、現在のコンテナがPDBであると、UNDO表領域とロールバック・セグメントの操作が警告なしで無視されます。

アプリケーションのサービスの計画

アプリケーションのニーズを満たすために必要なデータベース・サービスを計画します。

ルートおよび各PDBには、複数のサービスが必要な場合があります。ルートまたは個々のPDBに、サービスを作成できます。

データベース・サービスには、オプションのPDBプロパティがあります。サービスを作成し、作成したサービスをPDBプロパティを指定して特定のPDBに関連付けることができます。nullのPDBプロパティが指定されたサービスは、CDBルートに関連付けられます。

提供されるPL/SQLパッケージDBMS_SERVICEを使用してサービスを作成し、それらをPDBに関連付けることもできます。CREATE_SERVICEプロシージャを実行すると、サービスが現在のコンテナに関連付けられます。

SRVCTLユーティリティ、Oracle Enterprise Manager Cloud Controlおよび提供されているDBMS_SERVICE PL/SQLパッケージを使用して、サービスを管理できます。

PDBを作成すると、PDBの新しいデフォルト・サービスが自動的に作成されます。サービスには、PDBと同じ名前が付いています。このサービスは、SRVCTLユーティリティでは管理できません。ただし、ユーザー定義サービスを作成し、アプリケーションに合わせてカスタマイズできます。

関連項目:

CDBの起動と停止方法の学習

データベース・インスタンスの起動と停止、CDBのマウントとオープンの原理およびオプションについて理解します。

CDBでは、CDBルートおよびすべてのコンテナで単一のデータベース・インスタンスが共有されますが、Oracle RACを使用する場合は、複数の同時インスタンスが共有されます。CDB全体を起動して停止すると、ホストされるPDBの状態を判別できます。CDBがオープンされている場合は、CDBまたはPDBのコンテキストでALTER PLUGGABLE DATABASE文を使用して、ホストされるPDBをオープンまたはクローズすることによって、PDBのオープン・モードを制御できます。下位互換性を維持するために、ALTER DATABASE OPEN文の実行時にPDBが現在のコンテナである場合、この文はサポートされます。

PDBが現在のコンテナである場合は、SQL*PlusのSTARTUPコマンドおよびSHUTDOWNコマンドを使用することもできます。ただし、SQL*PlusのSTARTUP MOUNTコマンドはCDBのみの操作であり、PDBが現在のコンテナである場合は使用できません。

Oracle RACの計画

Oracle RACを使用する場合は、Oracle RAC環境を計画します。

Oracle RACドキュメントでは、Oracle RAC環境でのCDBの特別な考慮事項について説明しています。Oracle RAC環境でのCDB作成の詳細は、使用しているプラットフォーム固有のOracle RACインストレーション・ガイドを参照してください。