37 CDBの作成および構成

マルチテナント・コンテナ・データベース(CDB)の作成および構成には、CDBの作成の計画、CDBの作成、オプションでCDBに対するEM Expressの構成などのタスクが含まれます。

37.1 CDBの作成について

マルチテナント・コンテナ・データベース(CDB)を作成する手順は、非CDBを作成する手順と非常によく似ています。

非CDBを作成する手順は、「Oracle Databaseの作成および構成」で説明されています。CDBを作成する前に、「Oracle Databaseの作成および構成」で説明されている概要およびタスクについて理解する必要があります。

この章では、CDBを作成する場合の特別な考慮事項について説明します。この章では、「Oracle Databaseの作成および構成」の非CDBの作成手順とCDBの作成手順の違いについても説明します。

「CDB作成計画」に示すいくつかのガイドラインを使用してCDBを計画した後、Oracle Databaseソフトウェアのインストール中またはインストール後に、CDBを作成できます。インストール後にCDBを作成する一般的な理由は、次のとおりです。

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

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

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

37.2 CDB作成計画

CDB作成では、複数のオペレーティング・システム・ファイルがCDBとして連携して動作するように準備します。

注意:

CDBを計画する前に、CDBおよびPDBの概念について『Oracle Database概要』で確認してください。

37.2.1 CDBの構成方法の決定

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

表37-1に、CDBに適用される推奨処理および考慮事項をリストします。表37-1のアクションの多くの詳細は、表2-1を参照してください。

表37-1 CDBの計画

処置 CDBの考慮事項 関連情報

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

CDBでは、ほとんどのユーザー・データがPDBに存在します。ルートには、ユーザー・データは含まれないか、または最小限のユーザー・データが含まれます。CDBに含められるPDBを計画します。CDBのディスク記憶域要件は、Oracle Databaseインストールに必要な領域に、CDBに含められるすべてのPDBの領域要件の合計を加えたものです。CDBには最大4,096個のPDBを含めることができますが、MAX_PDBS初期化パラメータを設定することによって、より少ない数のPDBとなるようにCDBを制限できます。

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

Oracle Databaseの構造と記憶域

スキーマ・オブジェクト

「SQL*Plusを使用したPDBの作成および削除」

「アプリケーション・コンテナ」

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

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

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

「Oracle Managed Filesの使用」

『Oracle Automatic Storage Management管理者ガイド』

『Oracle Databaseパフォーマンス・チューニング・ガイド』

『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

Oracle RACの記憶域の構成の詳細は、『Oracle Grid Infrastructureインストレーション・ガイド』を参照してください。

該当のOracle Databaseインストレーション・ガイドなど、使用しているオペレーティング・システム固有のOracleマニュアル。

CDBで必要とされるバックグラウンド・プロセス数を計画します。

ルートとすべてのPDBによって共有された1セットのバックグラウンド・プロセスが存在します。

「最大プロセス数の指定」

ネットワーク構造内のCDBの名前と場所で構成されたグローバル・データベース名を選択し、DB_NAMEおよびDB_DOMAINの両方の初期化パラメータを設定してルートのグローバル・データベース名を作成します。

ルートのグローバル・データベース名は、CDBのグローバル・データベース名です。

PDBのグローバル・データベース名は、PDB名およびDB_DOMAIN初期化パラメータによって定義されます。

「グローバル・データベース名の決定」

初期化パラメータ・ファイルに含まれる可能性がある初期化パラメータについて理解します。サーバー・パラメータ・ファイル(SPFILE)の概要と操作について理解します。SPFILEファイルを使用すると、初期化パラメータをサーバー側のディスク・ファイルに永続的に格納して管理できます。

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

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

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

「初期化パラメータの指定」

「CDBにおけるALTER SYSTEM SET文の使用方法」

「PDBで変更可能な初期化パラメータをリスト」

「現在のコンテナについて」

『Oracle Databaseリファレンス』

キャラクタ・セットを選択します。

ルートのキャラクタ・セットがAL32UTF8の場合、CDBに接続されているかクローニングされているPDBはルートと異なるキャラクタ・セットを持つことがあります。CDBシードから作成されたPDBはそこからAL32UTF8を継承しますが、PDBは別のキャラクタ・セットに移行できます。

ルートのキャラクタ・セットがAL32UTF8でない場合、CDB内のすべてのPDBはルートのキャラクタ・セットを使用します。

CDBデータベースのキャラクタ・セットにはAL32UTF8、CDBの各国語キャラクタ・セットにはAL16UTF6をお薦めします。これらは最も柔軟性が高いためです。

CDBのデータベースのキャラクタ・セットを選択する場合、CDBに統合(接続)するデータベースの現在のキャラクタ・セットを考慮する必要があります。

非CDBをCDBに移行する場合、最初に非CDBをAL32UTF8に移行するのが最適です。Oracle Database Migration Assistant for Unicode (DMU)を使用すると、非CDBをAL32UTF8に移行できます。CDBの作成後に、DMUを使用してCDBのキャラクタ・セットを移行することはできません。

『Oracle Databaseグローバリゼーション・サポート・ガイド』

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

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

「データベースのタイム・ゾーンとタイム・ゾーン・ファイルの指定」

データベースの標準ブロック・サイズを選択します。このサイズはCDBの作成時にDB_BLOCK_SIZE初期化パラメータによって指定しますが、CDBの作成後は変更できません。

標準ブロック・サイズはCDB全体に適用されます。

「データベース・ブロック・サイズの指定」

セクター・サイズが4KBのディスク上にオンラインREDOログ・ファイルを格納する場合は、REDOログのブロック・サイズを手動で指定する必要があるかどうかを確認します。また、バックアップおよびリカバリ計画を作成し、CDBを障害から保護します。

CDB全体について、REDOログおよび制御ファイルがそれぞれ1つ存在します。

「REDOログ・ファイルのブロック・サイズの計画」

「REDOログの管理」

「アーカイブREDOログ・ファイルの管理」

「制御ファイルの管理」

『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

SYSAUX表領域の適切な初期サイズを決定します。

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

「SYSAUX表領域について」

SYSTEM以外のユーザーに対してはデフォルトの表領域を使用し、データベース・オブジェクトがSYSTEM表領域に誤って保存されないようにします。

ルートおよび各PDBに、個別のデフォルト表領域を指定できます。また、ルートおよび各PDBには、個別のSYSTEM表領域が存在します。

「デフォルト永続表領域の作成」

「CDBを変更する文について」

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

ルート、各PDB、各アプリケーション・ルート、各アプリケーションPDBなど、CDB内のコンテナごとに1つのデフォルト一時表領域があります。

共有一時表領域は、再帰的SQLにのみ使用され、ホストされるPDBテナントによって直接使用されません。

「デフォルト一時表領域の作成」

「CDBを変更する文について」

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表領域とロールバック・セグメントの操作が警告なしで無視されます。

「CDB UNDOモードの管理」

「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ユーティリティでは管理できません。ただし、ユーザー定義サービスを作成し、アプリケーションに合わせてカスタマイズできます。

「データベース・サービスでのアプリケーション・ワークロードの管理」

「PDBに関連付けられたサービスの管理」

単一インスタンス・データベースでのSRVCTLユーティリティの使用の詳細は、「Oracle RestartのSRVCTLコマンド・リファレンス」を参照してください

Oracle RACデータベースでのSRVCTLユーティリティの使用の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

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

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

「データベースの起動」

「PDBのオープン・モードの変更」

「ALTER PLUGGABLE DATABASE文を使用したPDBの変更」

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

Oracle RACドキュメントでは、Oracle RAC環境でのCDBの特別な考慮事項について説明しています。

Oracle RAC環境でのCDB作成の詳細は、使用しているプラットフォーム固有のOracle RACインストレーション・ガイドを参照してください。

『Oracle Real Application Clusters管理およびデプロイメント・ガイド』

サポートされない機能を回避します。

CDBで現在サポートされていないOracle Database機能のリストは、『Oracle Databaseプラットフォーム共通日本語README』に記載されています。

これらの機能のうち1つ以上を使用する必要がある場合、非CDBを作成します。

Oracle Databaseの作成および構成

37.2.2 CDB作成の前提条件

新規CDBを作成する前に、前提条件を満たす必要があります。

新しいCDBを作成するには、次の前提条件を満たす必要があります。

  • 「マルチテナント環境の前提条件」で説明する前提条件を満たしていることを確認してください。

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

    CDBで必要なメモリーは、各コンテナのワークロードおよびコンテナの数に対応できるサイズにする必要があります。

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

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

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

37.3 DBCAを使用したCDBの作成

Database Configuration Assistant (DBCA)はほとんど自動化されており、DBCAが完了するとCDBが使用可能状態になるので、この方法でCDBを作成することをお薦めします。DBCAを使用すると、CDBを作成するときに、CDB内のPDB数を指定できます。

選択したインストール・タイプによっては、Oracle Universal Installer(OUI)からDBCAを起動できます。また、Oracle Databaseをインストール後は、スタンドアロン・ツールとして、いつでもDBCAを起動できます。

DBCAを使用すると、CDBを対話型モードまたは非対話型(サイレント)モードで作成できます。対話型モードには、CDBを作成して構成するためのグラフィカル・インタフェースおよびガイド付きワークフローが用意されています。対話型ではないサイレント・モードでは、クローニングのために事前構成してカスタマイズされたPDBシード・データベースを持つ、事前構成されたCDBテンプレート・デプロイメントをスクリプト記述できます。DBCAを非対話型(サイレント)モードで実行するには、コマンドライン引数またはレスポンス・ファイル、あるいはその両方を指定します。

CDBの作成後、DBCAを使用してPDBをCDBに接続したり、CDBから切断できます。

37.4 CREATE DATABASE文を使用したCDBの作成

CREATE DATABASE SQL文を使用してCDBを作成できます。

注意:

Database Configuration Assistant (DBCA)テンプレート・デプロイメントの使用はほとんど自動化されており、DBCAが完了するとCDBが使用可能状態になるので、CREATE DATABASE SQL文ではなくこの方法でCDBを作成することをお薦めします。

37.4.1 CREATE DATABASE文を使用したCDBの作成について

CREATE DATABASE SQL文を使用したCDBの作成は、非CDBの作成とよく似ています。この項では、CDBを作成するための追加要件について説明します。CREATE DATABASE SQL文を使用してCDBを作成する場合は、PDBを使用可能にして、ルートのファイルおよびCDBシードのファイルの名前と場所を指定する必要があります。

注意:

DBCAを使用しないで手動でCDBを作成する場合は、CREATE DATABASE SQL文を使用します。

関連項目:

CDBのファイルの詳細は、『Oracle Database概要』を参照してください。

37.4.1.1 PDBの有効化について

CDBを作成するには、CREATE DATABASE文にENABLE PLUGGABLE DATABASE句が含まれている必要があります。この句が含まれている場合、この文によってルートおよびCDBシードを含むCDBが作成されます。

ENABLE PLUGGABLE DATABASE句がCREATE DATABASE文に含まれていない場合、新しく作成されるデータベースは非CDBとなります。この文によってルートおよびCDBシードは作成されず、非CDBにPDBを含めることはできません。

37.4.1.2 ルートのファイルおよびCDBシードのファイルの名前と場所について

CREATE DATABASE文では、ルートのファイル(データファイルなど)を使用してCDBシードのファイル名を生成します。ルートのファイルおよびCDBシードのファイルの名前と場所を指定する必要があります。CREATE DATABASE文が正常に完了すると、CDBシードおよびそのファイルを使用して新しいPDBを作成できます。CDBシードは、作成した後に変更できません。

CDBシードのファイルの名前と場所は、次のいずれかの方法で指定する必要があります。

  1. SEED FILE_NAME_CONVERT

  2. Oracle Managed Files

  3. PDB_FILE_NAME_CONVERT初期化パラメータ

これらのうち複数の方法を使用する場合、CREATE DATABASE文では、前のリストの優先度に従っていずれかの方法が使用されます。たとえば、すべての方法を使用する場合、CREATE DATABASE文では、SEED FILE_NAME_CONVERT句での指定のみが使用されます。

37.4.1.2.1 SEED FILE_NAME_CONVERT句

CREATE DATABASE文のSEED FILE_NAME_CONVERT句は、ルートのファイル名を使用してCDBシードのファイル名をどのように生成するかを指定します。

この句を使用して、次のいずれかのオプションを指定できます。

  • 1つ以上のファイル名パターンおよび置換ファイル名パターンを次の形式で指定します。

    'string1' , 'string2' , 'string3' , 'string4' , ...
    

    string1ファイル名パターンがstring2ファイル名パターンによって置き換えられ、string3ファイル名パターンがstring4ファイル名パターンによって置き換えられます。ファイル名パターン文字列と置換ファイル名パターン文字列のペアを必要な数だけ使用できます。

    奇数の文字列を指定した(最終文字列に対応する置換文字列が存在しない)場合、エラーが返されます。1つのファイル名またはディレクトリと一致する複数のパターン/置換文字列を指定しないでください。

    Oracle Managed Filesで管理されているファイルまたはディレクトリと一致するファイル名のパターンは指定できません。

  • ファイル名を変換する必要がない場合は、NONEを指定します。SEED FILE_NAME_CONVERT句を省略することは、NONEを指定することと同じです。

例37-1 SEED FILE_NAME_CONVERT句

このSEED FILE_NAME_CONVERT句により、/oracle/dbsディレクトリ内のファイル名を使用して、/oracle/pdbseedディレクトリ内のCDBシードのファイルのファイル名が生成されます。

SEED
FILE_NAME_CONVERT = ('/oracle/dbs/', '/oracle/pdbseed/')

関連項目:

SEED FILE_NAME_CONVERT句の構文は、『Oracle Database SQL言語リファレンス』を参照してください。

37.4.1.2.2 Oracle Managed Files

Oracle Managed Filesを有効化すると、CDBシードのファイルの名前と場所を指定できます。

37.4.1.2.3 PDB_FILE_NAME_CONVERT初期化パラメータ

PDB_FILE_NAME_CONVERT初期化パラメータを使用すると、シードのファイルの名前と場所を指定できます。

この手法を使用するには、CDBを作成するとき、PDB_FILE_NAME_CONVERT初期化パラメータが初期化パラメータ・ファイルに含まれるようにします。

この初期化パラメータで指定するファイル名パターンをOracle Managed Filesによって管理されているファイルまたはディレクトリと一致させることはできません。

37.4.1.3 CDBシードのデータファイル属性について

CDBシードは、新しいコンテナを作成するためのテンプレートとして使用できます。

ルートのSYSTEMおよびSYSAUX表領域のデータファイル属性は、CDBシードに適さない場合があります。この場合、tablespace_datafile句を使用して、CDBシードのデータファイルに異なる属性を指定できます。これらの句を使用して、CDBシード内のSYSTEM表領域とSYSAUX表領域を構成するすべてのデータファイルの属性を指定します。値が指定されていないすべての属性には、ルートから継承された値が使用されます。

tablespace_datafile句の構文は、データファイルの名前と場所およびREUSE属性を除き、データファイル指定の構文と同じです。「ルートのファイルおよびシードのファイルの名前と場所について」で説明されているCDBシードのデータファイルの名前と場所を指定するいずれかの方法を使用して、tablespace_datafile句を使用できます。

tablespace_datafile句では、CDBシードのデータファイルの名前と場所は指定しません。かわりに、CDBシード内のSYSTEMおよびSYSAUXデータファイルについて、ルートとは異なる属性を指定します。SIZEが表領域のtablespace_datafile句で指定されていない場合、表領域のデータファイル・サイズは、対応するルートのデータファイル・サイズの事前定義された割合に設定されます。

例37-2 tablespace_datafile句の使用

次のCREATE DATABASE句により、ルート内のSYSTEMおよびSYSAUX表領域を構成するデータファイルの名前、場所および属性が指定されると想定します。

DATAFILE '/u01/app/oracle/oradata/newcdb/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf' SIZE 325M REUSE

次のtablespace_datafile句を使用して、これらのデータファイルに異なる属性を指定できます。

SEED
SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
SYSAUX DATAFILES SIZE 100M

この例では、CDBシードのSYSTEMおよびSYSAUX表領域のデータファイルは、ルートのデータファイルからREUSE属性を継承します。ただし、CDBシードの次のデータファイル属性は、ルートの属性とは異なります。

  • SYSTEM表領域のデータファイルは、CDBシードの場合は125MB、ルートの場合は325MBです。

  • AUTOEXTENDは、CDBシードのSYSTEMデータファイルについては有効であり、ルートのSYSTEMデータファイルについてはデフォルトで無効です。

  • SYSAUX表領域のデータファイルは、CDBシードの場合は100MB、ルートの場合は325MBです。

関連項目:

データファイル指定の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

37.4.1.4 CDBのUNDOモードについて

undo_mode_clauseENABLE PLUGGABLE DATABASE句に追加して、CDBのUNDOモードを指定します。

undo_mode_clauseでは、CDBのUNDOモードがローカルと共有のどちらであるかを指定します。ローカルUNDOモードは、CDB内のすべてのコンテナがローカルUNDOを使用することを意味します。CDBにローカルUNDOモードを構成するには、LOCAL UNDO ONを指定します。共有UNDOモードは、単一インスタンスCDBに1つのアクティブなUNDO表領域があるか、Oracle RAC CDBの場合はインスタンスごとに1つのアクティブなUNDO表領域があることを意味します。CDBに共有UNDOモードを構成するには、LOCAL UNDO OFFを指定します。undo_mode_clauseENABLE PLUGGABLE DATABASE句に追加されていない場合、共有UNDOモードがデフォルトです。

37.4.2 ステップ1: インスタンス識別子(SID)の指定

ORACLE_SID環境変数は、後で作成して同じホスト・コンピュータで同時に実行する他のOracle Databaseインスタンスと区別するために使用されます。

  1. インスタンスの一意のOracleシステム識別子(SID)を決定します。

  2. コマンド・ウィンドウを開きます。

    注意:

    後続のステップでは、このコマンド・ウィンドウを使用します。
  3. ORACLE_SID環境変数を設定します。

ORACLE_SIDでの有効な文字に関する制約はプラットフォーム固有です。一部のプラットフォームでは、SIDの大/小文字が区別されます。

注意:

一般的には、SIDはデータベース名と等しくなるように設定します。データベース名に指定できるのは最大8文字までです。詳細は、『Oracle Databaseリファレンス』DB_NAME初期化パラメータに関する説明を参照してください。

次のUNIXおよびLinuxオペレーティング・システムの例では、「ステップ6: インスタンスへの接続」で接続するインスタンスのSIDを設定しています。

  • Bourne、BashまたはKornシェル:

    ORACLE_SID=mynewdb
    export ORACLE_SID
    
  • Cシェルの場合:

    setenv ORACLE_SID mynewdb
    

次の例では、Windowsオペレーティング・システム用のSIDを設定しています。

set ORACLE_SID=mynewdb

関連項目:

Oracleインスタンスに関するバックグラウンド情報は、『Oracle Database概要』を参照してください。

37.4.3 ステップ2: 必要な環境変数が設定されていることの確認

プラットフォームによっては、環境変数を設定するか少なくとも正しく設定されていることを確認するまで、(後のステップで必要な)SQL*Plusを起動できない場合があります。

  • 必要な環境変数を設定します。

たとえば、ほとんどのプラットフォームでは、ORACLE_SIDORACLE_HOMEを設定する必要があります。さらに、PATH変数にORACLE_HOME/binディレクトリを含めるように設定することもお薦めします。UNIXおよびLinuxプラットフォームでは、これらの環境変数を手動で設定する必要があります。Windowsプラットフォームでは、Windowsレジストリ内のORACLE_HOMEORACLE_SIDにOUIが値を自動的に割り当てます。インストール時にデータベースを作成しなかった場合は、レジストリ内のORACLE_SIDをOUIが設定しないため、後でデータベースを作成するときにORACLE_SID環境変数を設定する必要があります。

37.4.4 ステップ3: データベース管理者の認証方式の選択

データベースを作成するには、作成するユーザーが認証を受け、適切なシステム権限が付与されている必要があります。

  • 認証方式を決定します。

必要な権限を付与された管理者として認証されるには、次の方法があります。

  • パスワード・ファイルによる方法

  • オペレーティング・システム認証による方法

パスワード・ファイルによる認証方法を使用するには、「データベース・パスワード・ファイルの作成とメンテナンス」の説明に従ってパスワード・ファイルを作成します。オペレーティング・システム認証による方法を使用するには、必ずオペレーティング・システムの適切なユーザー・グループのメンバーになっているユーザー・アカウントでホスト・コンピュータにログインします。たとえば、UNIXおよびLinuxプラットフォームでは、通常dbaユーザー・グループを使用します。Windowsプラットフォームでは、Oracleソフトウェアをインストールするユーザーが、必要なユーザー・グループに自動的に配置されます。

関連項目:

37.4.5 ステップ4: 初期化パラメータ・ファイルの作成

Oracleインスタンスの起動時に、初期化パラメータ・ファイルが読み込まれます。このファイルには、テキスト・エディタで作成して変更できるテキスト・ファイルか、データベースにより作成されて動的に変更されるバイナリ・ファイルを使用できます。バイナリ・ファイル(こちらの使用を推奨)は、サーバー・パラメータ・ファイルと呼ばれます。ここで示すステップでは、テキスト形式の初期化パラメータ・ファイルを作成します。後述のステップで、テキスト・ファイルからサーバー・パラメータ・ファイルを作成します。

  • 初期化パラメータ・ファイルを作成します。

テキスト形式の初期化パラメータ・ファイルを作成する方法の1つは、「初期化パラメータ・ファイルのサンプル」に記載されているサンプルを編集する方法です。

初期化パラメータのファイルを手動で作成する場合は、少なくとも表37-2に記載されているパラメータが含まれているようにしてください。記載されていない他のすべてのパラメータにはデフォルトの値があります。

表37-2 推奨される最低限の初期化パラメータ

パラメータ名 必須 注意

DB_NAME

はい

データベース識別子。CREATE DATABASE文で使用される値に対応している必要があります。最大8文字です。

CONTROL_FILES

いいえ

推奨されています。提供されていない場合は、データベース・インスタンスにより初期化パラメータ・ファイルと同じ場所に制御ファイルが作成されます。このパラメータを提供することで制御ファイルを多重化できます。詳細は、「初期制御ファイルの作成」を参照してください。

MEMORY_TARGET

いいえ

インスタンスにより使用されるメモリーの合計容量を設定し、自動メモリー管理を有効にします。このパラメータのかわりに他の初期化パラメータを選択して、メモリーの使用をより詳細に手動で制御することもできます。「メモリーの手動構成」を参照してください。

操作を容易にするために、デフォルトのファイル名を使用して、Oracle Databaseのデフォルトの場所に初期化パラメータ・ファイルを配置します。このようにすることにより、Oracle Databaseが初期化パラメータ・ファイルのデフォルトの場所を自動的に参照するため、データベースの起動時にSTARTUPコマンドのPFILE句を指定する必要がなくなります。

使用しているプラットフォームの初期化パラメータ・ファイルのデフォルトのファイル名や場所など、初期化パラメータおよび初期化パラメータ・ファイルの詳細は、「初期化パラメータと初期化パラメータ・ファイルについて」を参照してください。

関連項目:

37.4.6 ステップ5: (Windowsの場合のみ)インスタンスの作成

Windowsプラットフォームでは、インスタンスが存在しない場合には、インスタンスに接続する前に手動で作成する必要があります。ORADIMコマンドでは、新しいWindowsサービスを作成することでOracle Databaseインスタンスを作成します。

インスタンスを作成するには:

  • Windowsのコマンド・プロンプトで、次のコマンドを入力します。

    oradim -NEW -SID sid -STARTMODE MANUAL -PFILE file
    

    次のプレースホルダを適切な値に置き換えます。

    • sid - 目的のSID (mynewdbなど)

    • file - テキスト形式の初期化パラメータ・ファイルへのフルパス

注意:

この時点では、-STARTMODE引数をAUTOに設定しないでください。設定すると新しいインスタンスが起動され、まだ存在しないデータベースをマウントしようとします。必要に応じて、「ステップ14: (オプション)インスタンスの自動起動の有効化」で、このパラメータをAUTOに変更できます。

ほとんどのOracle Databaseサービスは、Oracleホーム・ユーザーの権限を使用してシステムにログオンします。サービスは、このユーザーの権限を使用して実行されます。ORADIMコマンドは、このユーザー・アカウントのパスワードを要求します。ORADIMを使用して、他のオプションを指定できます。

関連項目:

37.4.7 ステップ6: インスタンスへの接続

SQL*Plusを起動して、SYSDBA管理権限でOracle Databaseインスタンスに接続します。

  • パスワード・ファイルによる認証を使用するには、次のコマンドを入力してプロンプトが表示された後、SYSパスワードを入力します。

    $ sqlplus /nolog
    SQL> CONNECT SYS AS SYSDBA
    
  • オペレーティング・システム認証を使用するには、次のコマンドを入力します。

    $ sqlplus /nolog
    SQL> CONNECT / AS SYSDBA
    

SQL*Plusが次のメッセージを表示します。

Connected to an idle instance.

注意:

SQL*Plusが次のようなメッセージを表示する場合があります。

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

その場合には、インスタンスがすでに起動されています。間違ったインスタンスに接続している可能性があります。EXITコマンドを使用してSQL*Plusを終了し、ORACLE_SIDが正しく設定されていることを確認して、このステップを繰り返してください。

37.4.8 ステップ7: サーバー・パラメータ・ファイルの作成

サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更でき、変更内容はデータベースを停止して起動した後も持続します。サーバー・パラメータ・ファイルは、編集済のテキスト形式の初期化ファイルから作成します。

  • 次のSQL*Plusコマンドを実行します。
    CREATE SPFILE FROM PFILE;
    

このSQL*Plusコマンドでは、テキスト形式の初期化パラメータ・ファイル(PFILE)がデフォルトの場所のデフォルトのファイル名で読み込まれ、テキスト形式の初期化パラメータ・ファイルからサーバー・パラメータ・ファイル(SPFILE)が作成されて、SPFILEがデフォルトのSPFILE名でデフォルトの場所に書き込まれます。

デフォルトのファイル名と場所を使用していない場合は、PFILEとSPFILEの両方のファイル名とパスワードを指定することもできます。

ヒント:

サーバー・パラメータ・ファイルを有効にするには、データベースを再起動する必要があります。

注意:

この時点でのサーバー・パラメータ・ファイルの作成はオプションですが、作成することをお薦めします。サーバー・パラメータ・ファイルを作成しないと、インスタンスが起動されるたびにテキスト形式の初期化パラメータ・ファイルが引き続き読み込まれます。

重要: Oracle Managed Filesを使用しており、初期化パラメータ・ファイルにCONTROL_FILESパラメータが指定されていない場合には、CREATE DATABASE文でデータベースの制御ファイルが作成されるときに制御ファイルの名前と場所を保存できるように、この時点でサーバー・パラメータ・ファイルを作成しておく必要があります。詳細は、「データベース作成時のOracle Managed Filesの作成」を参照してください。

37.4.9 ステップ8: インスタンスの起動

データベースをマウントせずにインスタンスを起動します。

  • NOMOUNT句を指定してSTARTUPコマンドを実行します。

通常、この方法で起動するのはデータベースの作成時またはメンテナンス時のみです。この例では、初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイルがデフォルトの場所に配置されているため、PFILE句の指定は不要です。

STARTUP NOMOUNT

この時点で、インスタンス・メモリーが割り当てられて、インスタンスのプロセスが起動されます。データベース自体はまだ存在しません。

関連項目:

37.4.10 ステップ9: CREATE DATABASE文を使用したCDBの作成

CREATE DATABASE文を使用してCDBを作成する場合は、実行可能なCDBを作成する前に他の処理を実行する必要があります。

この処理には、データ・ディクショナリ表のビューの作成、標準PL/SQLパッケージのルートでのインストールなどがあります。これらの処理には、提供されたcatcdb.sqlスクリプトを実行します。

この項の手順が適用できるのは、単一インスタンスのインストールの場合のみです。Oracle RAC CDBの作成手順は、使用しているプラットフォーム固有のOracle Real Application Clusters (Oracle RAC)インストレーション・ガイドを参照してください。

注意:

単一インスタンスとは、単一のホスト・コンピュータに存在できるOracleインスタンスが1つのみであるという意味ではありません。実際には、複数のOracleインスタンス(および関連するデータベース)を、単一のホスト・コンピュータで実行できます。単一インスタンス・データベースとは、一度に1つのみのOracleインスタンスがアクセスするデータベースのことですが、これに対して、Oracle RACデータベースには、複数ノードの複数Oracleインスタンスが同時にアクセスします。Oracle RACの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

ヒント:

Oracle ASMを使用してディスク記憶域を管理している場合は、これらのステップを実行する前に、Oracle ASMインスタンスを起動してディスク・グループを構成する必要があります。『Oracle Automatic Storage Management管理者ガイド』を参照してください。

次のステップの例では、newcdbという名前のCDBが作成されます。

CREATE DATABASE文を使用してCDBを作成するには:

  1. ENABLE_PLUGGABLE_DATABASE初期化パラメータをTRUEに設定します。

    また、CDBでは、DB_NAME初期化パラメータを使用してルートの名前を指定します。SIDはルートの名前に設定するのが一般的です。この名前の最大文字数は30文字です。詳細は、『Oracle Databaseリファレンス』DB_NAME初期化パラメータに関する説明を参照してください。

  2. CREATE DATABASE文を使用して、新しいCDBを作成します。

    注意:

    CREATE DATABASE文が失敗する場合で「ステップ7: サーバー・パラメータ・ファイルの作成」を完了していない場合は、予期しない方法で初期化パラメータが設定されている、このインスタンス用の既存のサーバー・パラメータ・ファイル(SPFILE)がないかを確認します。たとえば、すべての制御ファイルへの完全パスがSPFILEに設定されている場合は、それらの制御ファイルが存在しないと、CREATE DATABASE文が失敗します。不必要なSPFILEを削除した後は、必ずインスタンスを停止して(STARTUP NOMOUNTを指定して)再起動します。詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。

    CREATE DATABASE文を使用して新しいCDBを作成する方法について説明している、この手順の後に続く例も参照してください。

    • 例1: Oracle Managed Filesを使用しないCDBの作成

    • 例2: Oracle Managed Filesを使用したCDBの作成

  3. catcdb.sqlというSQLスクリプトを実行します。

    SQL*Plusに次を入力し、スクリプトを実行します。

    @?/rdbms/admin/catcdb.sql
    
  4. スクリプトによりプロンプトが表示されたら、パラメータ1にログ・ファイル・ディレクトリを、パラメータ2にログ・ファイル名を入力します。

    次の例では、最初のプロンプトに/tmpを、2番目のプロンプトにcreate_cdb.logを入力します。

    SQL> host perl -I &&rdbms_admin &&rdbms_admin_catcdb --logDirectory &&1 --logFilename &&2
    Enter value for 1: /tmp
    Enter value for 2: create_cdb.log
  5. スクリプトによりプロンプトが表示されたら、必要なその他の情報を入力します。

    たとえば、スクリプトからは管理者パスワードおよび一時表領域名の入力が求められます。

    Enter new password for SYS: ********
    Enter new password for SYSTEM: ********
    Enter temporary tablespace name: TEMP
    
  6. データベースのバックアップ

    メディア障害が発生した場合にリカバリするための完全なファイル・セットが確実に存在するように、データベースの全体バックアップを作成してください。

    データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

  7. インスタンスの自動起動の有効化

    ホスト・コンピュータの再起動時に、Oracleインスタンスが自動的に起動されるように構成する必要がある場合があります。

    詳細は、オペレーティング・システムのドキュメントを参照してください。たとえばWindowsでは、次のコマンドを使用して、コンピュータの再起動時にデータベース・サービスがインスタンスを起動するように構成します。

    ORADIM -EDIT -SID sid -STARTMODE AUTO -SRVCSTART SYSTEM [-SPFILE]

    自動再起動時にインスタンスがSPFILEを読み込むようにする場合は、-SPFILE引数を使用する必要があります。

例1: Oracle Managed Filesを使用しないCDBの作成

次の文では、newcdbという名前のCDBが作成されます。この名前は、初期化パラメータ・ファイルのDB_NAMEパラメータと同じにする必要があります。この例では、次のことを想定しています。

  • 初期化パラメータ・ファイルのCONTROL_FILESパラメータには、制御ファイルの数と場所が指定されています。

  • ディレクトリ/u01/app/oracle/oradata/newcdbが存在します。

  • ディレクトリ/u01/app/oracle/oradata/pdbseedが存在します。

  • ディレクトリ/u01/logs/myおよび/u02/logs/myが存在します。

この例には、ルートおよびCDBシードのあるCDBを作成するENABLE PLUGGABLE DATABASE句が含まれています。また、この例には、CDBシードのファイルの名前と場所を指定するSEED FILE_NAME_CONVERT句も含まれています。この例には、SYSTEMおよびSYSAUX表領域について、ルートとは異なるCDBシードのデータファイル属性を指定するtablespace_datafile句も含まれています。この例には、CDBのUNDOモードがローカルであることを指定するundo_mode_clauseが含まれます。

CREATE DATABASE newcdb
  USER SYS IDENTIFIED BY sys_password
  USER SYSTEM IDENTIFIED BY system_password
  LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') 
             SIZE 100M BLOCKSIZE 512,
          GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') 
             SIZE 100M BLOCKSIZE 512,
          GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') 
             SIZE 100M BLOCKSIZE 512
  MAXLOGHISTORY 1
  MAXLOGFILES 16
  MAXLOGMEMBERS 3
  MAXDATAFILES 1024
  CHARACTER SET AL32UTF8
  NATIONAL CHARACTER SET AL16UTF16
  EXTENT MANAGEMENT LOCAL
  DATAFILE '/u01/app/oracle/oradata/newcdb/system01.dbf'
    SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  SYSAUX DATAFILE '/u01/app/oracle/oradata/newcdb/sysaux01.dbf'
    SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  DEFAULT TABLESPACE deftbs
     DATAFILE '/u01/app/oracle/oradata/newcdb/deftbs01.dbf'
     SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
  DEFAULT TEMPORARY TABLESPACE tempts1
     TEMPFILE '/u01/app/oracle/oradata/newcdb/temp01.dbf'
     SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
  UNDO TABLESPACE undotbs1
     DATAFILE '/u01/app/oracle/oradata/newcdb/undotbs01.dbf'
     SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
  ENABLE PLUGGABLE DATABASE
    SEED
      FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/newcdb/', 
                         '/u01/app/oracle/oradata/pdbseed/')
    LOCAL UNDO ON;

次の特性を持つCDBが作成されます。

  • CDBはnewcdbという名前です。グローバル・データベース名はnewcdb.us.example.comであり、ドメイン部分(us.example.com)は、初期化パラメータ・ファイルから取得されます。「グローバル・データベース名の決定」を参照してください。

  • CONTROL_FILES初期化パラメータ(CDB作成前に初期化パラメータ・ファイルに設定)で指定された3つの制御ファイルが作成されます。「初期化パラメータ・ファイルのサンプル」および「制御ファイルの指定」を参照してください。

  • ユーザー・アカウントSYSSYSTEMのパスワードが指定した値に設定されます。パスワードでは、大/小文字が区別されます。SYSおよびSYSTEMのパスワードを指定する2つの句は、このリリースのOracle Databaseではオプションです。ただし、いずれか一方の句を指定した場合は、もう一方の句も指定する必要があります。これらの句の使用方法の詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。

  • 新しいCDBには、LOGFILE句で指定されているように、オンラインREDOログ・ファイルのグループが3つあり、各グループには2つのメンバーが含まれます。MAXLOGFILESMAXLOGMEMBERSおよびMAXLOGHISTORYは、REDOログの制限を定義します。「適切なREDOログ・ファイル数の選択」を参照してください。REDOログのブロック・サイズは、ディスクの物理セクターと同じサイズである512バイトに設定されています。ブロック・サイズを物理セクター・サイズと同じ(デフォルト)にする場合には、BLOCKSIZE句はオプションです。通常のセクター・サイズおよびブロック・サイズは512です。BLOCKSIZEに設定可能な値は512、1024および4096です。新しいディスクでセクター・サイズが4KBの場合には、オプションでBLOCKSIZEを4096に指定します。詳細は、「REDOログ・ファイルのブロック・サイズの計画」を参照してください。

  • MAXDATAFILESでは、CDBでオープンできるデータファイルの最大数を指定します。この数は、制御ファイルの初期サイズに影響を及ぼします。CDBの場合は、CDBルートのファイルに加えて、すべてのコンテナのデータファイルの合計数を想定して大きい数値をMAXDATAFILESに設定します。

    注意:

    CDBの作成時に、制限をいくつか設定できます。これらの制限には、オペレーティング・システムの制限によって制限され、その影響を受けるものがあります。たとえば、MAXDATAFILESを設定すると、Oracle Databaseは、初期のCDBにデータファイルが1つしかなくても、制御ファイルにMAXDATAFILES個のファイル名を格納できるだけの領域を割り当てます。ただし、制御ファイルの最大サイズは制限されており、オペレーティング・システムによって異なるので、CREATE DATABASE文のパラメータをすべて理論的な最大値で設定できるとはかぎりません。

    CDB作成時に制限を設定する方法の詳細は、『Oracle Database SQL言語リファレンス』および使用しているオペレーティング・システム固有のOracleマニュアルを参照してください。

  • このCDBにデータを格納する際は、AL32UTF8キャラクタ・セットが使用されます。

  • NATIONAL CHARACTER SETとしてAL16UTF16キャラクタ・セットが指定され、特にNCHARNCLOBまたはNVARCHAR2として定義された列にデータを格納する際に使用されます。

  • DATAFILE句で指定したとおりに、SYSTEM表領域(オペレーティング・システム・ファイル/u01/app/oracle/oradata/newcdb/system01.dbf,から構成される)が作成されます。指定した名前のファイルがすでに存在する場合は上書きされます。

  • SYSTEM表領域はローカル管理の表領域として作成されます。「ローカル管理のSYSTEM表領域の作成」を参照してください。

  • SYSAUX DATAFILE句で指定したとおりに、SYSAUX表領域(オペレーティング・システム・ファイル/u01/app/oracle/oradata/newcdb/sysaux01.dbfから構成される)が作成されます。「SYSAUX表領域について」を参照してください。

  • DEFAULT TABLESPACE句により、指定した名前で、このCDB用のデフォルト永続表領域が作成されます。

  • DEFAULT TEMPORARY TABLESPACE句は、このCDBのルートのデフォルト一時表領域を作成し、名前を付けます。「デフォルト一時表領域の作成」を参照してください。

  • UNDO TABLESPACE句により、指定した名前で、このCDB用のUNDOデータの格納に使用されるUNDO表領域が作成されます。CDBでは、UNDOデータの管理にUNDO表領域が必要であり、UNDO_MANAGEMENT初期化パラメータをAUTOに設定する必要があります。このパラメータを省略すると、デフォルトでAUTOに設定されます。「自動UNDO管理の使用: UNDO表領域の作成」を参照してください。

  • このCREATE DATABASE文ではARCHIVELOG句が指定されていないため、初期状態ではREDOログ・ファイルはアーカイブされません。これはCDB作成時の慣例です。後でALTER DATABASE文を使用して、ARCHIVELOGモードに切り替えることができます。newcdbのアーカイブに関連する初期化パラメータ・ファイル内の初期化パラメータは、LOG_ARCHIVE_DEST_1およびLOG_ARCHIVE_FORMATです。「アーカイブREDOログ・ファイルの管理」を参照してください。

  • ENABLE PLUGGABLE DATABASE句では、ルートおよびCDBシードを含むCDBが作成されます。

  • FILE_NAME_CONVERT句およびtablespace_datafile句にはSEEDが必要です。

  • FILE_NAME_CONVERT句では、/u01/app/oracle/oradata/newcdbディレクトリ内にあるファイル名を使用して、/u01/app/oracle/oradata/pdbseedディレクトリ内にあるCDBシードのファイル用にファイル名を生成します。

  • LOCAL UNDO ON句はCDBのUNDOモードをローカルに設定します。これは、CDB内の各コンテナがローカルUNDOを使用することを意味します。

    CDBがローカルUNDOモードで作成された場合は、そのCDBから作成された新しいPDBにUNDO表領域が作成されるように、CDBシードにUNDO表領域が含められます。PDBが接続またはリモートPDBのクローニングによって作成され、ソースPDBが共通UNDOモードであった場合、PDBが最初にオープンされるときに、PDBにUNDO表領域が自動的に作成されます。

注意:

  • CREATE DATABASE文で使用しているディレクトリがすべて存在することを確認します。CREATE DATABASE文ではディレクトリは作成されません。

  • Oracle Managed Filesを使用していない場合は、すべてのTABLESPACE句にDATAFILE句またはTEMPFILE句を指定する必要があります。

  • CDBの作成に失敗した場合は、アラート・ログを参照すると、失敗の原因とその対処措置を判別できます。「アラート・ログの表示」を参照してください。プロセス番号を含むエラー・メッセージが表示される場合は、そのプロセスのトレース・ファイルを調べます。そのプロセス番号がトレース・ファイル名に含まれているトレース・ファイルを探します。詳細は、「トレース・ファイルの検索」を参照してください。

  • CREATE DATABASE文を失敗後に再発行するには、最初にインスタンスを停止してから、前のCREATE DATABASE文で作成されたファイルを削除する必要があります。

例2: Oracle Managed Filesを使用したCDBの作成

ここでは、より簡単なCREATE DATABASE文を使用できる、Oracle Managed Filesを使用したCDBの作成例を示します。Oracle Managed Filesを使用するには、初期化パラメータDB_CREATE_FILE_DESTを設定する必要があります。このパラメータは、CDBで作成されて自動的に名前が付けられる様々なCDBファイル用のベース・ディレクトリを定義します。

次の文は、初期化パラメータ・ファイルにこのパラメータを設定する例を示しています。

DB_CREATE_FILE_DEST='/u01/app/oracle/oradata'

この例では、Oracle ASM記憶域のパラメータを設定します。

DB_CREATE_FILE_DEST = +data

この例には、ルートおよびCDBシードのあるCDBを作成するENABLE PLUGGABLE DATABASE句が含まれています。この例では、Oracle Managed FilesによってCDBシードのファイルの名前と場所が指定されるため、SEED FILE_NAME_CONVERT句は含まれていません。ただし、この例には、SYSTEMおよびSYSAUX表領域について、ルートとは異なるCDBシードのデータファイル属性を指定するtablespace_datafile句が含まれています。

Oracle Managed Filesおよび次のCREATE DATABASE文を使用すると、SYSTEM表領域とSYSAUX表領域および文に指定されている追加の表領域がCDBによって作成され、すべてのデータファイル、制御ファイルおよびREDOログ・ファイルのデフォルト・サイズとプロパティが選択されます。この方法で設定されるこれらのプロパティおよび他のデフォルトCDBプロパティは本番環境には適さない場合があるため、生成された構成を調べて必要に応じて変更することをお薦めします。

CREATE DATABASE newcdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
EXTENT MANAGEMENT LOCAL
DEFAULT TABLESPACE users
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs1
ENABLE PLUGGABLE DATABASE
   SEED
   SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
   SYSAUX DATAFILES SIZE 100M;

次の特性を持つCDBが作成されます。

  • CDBはnewcdbという名前です。グローバル・データベース名はnewcdb.us.example.comであり、ドメイン部分(us.example.com)は、初期化パラメータ・ファイルから取得されます。「グローバル・データベース名の決定」を参照してください。

  • ユーザー・アカウントSYSSYSTEMのパスワードが指定した値に設定されます。パスワードでは、大/小文字が区別されます。SYSおよびSYSTEMのパスワードを指定する2つの句は、このリリースのOracle Databaseではオプションです。ただし、いずれか一方の句を指定した場合は、もう一方の句も指定する必要があります。これらの句の使用方法の詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。

  • DEFAULT TABLESPACE句により、指定した名前で、このCDB用のデフォルト永続表領域が作成されます。

  • DEFAULT TEMPORARY TABLESPACE句は、このCDBのルートのデフォルト一時表領域を作成し、名前を付けます。「デフォルト一時表領域の作成」を参照してください。

  • UNDO TABLESPACE句により、指定した名前で、このCDB用のUNDOデータの格納に使用されるUNDO表領域が作成されます。CDBでは、UNDOデータの管理にUNDO表領域が必要であり、UNDO_MANAGEMENT初期化パラメータをAUTOに設定する必要があります。このパラメータを省略すると、デフォルトでAUTOに設定されます。「自動UNDO管理の使用: UNDO表領域の作成」を参照してください。

  • このCREATE DATABASE文ではARCHIVELOG句が指定されていないため、初期状態ではREDOログ・ファイルはアーカイブされません。これはCDB作成時の慣例です。後でALTER DATABASE文を使用して、ARCHIVELOGモードに切り替えることができます。newcdbのアーカイブに関連する初期化パラメータ・ファイル内の初期化パラメータは、LOG_ARCHIVE_DEST_1およびLOG_ARCHIVE_FORMATです。「アーカイブREDOログ・ファイルの管理」を参照してください。

  • ENABLE PLUGGABLE DATABASE句では、ルートおよびCDBシードを含むCDBが作成されます。

  • tablespace_datafile句にはSEEDが必要です。

  • SYSTEM DATAFILES句では、ルートの属性とは異なるCDBシードのSYSTEM表領域の属性を指定します。

  • SYSAUX DATAFILES句では、ルートの属性とは異なるCDBシードのSYSAUX表領域の属性を指定します。

37.5 CDB用EM Expressの構成

CDBの場合、グローバルHTTPSポートを設定して、ルートおよび各PDB用にOracle Enterprise Manager Database Express (EM Express)を構成できます。あるいは、CDB内のコンテナごとに異なるポートを設定できます。

CDB用にEM Expressを構成するには、次の手順に従います。

グローバル・ポートを設定することができ、これにより、CDBのHTTPまたはHTTPSポートを使用し、EM Expressを使用してCDB内のすべてのPDBに接続できるようになります。あるいは、CDB内のコンテナごとに異なるHTTPまたはHTTPSポートを設定できます。

  1. SQL*Plusで、CDBのコンテナにアクセスします。

    ユーザーには共通のSYSDBA管理権限が必要であり、接続時にAS SYSDBAを使用してこの権限を行使する必要があります。コンテナは、ルートまたはPDBのいずれでもかまいません。

    「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。

  2. 次のいずれかの方法を使用して、ポートを設定します。

    • グローバル・ポートを設定するには、CDB$ROOTに接続し、次のSQL文を発行してCDB用にグローバル・ポートを構成します。

      exec DBMS_XDB_CONFIG.SETGLOBALPORTENABLED(TRUE);
    • 現在のコンテナにHTTPポートを設定するには、次のプロシージャを実行します。

      exec DBMS_XDB_CONFIG.SETHTTPPORT(http_port_number);
      

      http_port_numberを適切なHTTPポート番号に置き換えます。

    • 現在のコンテナにHTTPSポートを設定するには、次のプロシージャを実行します。

      exec DBMS_XDB_CONFIG.SETHTTPSPORT(https_port_number);
      

      https_port_numberを適切なHTTPSポート番号と置き換えます。

ポートを設定すると、次のいずれかの方法を使用してEM Expressにアクセスできます。

  • グローバル・ポートを使用するには、PDBを含むCDBを構成したときにDatabase Configuration Assistant (DBCA)によって提供されたEM Express URLを入力します。EM Expressログイン画面が表示されたら、管理者資格証明を指定し、接続するPDBの名前を「コンテナ名」フィールドに入力します。

  • コンテナ用のHTTPポートのURLは、次のとおりです。

    http://database_hostname:http_port_number/em/
    

    database_hostnameをデータベース・インスタンスが実行されているコンピュータのホスト名と置き換え、http_port_numberを適切なHTTPポート番号と置き換えます。

  • コンテナ用のHTTPSポートのURLは、次のとおりです。

    https://database_hostname:https_port_number/em/
    

    database_hostnameをデータベース・インスタンスが実行されているコンピュータのホスト名と置き換え、https_port_numberを適切なHTTPSポート番号と置き換えます。

ルートに接続されている場合、EM ExpressにはCDB全体に該当するデータが表示され、アクションが有効になります。PDBに接続されている場合、EM Expressには、PDBのみに該当するデータが表示され、アクションが有効になります。

注意:

ポート1521にリスナーが構成されていな場合、EM Express用にこのポートを手動で構成する必要があります。手順については、『Oracle Database 2日でデータベース管理者』を参照してください。

関連項目:

EM Expressの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

37.6 CDBの作成後

CDBの作成後、CDBはルートおよびCDBシードで構成されています。

ルートには、システムにより指定されたメタデータおよびPDBを管理できる共通ユーザーが含まれています。CDBシードは、新しいPDBを作成するために使用できるテンプレートです。図37-1は、新しく作成されたCDBを示しています。

図37-1 新しく作成されたCDB

図37-1の説明が続きます
「図37-1 新しく作成されたCDB」の説明

CDBにおいて、ルートには最小限のユーザー・データが含まれるか、またはユーザー・データは含まれていません。ユーザー・データはPDBに存在します。したがって、CDBの作成後、最初に行うタスクの1つは、ユーザー・データを含むPDBを追加することです。手順は、「SQL*PlusでのPDBの作成および削除」を参照してください。

図37-2は、PDBが含まれるCDBを示しています。

図37-2 PDBが含まれるCDB

図37-2の説明が続きます
「図37-2 PDBが含まれるCDB」の説明

1つ以上のアプリケーション・コンテナを作成するオプションがあります。アプリケーション・コンテナは、アプリケーション・ルートおよびアプリケーションPDBから構成され、1つ以上のアプリケーションのデータを格納します。アプリケーション・コンテナはアプリケーション共通オブジェクトを格納でき、アプリケーション・コンテナ内のアプリケーションPDBで共有できるユーザー・データを含みます。アプリケーション・コンテナ内のアプリケーションPDBを迅速に作成するためのアプリケーション・シードを含むこともできます。

図37-3 CDB内のアプリケーション・コンテナ

図37-3の説明が続きます
「図37-3 CDB内のアプリケーション・コンテナ」の説明

PDBとアプリケーション・コンテナをCDBに追加すると、CDBの物理構造は非CDBの物理構造とよく似たものになります。CDBには次のファイルが含まれています。

  • 1つの制御ファイル

  • 単一インスタンスCDBに1つのアクティブなオンラインREDOログ、またはOracle RAC CDBのインスタンスごとに1つのアクティブなオンラインREDOログ

  • 一時ファイルのセット

    CDBのルート用に1つ、各PDB、各アプリケーション・ルート、各アプリケーションPDB用に1つのデフォルト一時表領域があります。

  • システム・データファイルのセット

    CDBと非CDBとの主な物理的違いは、データファイルにあります。非CDBには、1セットのシステム・データ・ファイルしかありません。これに対して、CDBには、CDB内のコンテナごとに1セットのシステム・データファイル、およびPDB、アプリケーション・ルート、アプリケーションPDBごとに1セットのデータファイルが含まれます。また、CDBには各コンテナにユーザーが作成した1セットのデータファイルがあります。CDBがローカルUNDOモードである場合、各コンテナにも固有のUNDO表領域および関連付けられているデータファイルがあります。

  • ユーザーが作成したデータファイルのセット

    各PDBには、システム以外のデータファイルの独自のセットが含まれます。これらのデータファイルには、PDBのユーザー定義スキーマおよびデータベース・オブジェクトが含まれます。

CDBの物理アーキテクチャの詳細は、『Oracle Database概要』を参照してください。

CDBのバックアップおよびリカバリには、Recovery Manager (RMAN)を使用することをお薦めします。PDBポイントインタイム・リカバリ(PDB PITR)は、RMANを使用して実行する必要があります。デフォルトでは、RMANはCDBの制御ファイルの自動バックアップをオンにします。CDBの制御ファイルの自動バックアップを有効にして、PDB PITRでデータファイルの追加や削除を取り消すことができるようにすることをお薦めします。

CDBと非CDBの物理構造は似ているため、ほとんどの管理タスクはCDBと非CDBとで違いはありません。ただし、CDBに固有の管理タスクもあります。次の章では、これらのタスクについて説明します。

  • 「SQL*Plusを使用したPDBの作成および削除」

    この章では、次のタスクについて説明しています。

    • SQL*PlusでのCDBシードを使用したPDBの作成

    • SQL*Plusを使用した既存のPDBまたは非CDBのクローニングによるPDBの作成

    • SQL*Plusを使用した再配置によるPDBの作成

    • SQL*Plusを使用したプロキシPDBとしてのPDBの作成

    • SQL*PlusでのPDBの接続

    • SQL*PlusでのPDBの切断

    • SQL*PlusでのPDBの削除

  • Cloud Controlを使用したPDBの作成および削除

    この章では、次のタスクについて説明しています。

    • Cloud Controlを使用したPDBの作成

    • Cloud Controlを使用したPDBの接続

    • Cloud Controlを使用したPDBの切断

  • SQL*Plusを使用したアプリケーション・コンテナおよびシードの作成と削除

    この章では、次のタスクについて説明しています。

    • SQL*Plusを使用したアプリケーション・コンテナの作成

    • SQL*Plusを使用したアプリケーション・シードの作成

    • SQL*Plusを使用したアプリケーション・コンテナの切断

    • SQL*Plusを使用したアプリケーション・シードの切断

    • SQL*Plusを使用したアプリケーション・コンテナの削除

    • SQL*Plusを使用したアプリケーション・シードの削除

  • SQL*Plusを使用したCDBの管理

    この章では、次のタスクについて説明しています。

    • コンテナへの接続

    • コンテナへの切替え

    • CDBの変更

    • ルートの変更

    • PDBのオープン・モードの変更

    • CDBでのDDL文の実行

    • CDBインスタンスの停止

  • Cloud ControlでのCDBおよびPDBの管理

    この章では、次のタスクについて説明しています。

    • CDB記憶域およびスキーマ・オブジェクトの管理

    • コンテナごとの記憶域およびスキーマ・オブジェクトの管理

    • 記憶域およびスキーマ・アラートの監視

    • コンテナへの切替え

    • PDBのオープン・モードの変更

  • SQL*Plusを使用したPDBの管理

    この章では、次のタスクについて説明しています。

    • PDBへの接続

    • PDBの変更

    • PDBに関連付けられたサービスの管理

  • SQL*Plusを使用したアプリケーション・コンテナの管理

    この章では、次のタスクについて説明しています。

    • アプリケーション・コンテナ内のアプリケーションの管理(アプリケーションのインストール、アップグレードおよびパッチ適用を含む)

    • アプリケーション共通オブジェクトの管理

    • アプリケーション・コンテナ内のコンテナに対するDML文の発行

    • コンテナ・マップを使用したPDBでのパーティション化

  • SQL*Plusを使用したCDBおよびPDBに関する情報の表示

    この章では、次のタスクについて説明しています。

    • CDBおよびそのPDBを監視するためのビューの問合せ

    • CDBおよびそのPDBに関する情報を提供するサンプル問合せの実行

  • SQL*PlusでのPDBに対するOracle Resource Managerの使用

    この章では、次のタスクについて説明しています。

    • SQL*PlusでのCDBにおけるリソース・プランの作成

    • SQL*PlusでのCDBにおけるリソース・プランの管理

  • Cloud ControlでのPDBに対するOracle Resource Managerの使用

    この章では、次のタスクについて説明しています。

    • Cloud Controlを使用したCDBにおけるリソース・プランの作成

    • Cloud Controlを使用したCDBリソース・プランのシステム・パフォーマンスの監視

    • PDBリソース・プランの作成

  • CDBでのOracle Schedulerの使用

    この章では、次の項目について説明しています。

    • CDBにおけるDBMS_SCHEDULERの起動

    • CDBにおけるジョブ・コーディネータおよびスレーブ・プロセス

    • DBMS_JOBの使用

    • PDBをクローズするプロセス

    • 新規ビューおよび変更されたビュー

関連項目: