2 CDBの作成の準備
CDBを作成する前に、物理レイアウト、データベースの文字セット、データベースのブロック・サイズなどの多くの重要な決定を行う必要があります。
- マルチテナント環境の前提条件
マルチテナント環境の前提条件を満たす必要があります。 - CDBを作成するタイミングの決定
Oracle Databaseのソフトウェア・インストールの途中または後で、CDBを作成できます。 - CDBの構成方法の決定
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を使用すると、表示される手順に従ってインストールでき、環境変数、ディレクトリ構造および認可の設定に関するヘルプが表示されます。
関連項目:
-
使用しているオペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください
-
データベースの互換性レベルの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください
親トピック: CDBの作成の準備
CDBを作成するタイミングの決定
Oracle Databaseのソフトウェア・インストールの途中または後で、CDBを作成できます。
インストール後にCDBを作成する一般的な理由は、次のとおりです。
-
Oracle Universal Installer (OUI)を使用してソフトウェアのみをインストールし、CDBを作成しなかったため。
-
既存のCDBと同じホストに別のCDBを作成するため。この場合、この章では、新しいCDBで既存のデータベースと同じOracleホームが使用されると想定します。OUIを再度実行して、新しいOracleホームにCDBを作成することもできます。
CDBを作成する場合は、次の方法があります。
-
Database Configuration Assistant (DBCA)グラフィカル・ツールを使用
「DBCAを使用したCDBの作成」を参照してください。
-
CREATE DATABASE ... ENABLE PLUGGABLE DATABASE
SQLコマンドを使用します。「CREATE DATABASE文を使用したデータベースの作成」を参照してください
親トピック: CDBの作成の準備
CDBの構成方法の決定
CDBの作成を準備するには、調査と綿密な計画が必要です。
- PDBの計画
プラガブル・データベース(PDB)の表および索引を計画し、それらに必要な領域を見積ります。 - 物理レイアウトの計画
CDBを構成する基礎となるオペレーティング・システム・ファイルのレイアウトを計画します。 - 初期化パラメータの管理方法の理解
初期化パラメータ・ファイルに含まれる可能性がある初期化パラメータを学習します。 - 文字セットの選択
CDBの文字セットを選択する必要があります。 - CDBでサポートするタイム・ゾーンの決定
CDBでサポートする必要があるタイム・ゾーンを検討します。 - データベースおよびREDOログ・ブロック・サイズの選択
CDBの標準データベース・ブロック・サイズを選択します。 - SYSTEMおよびSYSAUX表領域の計画
CDBルートおよび各PDBには、個別のSYSAUX
およびSYSTEM
表領域が存在します。 - 一時表領域の計画
デフォルトの一時表領域を使用するように計画します。 - UNDOモードの選択
UNDO表領域を使用してUNDOデータを管理するように計画します。 - アプリケーションのサービスの計画
アプリケーションのニーズを満たすために必要なデータベース・サービスを計画します。 - CDBの起動と停止方法の理解
データベース・インスタンスの起動と停止、CDBのマウントとオープンの原理およびオプションを学習します。 - Oracle RACの計画
Oracle RACを使用する場合は、Oracle RAC環境を計画します。
親トピック: 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で共有できます。
関連項目:
-
データベース構造と記憶域およびスキーマ・オブジェクトについてさらに学習するには、『Oracle Database管理者ガイド』を参照してください
-
MAX_PDBS
についてさらに学習するには、Oracle Databaseリファレンスを参照してください
親トピック: CDBの構成方法の決定
物理レイアウトの計画
CDBを構成する基礎となるオペレーティング・システム・ファイルのレイアウトを計画します。
CDBルート、PDB$SEED
、各PDB、各アプリケーション・ルートおよび各アプリケーションPDBについて個別のデータファイルが存在します。
単一インスタンスCDBにオンラインREDOログが1つ存在するか、またはOracle Real Application Clusters (Oracle RAC) CDBのインスタンスごとにオンラインREDOログが1つ存在します。また、Oracle RACでは、すべてのデータファイルおよびオンラインREDOログ・ファイルが共有記憶域に存在する必要があります。
関連項目:
-
Oracle Managed Filesの使用の詳細は、『Oracle Database管理者ガイド』を参照してください
-
Oracle RACの記憶域の構成の詳細は、『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』を参照してください。
-
該当のOracle Databaseインストレーション・ガイドなど、使用しているオペレーティング・システム固有のOracleマニュアル。
親トピック: CDBの構成方法の決定
初期化パラメータの管理方法の学習
初期化パラメータ・ファイルに含まれる可能性がある初期化パラメータについて理解します。
CDBを作成する前に、サーバー・パラメータ・ファイル(SPFILE)の概念および操作について理解しておいてください。SPFILEファイルを使用すると、初期化パラメータをサーバー側のバイナリ・ファイルに永続的に格納して管理できます。
CDBでは、1つのSPFILEまたは1つのテキスト形式の初期化パラメータ・ファイル(PFILE)が使用されます。ルートに設定した初期化パラメータの値は、PDBで継承することが可能です。ALTER
SYSTEM
文を使用して、PDBの一部の初期化パラメータを設定できます。
SPFILEを操作する場合、CDBルートは現在のコンテナである必要があります。SPFILEを作成または変更するユーザーは、SYSDBA
、SYSOPER
またはSYSBACKUP
管理権限を持つ共通ユーザーである必要があり、AS SYSDBA
、AS SYSOPER
またはAS SYSBACKUP
としてそれぞれ接続して権限を行使する必要があります。
次の初期化パラメータが重要です。
-
CDBを作成するには、
ENABLE_PLUGGABLE_DATABASE
初期化パラメータがTRUE
に設定されている必要があります。 -
CDBルートのグローバル・データベース名を作成するには、
DB_NAME
とDB_DOMAIN
の両方の初期化パラメータを設定します。ルートのグローバル・データベース名は、CDBのグローバル・データベース名です。PDBのグローバル・データベース名は、PDB名およびDB_DOMAIN
初期化パラメータによって定義されます。
関連項目:
-
スキーマ・オブジェクトの詳細は、『Oracle Database管理者ガイド』を参照してください。
-
グローバル・データベース名の決定の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBの構成方法の決定
文字セットの選択
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を使用することをお薦めします。 - CDBとPDBで異なる文字セット
CDBルートの文字セットがAL32UTF8の場合、CDBに接続されているPDBはCDBルートと異なる文字セットを保持できます。
親トピック: 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ごとに個々にタイム・ゾーンを設定することもできます。
関連項目:
データベースのタイムゾーンおよびタイムゾーン・ファイルの指定の詳細は、データベースのタイムゾーン・ファイルの指定を参照してください
親トピック: CDBの構成方法の決定
データベース・ブロック・サイズおよびREDOログ・ブロック・サイズの選択
CDBの標準データベース・ブロック・サイズを選択します。
このサイズはCDBの作成時にDB_BLOCK_SIZE
初期化パラメータによって指定しますが、CDBの作成後は変更できません。標準ブロック・サイズはCDB全体に適用されます。
セクター・サイズが4KBのディスク上にオンラインREDOログ・ファイルを格納する場合は、オンラインREDOログのブロック・サイズを手動で指定する必要があるかどうかを確認します。
-
データベースのブロック・サイズを指定する方法を学習するには、データベースのブロック・サイズの指定を参照してください
-
REDOログ・ファイルのブロック・サイズの計画の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBの構成方法の決定
SYSTEMおよびSYSAUX表領域の作成
CDBルートおよび各PDBには、個別のSYSAUX
およびSYSTEM
表領域が存在します。
SYSAUX
表領域の適切な初期サイズを決定する必要があります。また、SYSTEM
以外のユーザーに対してはデフォルトの表領域を使用し、データベース・オブジェクトがSYSTEM
表領域に誤って保存されないようにします。CDBルートおよび各PDBに、個別のデフォルト表領域を指定できます。
関連項目:
-
SYSAUX
表領域の詳細は、SYSAUX表領域についてを参照してください -
デフォルトの永続表領域の作成方法の詳細は、デフォルトの表領域の作成を参照してください
親トピック: CDBの構成方法の決定
一時表領域の計画
デフォルト一時表領域の使用を計画します。
デフォルトの一時表領域は、CDB内のすべてのコンテナに存在します。したがって、CDBルート、すべてのPDB、アプリケーション・ルートおよびアプリケーションPDBには、独自のデフォルト一時表領域があります。
Oracle Databaseは、再帰的SQL専用の共有一時表領域を使用します。ホストされるPDBテナントは、この表領域を直接使用しません。
関連項目:
-
デフォルトの一時表領域の作成方法の詳細は、デフォルトの一時表領域の作成を参照してください
親トピック: CDBの構成方法の決定
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表領域とロールバック・セグメントの操作が警告なしで無視されます。
関連項目:
-
UNDO管理の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: CDBの構成方法の決定
アプリケーションのサービスの計画
アプリケーションのニーズを満たすために必要なデータベース・サービスを計画します。
ルートおよび各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ユーティリティでは管理できません。ただし、ユーザー定義サービスを作成し、アプリケーションに合わせてカスタマイズできます。
関連項目:
-
単一インスタンス・データベースでのSRVCTLの使用について学習するには、Oracle Database管理者ガイドを参照してください
-
Oracle RACデータベースでのSRVCTLユーティリティの使用の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
親トピック: CDBの構成方法の決定
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が現在のコンテナである場合は使用できません。