17 Oracle Managed Filesの使用

Oracle Databaseは、データベースを構成するファイルを管理できます。

17.1 Oracle Managed Filesについて

Oracle Managed Filesは、データベースの管理を簡素化し、エラーを削減し、ディスク領域の浪費を減らします。

17.1.1 Oracle Managed Filesとは

Oracle Managed Filesを使用すると、Oracle Databaseの管理が簡素化されます。Oracle Managed Filesにより、DBAは、Oracle Databaseを構成するオペレーティング・システム・ファイルを直接に管理する必要がなくなります。

Oracle Managed Filesでは、データベース・オブジェクト・レベルでデータベースがファイルを自動的に作成、命名および管理するファイル・システム・ディレクトリを指定します。たとえば、指定する必要があるのは作成する表領域のみで、DATAFILE句を使用して表領域のデータファイルの名前およびパスを指定する必要はありません。この機能は、論理ボリューム・マネージャ(LVM)とともに使用すると効果的です。

データベースでは内部的に標準ファイル・システム・インタフェースを使用し、必要に応じて、次のデータベース構造のファイルを作成および削除します。

  • 表領域

  • REDOログ・ファイル

  • 制御ファイル

  • アーカイブ・ログ

  • ブロック・チェンジ・トラッキング・ファイル

  • フラッシュバック・ログ

  • RMANバックアップ

初期化パラメータによって、特定のタイプのファイルに使用するファイル・システム・ディレクトリを指定します。これにより、一意のOracle Managed Filesが作成され、不要になると削除されます。

この機能は、トレース・ファイル、監査ファイル、アラート・ログおよびコア・ファイルなどの管理ファイルの作成および命名には影響を与えません。

関連項目:

Oracle Managed Filesの機能を拡充するOracle Databaseの統合ファイル・システムおよびボリューム・マネージャであるOracle Automatic Storage Management(Oracle ASM)の詳細は、Oracle Automatic Storage Management管理者ガイドを参照してください。Oracle Managed Filesによって、ファイルは自動的に作成および管理されますが、Oracle ASMでは、ストライプ化、ソフトウェアのミラー化、動的な記憶域の構成などの追加機能を利用でき、サード・パーティ製の論理ボリューム・マネージャを購入する必要がありません。

17.1.2 Oracle Managed Filesの使用対象

Oracle Managed Filesは、特定のデータベース・タイプに最も有効です。

Oracle Managed Filesは、次のタイプのデータベースに適しています。

  • 次のものによってサポートされるデータベース

    • ストライプ化/RAIDおよび動的に拡張可能な論理ボリュームをサポートする論理ボリューム・マネージャ

    • サイズが大きく拡張可能なファイルを提供するファイル・システム

  • ローエンド・データベースまたはテスト・データベース

Oracle Managed Filesではオペレーティング・システムのファイル・システムを使用する必要があるため、ディスク上のファイルの配置方法を制御できず、一部のI/Oをチューニングできなくなります。

17.1.3 論理ボリューム・マネージャの概要

論理ボリューム・マネージャ(LVM)は、大部分のオペレーティング・システムに付属するソフトウェア・パッケージです。論理ディスク・マネージャ(LDM)と呼ばれることもあります。これを使用すると、複数の物理ディスクの断片を単一の連続するアドレス空間に結合し、ソフトウェアの上位レイヤーに対して1つのディスクとして表示できます。

LVMを使用することで、基礎になるどの物理ディスクよりも、論理ボリュームに優れた容量、パフォーマンス、信頼性および可用性の特性を持たせることができます。これらの特性を実装するために、ミラーリング、ストライピング、連結およびRAID 5などの技術が使用されています。

LVMの中には、論理ボリュームを作成後、そのボリュームの使用中に特性を変更できるものがあります。ボリュームはサイズ変更やミラー化できるだけでなく、別の物理ディスクに再配置することもできます。

17.1.4 ファイル・システムの概要

ファイル・システムとは、連続するディスク・アドレス空間内に構築されたデータ構造です。ファイル・マネージャ(FM)は、ファイル・システムを操作するソフトウェア・パッケージですが、これがファイル・システムと呼ばれる場合もあります。

オペレーティング・システムには必ずファイル・マネージャが組み込まれています。ファイル・マネージャの主要なタスクは、ファイル・システム内のファイルにディスク領域への割当てまたは割当て解除です。

ファイル・システムを使用すると、多数のファイルにディスク領域を割り当てることができます。各ファイルは、Oracle Databaseなどのアプリケーションに連続するアドレス空間を提供するために作成されます。実際には、ファイル・システムのディスク領域の中でファイルは連続していない場合があります。ファイルは、作成、読取り、書込み、サイズ変更および削除ができます。各ファイルには対応する名前があり、ファイルを参照する際に使用します。

ファイル・システムは通常、LVMが作成する論理ボリュームの最上部に構築されます。したがって、特定のファイル・システム内にあるファイルはすべて、基盤になる論理ボリュームから継承された同じパフォーマンス、信頼性および可用性の特性を持ちます。ファイル・システムは、その中のすべてのファイルによって共有される、単一の記憶域のプールです。ファイル・システムの領域がなくなると、そのファイル・システム内にあるファイルを増やすことはできません。1つのファイル・システムで使用可能な領域が、他のファイル・システムの領域に影響を及ぼすことはありません。ただし、LVMとFMの組合せによっては、ファイル・システムの領域を追加または削除できます。

オペレーティング・システムは、複数のファイル・システムをサポートできます。別々のファイルに異なる記憶特性を与える場合や、使用可能なディスク領域を分割して互いに影響を及ぼさないプールを作成する場合に、複数のファイル・システムが作成されます。

17.1.5 Oracle Managed Filesの使用上の利点

Oracle Managed Filesは、いくつかの利点を提供します。

Oracle Managed Filesを使用すると、次のような利点があります。

  • データベースの管理が容易になります。

    ファイル名を考えて、特定の記憶域要件を定義する必要はありません。一貫性のある一連のルールに基づいて、すべての関連ファイルが命名されます。記憶域の特性と記憶域を割り当てるプールは、ファイル・システムによって定義されます。

  • 管理者による誤ったファイルの指定が原因で破損することが少なくなります。

    Oracle Managed Filesとファイル名はすべて一意です。一般的によくある間違いは、2つの異なるデータベースで同じファイルを使用することであり、これが長時間にわたるシステム・ダウンを引き起こし、コミット済トランザクションが失われる原因となります。1つのファイルを参照するために2つの異なる名前を使用することは、重大な破損の原因になるもう1つの間違いです。

  • 不要なファイルの存在によるディスク領域の浪費が減少します。

    Oracle Databaseでは、Oracle Managed Filesが不要になったとき、古いファイルが自動的に削除されます。大規模なシステムでは、特定のファイルがまだ必要かどうか誰も確信できないという理由だけで、大量のディスク領域が浪費されています。これは、ディスク上の不要ファイルの削除という管理タスクを容易にし、ファイルを誤って削除することも防止します。

  • テスト・データベースおよび開発データベースを容易に作成できます。

    ファイル構造と命名について検討する時間を最小限にとどめることができ、実行するファイル管理タスクも従来より少なくて済みます。これにより、テスト・データベースまたは開発データベースの実際の要件を満たす作業に集中できます。

  • 移植可能なサード・パーティ製ツールの開発が容易になります。

    Oracle Managed Filesでは、SQLスクリプト内でオペレーティング・システム固有のファイル名を指定する必要がありません。

17.1.6 Oracle Managed Filesと既存の機能

Oracle Managed Filesを使用しても、既存の機能が不要になるわけではありません。

既存データベースは、常に従来どおり操作できます。古いファイルはそれまでの方法で管理し、その一方で新しいファイルは管理ファイルとして作成できます。したがって、データベースにはOracle Managed Filesとそれ以外のファイルがともに存在する状態になります。

17.2 Oracle Managed Filesの作成および使用の有効化

Oracle Managed Filesを有効化し、使用するには、いくつかの初期化パラメータを設定します。

17.2.1 Oracle Managed Filesを有効化する初期化パラメータ

次の表に、Oracle Managed Filesの使用を有効化する初期化パラメータを示します。

初期化パラメータ 説明

DB_CREATE_FILE_DEST

作成操作でファイル仕様を指定しなかった場合に、データベースによってデータファイルまたは一時ファイルが作成されるデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループの場所を定義します。DB_CREATE_ONLINE_LOG_DEST_nを指定していない場合は、REDOログ・ファイルおよび制御ファイルのデフォルトの場所としても使用されます。

DB_CREATE_ONLINE_LOG_DEST_n

作成操作でファイル仕様を指定しなかった場合に、REDOログ・ファイルおよび制御ファイルが作成されるデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループの場所を定義します。nを変更することによってこの初期化パラメータを複数回使用でき、nはREDOログ・ファイルまたは制御ファイルの多重化コピーを指定します。多重化コピーは最大5つまで指定できます。

DB_RECOVERY_FILE_DEST

データベースによってRMANによるバックアップ(フォーマット・オプションが使用されていない場合)、アーカイブ・ログ(他のローカル・アーカイブ先が構成されていない場合)およびフラッシュバック・ログが作成されるデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループである高速リカバリ領域の場所を定義します。DB_CREATE_ONLINE_LOG_DEST_nを指定していない場合は、REDOログ・ファイルおよび制御ファイルまたはその多重コピーのデフォルトの場所としても使用されます。このパラメータが指定されている場合、DB_RECOVERY_FILE_DEST_SIZE初期化パラメータも指定する必要があります。

これらのパラメータによって指定するファイル・システム・ディレクトリはすでに存在している必要があり、データベースによって作成されません。また、ディレクトリには、データベースによるファイルの作成権限が必要です。

ファイル作成操作で場所を明示的に指定しなかった場合は、必ずデフォルトの場所が使用されます。ファイル名はデータベースが作成するため、作成されたファイルはOracle Managed Filesになります。

これら2つの初期化パラメータはどちらも動的であり、ALTER SYSTEMまたはALTER SESSION文を使用して設定できます。

関連項目:

17.2.2 DB_CREATE_FILE_DEST初期化パラメータの設定

DB_CREATE_FILE_DEST初期化パラメータは、重要なデータベース・ファイルの場所を指定します。

初期化パラメータ・ファイルにDB_CREATE_FILE_DEST初期化パラメータを設定して、データベースが次のファイルを作成するデフォルトの場所を識別できるようにします。

  • データファイル

  • 一時ファイル

  • REDOログ・ファイル

  • 制御ファイル

  • ブロック・チェンジ・トラッキング・ファイル

ファイル・システム・ディレクトリの名前を指定して、これらに対するオペレーティング・システム・ファイルを作成するためのデフォルトの場所にします。次の例では、Oracle Managed Filesを作成する際に使用するデフォルトのディレクトリとして、/u01/app/oracle/oradataを設定しています。

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

17.2.3 DB_RECOVERY_FILE_DESTパラメータの設定

初期化パラメータ・ファイルにDB_RECOVERY_FILE_DESTおよびDB_RECOVERY_FILE_DEST_SIZEパラメータを設定して、高速リカバリ領域のデフォルトの場所を識別できるようにします。

高速リカバリ領域には、次が格納されます。

  • REDOログ・ファイルまたはその多重コピー

  • 制御ファイルまたはその多重コピー

  • RMANバックアップ(データファイルのコピー、制御ファイルのコピー、バックアップ・ピース、制御ファイルの自動バックアップ)

  • アーカイブ・ログ

  • フラッシュバック・ログ

ファイル・システム・ディレクトリの名前を指定して、これらに対するオペレーティング・システム・ファイルを作成するためのデフォルトの場所にします。例:

DB_RECOVERY_FILE_DEST = '/u01/app/oracle/fast_recovery_area'
DB_RECOVERY_FILE_DEST_SIZE = 20G

17.2.4 DB_CREATE_ONLINE_LOG_DEST_n初期化パラメータの設定

DB_CREATE_ONLINE_LOG_DEST_n初期化パラメータは、REDOログ・ファイルおよび制御ファイルの場所を指定します。

初期化パラメータ・ファイルにDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータを設定して、データベースが次のファイルを作成するデフォルトの場所を識別できるようにします。

  • REDOログ・ファイル

  • 制御ファイル

ファイル・システム・ディレクトリまたはOracle ASMディスク・グループの名前を指定して、これらに対するファイルを作成するためのデフォルトの場所にします。多重コピーを配置する場所は最大5つまで指定できます。

REDOログ・ファイルおよび制御ファイルの作成時のみ、このパラメータはDB_CREATE_FILE_DESTおよびDB_RECOVERY_FILE_DEST初期化パラメータで指定されたデフォルトの場所よりも優先されます。DB_CREATE_FILE_DESTパラメータを指定せず、DB_CREATE_ONLINE_LOG_DEST_nパラメータのみを指定している場合は、REDOログ・ファイルと制御ファイルのみがOracle Managed Filesとして作成されます。

少なくとも2つのパラメータを指定することをお薦めします。例:

DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata'

これによって、ファイルを多重化できるため、REDOログ・ファイルまたは制御ファイルの保存先のどちらかで障害が発生した場合のフォルト・トレランスが向上します。

17.3 Oracle Managed Filesの作成

Oracle Managed Filesを使用して、データ・ファイル、一時ファイル、制御ファイル、REDOログ・ファイルおよびアーカイブ・ログを作成できます。

17.3.1 Oracle DatabaseによるOracle Managed Filesの作成

いくつかの条件が満たされた場合、Oracle DatabaseではOracle Managed Filesが作成されます。

次の条件のいずれかを満たしている場合で、作成操作でファイル仕様を指定しなかったときに、必要に応じてOracle DatabaseによってOracle Managed Filesが作成されます。

  • 初期化パラメータ・ファイルに、DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTまたはDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータのいずれかを指定している場合

  • DB_RECOVERY_FILE_DESTDB_CREATE_FILE_DESTまたはDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータのいずれかを動的に設定するために、ALTER SYSTEM文を発行した場合

  • DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTまたはDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータのいずれかを動的に設定するために、ALTER SESSION文を発行した場合

Oracle Managed Filesを作成する文がエラーを検出した場合、またはなんらかの障害のために完了しなかった場合は、その文によって作成されたOracle Managed Filesはすべて、エラーまたは障害のリカバリの一部として自動的に削除されます。ただし、ファイル・システムやストレージ・サブシステムで発生する多数の潜在的なエラーが原因で、オペレーティング・システムのコマンドを使用した手動でのファイル削除が必要になる場合があります。

17.3.2 Oracle Managed Filesの命名方法

Oracle Managed Filesのファイル名は、ファイル命名に関するOptimal Flexible Architecture(OFA)標準に準拠しています。

注意:

この項で説明する命名方法は、オペレーティング・システムのファイル・システムに作成されるファイルにのみ適用されます。Oracle Automatic Storage Management(Oracle ASM)ディスク・グループで作成されたファイルの命名方式の詳細は、Oracle Automatic Storage Management管理者ガイドを参照してください。

割り当てられた名前は、次の要件を満たしています。

  • データベース・ファイルが他のすべてのファイルと容易に区別できます。

  • 1つのデータベース・タイプのファイルが、他のデータベース・タイプのファイルと容易に区別できます。

  • ファイルはファイル・タイプ固有の重要な属性に明確に関連付けられます。たとえば、データファイルの表領域への関連付けを容易にするためにデータファイル名に表領域名を含めたり、アーカイブ・ログ名にスレッド、順序および作成日を含めることが可能です。

同じ名前を持つOracle Managed Filesは1つもありません。Oracle Managed Filesの作成に使用される名前は、次の3つのソースから構成されます。

  • デフォルトの作成場所。

  • ファイルのタイプに基づいて選択されたファイル名テンプレート。テンプレートは、オペレーティング・システムのプラットフォームや、Oracle Automatic Storage Managementを使用しているかどうかによって異なります。

  • Oracle Databaseまたはオペレーティング・システムによって作成された一意の文字列。これにより、ファイル作成によって既存のファイルが破損しないこと、および誤って他のファイルが選択されないことが保証されます。

具体的な例として、Solarisファイル・システムにおけるOracle Managed Filesのファイル名の書式を次に示します。

destination_prefix/o1_mf_%t_%u_.dbf

ここで:

  • destination_prefixdestination_location/db_unique_name/datafileです。

    ここで:

    • destination_locationは、DB_CREATE_FILE_DESTに指定した場所です。

    • db_unique_nameは、ターゲット・データベースのグローバルな一意の名前(DB_UNIQUE_NAME初期化パラメータ)です。DB_UNIQUE_NAMEパラメータがない場合は、DB_NAME初期化パラメータ値が使用されます。

  • %tは表領域の名前を表します。

  • %uは一意性を保証する8文字の文字列を表します。

たとえば、次のようなパラメータ設定を考えてみます。

DB_CREATE_FILE_DEST   = /u01/app/oracle/oradata
DB_UNIQUE_NAME = PAYROLL

この例のデータファイル名は次のようになります。

/u01/app/oracle/oradata/PAYROLL/datafile/o1_mf_tbs1_2ixh90q_.dbf

他のファイル・タイプの名前もほぼ同じです。他のプラットフォームでもファイル名はほぼ同じですが、各プラットフォームのネーミング規則の制約を受けます。

後続の例では、Solarisファイル・システムでOMFアーカイブ先として表示されるOracle Managed Filesの名前を使用します。

注意:

Oracle Managed Filesは名前に基づいて識別されます。ファイル名を変更すると、データベースではOracle Managed Filesとして認識できなくなり、ファイルは適切に管理されません。

17.3.3 データベース作成時のOracle Managed Filesの作成

CREATE DATABASE文は、Oracle Managed Filesに関連するアクションを実行できます。

注意:

この項で説明するルールとデフォルトは、Database Configuration Assistant(DBCA)によるデータベースの作成にも適用されます。DBCAでは、グラフィカル・インタフェースを使用してOracle Managed Filesを有効化し、この項で説明する初期化パラメータに対応するファイルの場所を指定できます。

関連項目:

CREATE DATABASE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

17.3.3.1 データベース作成時の制御ファイルの指定

データベース作成時には、CONTROL_FILES初期化パラメータによって指定されたファイルで、制御ファイルが作成されます。

CONTROL_FILESパラメータが設定されておらず、Oracle Managed Filesの作成に必要な初期化パラメータが少なくとも1つ設定されている場合は、制御ファイルのデフォルトの保存先にOracle Managed Filesの制御ファイルが作成されます。デフォルトの保存先は、次の優先度に従って定義されます。

  • DB_CREATE_ONLINE_LOG_DEST_n初期化パラメータで指定されている1つ以上の制御ファイル。最初のディレクトリに作成されたファイルが主制御ファイルになります。DB_CREATE_ONLINE_LOG_DEST_nが指定されている場合は、DB_CREATE_FILE_DESTまたはDB_RECOVERY_FILE_DEST(高速リカバリ領域)に制御ファイルは作成されません。

  • DB_CREATE_ONLINE_LOG_DEST_nに値が指定されていない場合で、DB_CREATE_FILE_DESTおよびDB_RECOVERY_FILE_DESTの両方に値が設定されている場合は、それぞれの場所に1つの制御ファイルが作成されます。DB_CREATE_FILE_DESTに指定された場所が主制御ファイルの場所になります。

  • DB_CREATE_FILE_DESTに対してのみ値が指定されている場合は、その場所に1つの制御ファイルが作成されます。

  • DB_RECOVERY_FILE_DESTに対してのみ値が指定されている場合は、その場所に1つの制御ファイルが作成されます。

CONTROL_FILESパラメータが設定されておらず、これらの初期化パラメータがいずれも設定されていない場合は、Oracle Databaseのデフォルトのアクションはオペレーティング・システムによって異なります。最低1つの制御ファイルのコピーが、デフォルトの場所(オペレーティング・システムによって異なる)に作成されます。このようにして作成された制御ファイルのコピーはOracle Managed Filesではなく、初期化パラメータ・ファイルにCONTROL_FILES初期化パラメータを追加する必要があります。

Oracle Managed Filesの制御ファイルが作成された場合で、サーバー・パラメータ・ファイルが存在するときは、サーバー・パラメータ・ファイルにCONTROL_FILES初期化パラメータのエントリが追加されます。サーバー・パラメータ・ファイルが存在しない場合は、CONTROL_FILES初期化パラメータのエントリをテキスト形式の初期化パラメータ・ファイルに手動で追加する必要があります。

17.3.3.2 データベース作成時のREDOログ・ファイルの指定

CREATE DATABASE文でLOGFILE句は必須でなく、単純にこれを省略するとOracle Managed FilesのREDOログ・ファイルが作成されます。

LOGFILE句を省略すると、デフォルトのREDOログ・ファイルの保存先にREDOログ・ファイルが作成されます。デフォルトの保存先は、次の優先度に従って定義されます。

  • DB_CREATE_ONLINE_LOG_DEST_nが設定されている場合は、指定された各ディレクトリにログ・ファイルのメンバーが作成されます。最大数はMAXLOGMEMBERS初期化パラメータの値です。

  • DB_CREATE_ONLINE_LOG_DEST_nパラメータが設定されていない場合で、DB_CREATE_FILE_DESTおよびDB_RECOVERY_FILE_DEST初期化パラメータの両方が設定されているときは、それぞれの場所に1つのOracle Managed Filesのログ・ファイルのメンバーが作成されます。DB_CREATE_FILE_DESTアーカイブ先のログ・ファイルが最初のメンバーです。

  • DB_CREATE_FILE_DEST初期化パラメータのみが指定されている場合は、その場所にログ・ファイルのメンバーが作成されます。

  • DB_RECOVERY_FILE_DEST初期化パラメータのみが指定されている場合は、その場所にログ・ファイルのメンバーが作成されます。

Oracle Managed FilesのREDOログ・ファイルのデフォルト・サイズは100MBです。

オプションで、Oracle Managed FilesのREDOログ・ファイルを作成し、LOGFILE句を含めながらファイル名を省略することにより、デフォルト属性を上書きできます。REDOログ・ファイルも同様に作成されますが、異なる点は、CREATE DATABASELOGFILE句にファイル名が入力されておらず、Oracle Managed Filesの作成に必要な初期化パラメータが1つも提供されていない場合、CREATE DATABASE文が失敗することです。

17.3.3.3 データベース作成時のSYSTEM表領域およびSYSAUX表領域用データファイルの指定

CREATE DATABASE文でDATAFILE句またはSYSAUX DATAFILE句は必須でなく、単純にこれを省略するとSYSTEM表領域およびSYSAUX表領域用のOracle Managed Filesのデータファイルが作成されます。

DATAFILE句を省略すると、次の処理のいずれかが実行されます。

  • DB_CREATE_FILE_DESTが設定されている場合は、SYSTEM表領域用およびSYSAUX表領域用のOracle Managed FilesのデータファイルがDB_CREATE_FILE_DESTディレクトリに1つずつ作成されます。

  • DB_CREATE_FILE_DESTが設定されていない場合は、オペレーティング・システム固有の名前とサイズで、SYSTEM表領域のデータファイルおよびSYSAUX表領域のデータファイルが1つずつ作成されます。この方法で作成されたSYSTEM表領域のデータファイルまたはSYSAUX表領域のデータファイルはOracle Managed Filesではありません。

デフォルトでは、SYSTEMおよびSYSAUX表領域用を含めてOracle Managed Filesのデータファイルは100MBで、自動拡張可能です。自動拡張が必要な場合、データファイルは既存サイズまたは100MB単位(いずれか小さい方)で拡張されます。データファイルの指定時(CREATE操作またはALTER TABLESPACE操作時)に、STORAGE句のNEXTパラメータを使用して、自動拡張可能単位を明示的に指定することもできます。

必要に応じて、SYSTEM表領域用またはSYSAUX表領域用のOracle Managed Filesのデータファイルを作成し、デフォルトの属性を上書きできます。そのためには、ファイル名を省略し、上書きする属性を指定して、DATAFILE句を指定します。ファイル名を指定せずに、DB_CREATE_FILE_DESTパラメータを設定すると、SYSTEM表領域用またはSYSAUX表領域用のOracle Managed FilesのデータファイルがDB_CREATE_FILE_DESTディレクトリに作成され、指定した属性が上書きされます。ただし、ファイル名を指定せず、DB_CREATE_FILE_DESTパラメータを設定しないと、CREATE DATABASE文が失敗します。

Oracle Managed Filesのデフォルト属性を上書きする際、SIZE値が指定されており、AUTOEXTEND句が指定されていない場合、データファイルは自動拡張可能ではありません。

17.3.3.4 データベース作成時のUNDO表領域データファイルの指定

UNDO TABLESPACE句のDATAFILE副次句は必須でなく、ファイル仕様に必ずしもファイル名を指定する必要はありません。

ファイル名を指定せず、DB_CREATE_FILE_DESTパラメータが設定されている場合は、Oracle Managed FilesのデータファイルがDB_CREATE_FILE_DESTディレクトリに作成されます。DB_CREATE_FILE_DESTが設定されていない場合は、構文エラーで文が失敗します。

UNDO TABLESPACE句自体は、CREATE DATABASE文のオプションです。この句を指定せず、自動UNDO管理モードが使用可能な場合(デフォルト)は、次のルールに従って、SYS_UNDOTSという名前のデフォルトのUNDO表領域が作成され、自動拡張可能な20MBのデータファイルが割り当てられます。

  • DB_CREATE_FILE_DESTが設定されている場合は、指定されたディレクトリにOracle Managed Filesのデータファイルが作成されます。

  • DB_CREATE_FILE_DESTが設定されていない場合は、オペレーティング・システム固有のデフォルトの場所にデータファイルが作成されます。

    関連項目:

    「UNDOの管理」

17.3.3.5 データベース作成時のデフォルト一時表領域用一時ファイルの指定

DEFAULT TEMPORARY TABLESPACE句のTEMPFILE副次句は必須でなく、ファイル仕様に必ずしもファイル名を指定する必要はありません。

ファイル名を指定せず、DB_CREATE_FILE_DESTパラメータが設定されている場合は、Oracle Managed Filesの一時ファイルがDB_CREATE_FILE_DESTディレクトリに作成されます。DB_CREATE_FILE_DESTが設定されていない場合は、構文エラーでCREATE DATABASE文が失敗します。

DEFAULT TEMPORARY TABLESPACE句自体はオプションです。この句を指定していない場合、デフォルト一時表領域は作成されません。

Oracle Managed Filesの一時ファイルのデフォルト・サイズは100MBです。このファイルは自動的に拡張可能で、最大サイズに制限はありません。

17.3.3.6 Oracle Managed Filesを使用したCREATE DATABASE文の例

例では、Oracle Managed Files機能を使用する場合にCREATE DATABASE文を使用したデータベースの作成を示しています。

CREATE DATABASE: 例1

この例では、次のOracle Managed Filesを使用してデータベースを作成します。

  • ディレクトリ/u01/app/oracle/oradataSYSTEM表領域用データファイル。サイズは無制限に自動拡張可能です。

  • ディレクトリ/u01/app/oracle/oradataSYSAUX表領域用データファイル。サイズは無制限に自動拡張可能です。表領域は、自動セグメント領域管理によってローカルに管理されます。

  • それぞれ100MBのメンバーを2つ含む2つのオンライン・ログ・グループ。/u02/oradata/u03/oradataに1つずつ作成されます。

  • 自動UNDO管理モードが使用可能の場合(デフォルト)は、ディレクトリ/u01/app/oracle/oradataのUNDO表領域用データファイル。サイズは20MBで、無制限に自動拡張可能です。SYS_UNDOTSという名前のUNDO表領域が作成されます。

  • CONTROL_FILES初期化パラメータが指定されていない場合は、2つの制御ファイルが/u02/oradata/u03/oradataに1つずつ作成されます。/u02/oradataの制御ファイルが主制御ファイルになります。

Oracle Managed Filesに関連する初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata'

SQLプロンプトから次の文を発行します。

CREATE DATABASE sample;

ローカル管理されるSYSTEM表領域を持つデータベースを作成するには、EXTENT MANAGEMENT LOCAL句を追加します。

CREATE DATABASE sample EXTENT MANAGEMENT LOCAL;

この句を使用しない場合は、SYSTEM表領域はディクショナリ管理されます。ローカル管理のSYSTEM表領域を作成することをお薦めします。

CREATE DATABASE: 例2

この例では、次のOracle Managed Filesを使用してデータベースを作成します。

  • ディレクトリ/u01/app/oracle/oradataSYSTEM表領域用データファイル。サイズは無制限に自動拡張可能です。

  • ディレクトリ/u01/app/oracle/oradataSYSAUX表領域用データファイル。サイズは無制限に自動拡張可能です。表領域は、自動セグメント領域管理によってローカルに管理されます。

  • ディレクトリ/u01/app/oracle/oradataの2つのREDOログ・ファイル(各100MB)。これらは多重化されていません。

  • ディレクトリ/u01/app/oracle/oradataのUNDO表領域用データファイル。サイズは20MBで、無制限に自動拡張可能です。SYS_UNDOTSという名前のUNDO表領域が作成されます。

  • /u01/app/oracle/oradataの1つの制御ファイル。

この例では、次のように想定されています。

  • 初期化パラメータ・ファイルにDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータは1つも指定されていません。

  • 初期化パラメータ・ファイルにCONTROL_FILES初期化パラメータは指定されていません。

  • 自動UNDO管理モードは使用可能になっています。

SQLプロンプトから次の文を発行します。

ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata';
CREATE DATABASE sample2 EXTENT MANAGEMENT LOCAL;

このデータベース構成は、本番データベースにはお薦めしません。この例は、非常にローエンドのデータベースか、単純なテスト・データベースを簡単に作成する方法を示しています。このデータベースの耐障害性を高めるには、制御ファイルを少なくとももう1つ作成し、REDOログを多重化する必要があります。

CREATE DATABASE: 例3

この例では、デフォルト一時表領域およびUNDO表領域用のOracle Managed Filesのファイル・サイズを指定しています。次のOracle Managed Filesを持つデータベースが作成されます。

  • ディレクトリ/u01/app/oracle/oradataSYSTEM表領域用データファイル(400MB)。SIZEが指定されているため、このファイルは自動拡張可能ではありません。

  • ディレクトリ/u01/app/oracle/oradataSYSAUX表領域用データファイル(200MB)。SIZEが指定されているため、このファイルは自動拡張可能ではありません。表領域は、自動セグメント領域管理によってローカルに管理されます。

  • それぞれ100MBのメンバーを2つ含む2つのREDOログ・グループ。ディレクトリ/u02/oradata/u03/oradataに1つずつ作成されます。

  • デフォルト一時表領域dflt_tsに対して、ディレクトリ/u01/app/oracle/oradataの一時ファイル(10MB)。SIZEが指定されているため、このファイルは自動拡張可能ではありません。

  • UNDO表領域undo_tsに対して、ディレクトリ/u01/app/oracle/oradataのデータファイル(100MB)。SIZEが指定されているため、このファイルは自動拡張可能ではありません。

  • CONTROL_FILES初期化パラメータが指定されていない場合は、2つの制御ファイルがディレクトリ/u02/oradata/u03/oradataに1つずつ作成されます。/u02/oradataの制御ファイルが主制御ファイルになります。

初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata'
DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata'

SQLプロンプトから次の文を発行します。

CREATE DATABASE sample3
EXTENT MANAGEMENT LOCAL
DATAFILE SIZE 400M
SYSAUX DATAFILE SIZE 200M
DEFAULT TEMPORARY TABLESPACE dflt_ts TEMPFILE SIZE 10M
UNDO TABLESPACE undo_ts DATAFILE SIZE 100M;

17.3.4 Oracle Managed Filesを使用した表領域用データファイルの作成

いくつかの条件が満たされた場合、Oracle DatabaseではOracle Managed Filesを使用して表領域のデータファイルを作成できます。

17.3.4.1 Oracle Managed Filesを使用した表領域用データファイルの作成について

いくつかの条件が満たされた場合、次のSQL文は、Oracle Managed Filesを使用して表領域のデータファイルを作成できます: CREATE TABLESPACECREATE UNDO TABLESPACEおよびALTER TABLESPACE ... ADD DATAFILE

次の文は、データファイルを作成できます。

  • CREATE TABLESPACE

  • CREATE UNDO TABLESPACE

  • ALTER TABLESPACE ... ADD DATAFILE

表領域を作成するときは、永続表領域とUNDO表領域のいずれの場合も、DATAFILE句はオプションです。DATAFILE句を指定する場合、ファイル名はオプションです。DATAFILE句またはファイル名を省略すると、次のルールが適用されます。

  • DB_CREATE_FILE_DEST初期化パラメータが設定されている場合は、パラメータで指定された場所にOracle Managed Filesのデータファイルが作成されます。

  • DB_CREATE_FILE_DEST初期化パラメータが設定されていない場合は、データファイルを作成する文が失敗します。

ALTER TABLESPACE...ADD DATAFILE文で表領域にデータファイルを追加する場合、ファイル名はオプションです。ファイル名を省略すると、前の段落で説明したのと同じルールが適用されます。

デフォルトでは、永続表領域用のOracle Managed Filesのデータファイルのサイズは100MBです。このファイルは自動的に拡張可能で、最大サイズに制限はありません。ただし、DATAFILE句でSIZE値を指定する(AUTOEXTEND句は指定しない)ことによって、これらのデフォルトを上書きした場合、データファイルは自動拡張可能ではありません

17.3.4.2 CREATE TABLESPACE: 例

Oracle Managed Filesを使用して表領域を作成する例を示します。

関連項目:

CREATE TABLESPACE文の詳細は、『Oracle Database SQL言語リファレンス』

CREATE TABLESPACE: 例1

次の例では、データファイルを作成するデフォルトの場所を/u01/oradataに設定し、その場所のデータファイルを含む表領域tbs_1を作成します。データファイルは100MBで、無制限に自動拡張可能です。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TABLESPACE tbs_1;

CREATE TABLESPACE: 例2

この例では、/u01/oradataディレクトリにデータファイルを含むtbs_2という表領域を作成します。データファイルの初期サイズは400 MBで、SIZE句が指定されているため自動拡張可能ではありません。

初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_FILE_DEST = '/u01/oradata'

SQLプロンプトから次の文を発行します。

SQL> CREATE TABLESPACE tbs_2 DATAFILE SIZE 400M;

CREATE TABLESPACE: 例3

この例では、/u01/oradataディレクトリに自動拡張可能なデータファイルを含むtbs_3という表領域を作成します(初期サイズ100MB、最大サイズ800MB)。

初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_FILE_DEST = '/u01/oradata'

SQLプロンプトから次の文を発行します。

SQL> CREATE TABLESPACE tbs_3 DATAFILE AUTOEXTEND ON MAXSIZE 800M;

CREATE TABLESPACE: 例4

次の例では、データファイルを作成するデフォルトの場所を/u01/oradataに設定し、そのディレクトリに2つのデータファイルを含むtbs_4という表領域を作成します。どちらのデータファイルも初期サイズは200MBで、SIZE値が指定されているため自動拡張可能ではありません。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TABLESPACE tbs_4 DATAFILE SIZE 200M, SIZE 200M;
17.3.4.3 CREATE UNDO TABLESPACE: 例

UNDO表領域を作成する例を示します。

次の例では、ディレクトリ/u01/oradata上のデータファイルを含むUNDO表領域undotbs_1を作成しています。UNDO表領域用のデータファイルは100MBで、無制限に自動拡張可能です。

  1. 次の初期化パラメータを設定します。

    DB_CREATE_FILE_DEST = '/u01/oradata'
    
  2. 次のSQL文を発行します。

    SQL> CREATE UNDO TABLESPACE undotbs_1;
17.3.4.4 ALTER TABLESPACE: 例

表領域にOracle Managed Filesの自動拡張可能なデータファイルを追加する例を示します。

この例では、自動拡張可能なOracle Managed Filesのデータファイルをtbs_1表領域に追加しています。データファイルは初期サイズが100MBで、最大サイズが800MBです。

  1. 次の初期化パラメータを設定します。

    DB_CREATE_FILE_DEST = '/u01/oradata'
    
  2. 次のSQL文を発行します。

    SQL> ALTER TABLESPACE tbs_1 ADD DATAFILE AUTOEXTEND ON MAXSIZE 800M;

17.3.5 Oracle Managed Filesを使用した一時表領域用一時ファイルの作成

いくつかの条件が満たされた場合、Oracle DatabaseではOracle Managed Filesを使用して一時表領域の一時ファイルを作成できます。

17.3.5.1 Oracle Managed Filesを使用した一時表領域用一時ファイルの作成について

いくつかの条件が満たされた場合、次のSQL文は、Oracle Managed Filesを使用して表領域の一時ファイルを作成できます: CREATE TEMPORARY TABLESPACEおよびALTER TABLESPACE ... ADD TEMPFILE

ここでは、一時ファイルを作成する次の文について説明します。

  • CREATE TEMPORARY TABLESPACE

  • ALTER TABLESPACE ... ADD TEMPFILE

一時表領域を作成する場合、TEMPFILE句はオプションです。TEMPFILE句を指定する場合、ファイル名はオプションです。TEMPFILE句またはファイル名を省略すると、次のルールが適用されます。

  • DB_CREATE_FILE_DEST初期化パラメータが設定されている場合は、パラメータで指定された場所にOracle Managed Filesの一時ファイルが作成されます。

  • DB_CREATE_FILE_DEST初期化パラメータが設定されていない場合は、一時ファイルを作成する文が失敗します。

ALTER TABLESPACE...ADD TEMPFILE文で表領域に一時ファイルを追加する場合、ファイル名はオプションです。ファイル名を省略すると、前の段落で説明したのと同じルールが適用されます。

Oracle Managed Filesのデフォルト属性を上書きする際、SIZE値が指定されており、AUTOEXTEND句が指定されていない場合、データファイルは自動拡張可能ではありません。

17.3.5.2 CREATE TEMPORARY TABLESPACE: 例

一時表領域を作成する例を示します。

次の例では、データファイルを作成するデフォルトの場所を/u01/oradataに設定してから、その場所の一時ファイルを含む表領域temptbs_1を作成します。一時ファイルは100MBで、無制限に自動拡張可能です。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TEMPORARY TABLESPACE temptbs_1;
17.3.5.3 ALTER TABLESPACE... ADD TEMPFILE: 例

一時表領域に一時ファイルを追加する例を示します。

次の例では、データファイルを作成するデフォルトの場所を/u03/oradataに設定してから、デフォルトの場所のtemptbs_1という表領域に一時ファイルを追加しています。一時ファイルの初期サイズは100MBです。これは無制限に自動拡張可能です。

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u03/oradata';
SQL> ALTER TABLESPACE TBS_1 ADD TEMPFILE;

17.3.6 Oracle Managed Filesを使用した制御ファイルの作成

いくつかの条件が満たされた場合、Oracle DatabaseではOracle Managed Filesを使用して制御ファイルを作成できます。

17.3.6.1 Oracle Managed Filesを使用した制御ファイルの作成について

いくつかの条件が満たされた場合、CREATE CONTROLFILE SQL文により、Oracle Managed Filesを使用して制御ファイルを作成できます。

CREATE CONTROLFILE文を発行すると、CONTROL_FILES初期化パラメータによって指定されたファイルで、制御ファイルが作成(REUSEを指定した場合は再利用)されます。CONTROL_FILESパラメータが設定されていない場合は、制御ファイルのデフォルトの保存先に制御ファイルが作成されます。デフォルトの保存先は、「データベース作成時の制御ファイルの指定」に記載されている優先度によって決まります。

Oracle DatabaseによってOracle Managed Filesの制御ファイルが作成された場合で、サーバー・パラメータ・ファイルが存在するときは、サーバー・パラメータ・ファイルにCONTROL_FILES初期化パラメータが作成されます。サーバー・パラメータ・ファイルが存在しない場合は、CONTROL_FILES初期化パラメータを手動で作成して、初期化パラメータ・ファイルに追加する必要があります。

データベースのデータファイルがOracle Managed Filesの場合は、文のDATAFILE句に、そのファイルのデータベース生成ファイル名を指定する必要があります。

REDOログ・ファイルがOracle Managed Filesの場合は、NORESETLOGSまたはRESETLOGSキーワードによって、LOGFILE句に指定できるパラメータが決まります。

  • NORESETLOGSキーワードを使用する場合は、Oracle Managed FilesのREDOログ・ファイル用に生成されるファイル名をLOGFILE句に指定する必要があります。

  • RESETLOGSキーワードを使用する場合は、REDOログ・ファイル名をCREATE DATABASE文の場合と同様に指定できます。「データベース作成時のREDOログ・ファイルの指定」を参照してください。

Oracle Managed Filesを使用したCREATE CONTROLFILE文の使用例については、次の項を参照してください。

17.3.6.2 NORESETLOGSキーワードを使用したCREATE CONTROLFILE: 例

NORESETLOGSキーワードを含むCREATE CONTROLFILE文を使用して制御ファイルを作成する例を示します。

次のCREATE CONTROLFILE文は、Oracle Managed FilesのデータファイルおよびREDOログ・ファイルを含むデータベースでALTER DATABASE BACKUP CONTROLFILE TO TRACE文を発行したときに生成されます。

CREATE CONTROLFILE
     DATABASE sample
     LOGFILE 
       GROUP 1 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_1_o220rtt9_.log',
                '/u02/oradata/SAMPLE/onlinelog/o1_mf_1_v2o0b2i3_.log')
                 SIZE 100M,
       GROUP 2 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_2_p22056iw_.log', 
                '/u02/oradata/SAMPLE/onlinelog/o1_mf_2_p02rcyg3_.log') 
                 SIZE 100M
     NORESETLOGS
     DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_xu34ybm2_.dbf' 
              SIZE 100M,
              '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_aawbmz51_.dbf'
              SIZE 100M,
              '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_apqbmz51_.dbf'
              SIZE 100M
     MAXLOGFILES 5
     MAXLOGHISTORY 100
     MAXDATAFILES 10
     MAXINSTANCES 2
     ARCHIVELOG;
17.3.6.3 RESETLOGSキーワードを使用したCREATE CONTROLFILE: 例

RESETLOGSキーワードを含むCREATE CONTROLFILE文を使用して制御ファイルを作成する例を示します。

次の文は、RESETLOGSオプションを指定したCREATE CONTROLFILE文の例です。DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTおよびDB_CREATE_ONLINE_LOG_DEST_nを組み合せて設定する必要があります。

CREATE CONTROLFILE
     DATABASE sample
     RESETLOGS
     DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_aawbmz51_.dbf',
              '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_axybmz51_.dbf',
              '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_azzbmz51_.dbf'
     SIZE 100M
     MAXLOGFILES 5
     MAXLOGHISTORY 100
     MAXDATAFILES 10
     MAXINSTANCES 2
     ARCHIVELOG;

後で、ALTER DATABASE OPEN RESETLOGS文を発行して、REDOログ・ファイルを再作成する必要があります。これについては、「ALTER DATABASE OPEN RESETLOGS文の使用」を参照してください。使用していたログ・ファイルがOracle Managed Filesである場合、そのファイルは削除されません。

17.3.7 Oracle Managed Filesを使用したREDOログ・ファイルの作成

REDOログ・ファイルはデータベース作成時に作成されます。次のいずれかの文を発行した場合にも作成できます: ALTER DATABASE ADD LOGFILEおよびALTER DATABASE OPEN RESETLOGS

関連項目:

ALTER DATABASE文の詳細は、『Oracle Database SQL言語リファレンス』

17.3.7.1 ALTER DATABASE ADD LOGFILE文の使用

ALTER DATABASE ADD LOGFILE文を使用すると、現行のREDOログ・ファイルに後から新しいグループを追加できます。

Oracle Managed Filesを使用している場合、ADD LOGFILE句のファイル名はオプションです。ファイル名を省略した場合は、ログ・ファイルのデフォルトの保存先にREDOログ・ファイルが作成されます。デフォルトの保存先は、「データベース作成時のREDOログ・ファイルの指定」に記載されている優先度によって決まります。

ファイル名を指定せず、Oracle Managed Filesの作成に必要な初期化パラメータが1つも指定されていない場合は、文はエラーを戻します。

Oracle Managed Filesのログ・ファイルのデフォルト・サイズは100MBです。

完全なファイル名を指定すると、REDOログ・ファイルのメンバーを引き続き追加および削除できます。

新しいREDOログ・ファイルの追加: 例

次の例では、一方のメンバーが/u01/oradataに、もう一方のメンバーが/u02/oradataに存在するログ・グループを作成します。各ログ・ファイルのサイズは100MBです。

初期化パラメータ・ファイルで、次のパラメータを設定します。

DB_CREATE_ONLINE_LOG_DEST_1 = '/u01/oradata'
DB_CREATE_ONLINE_LOG_DEST_2 = '/u02/oradata'

SQLプロンプトから次の文を発行します。

SQL> ALTER DATABASE ADD LOGFILE;
17.3.7.2 ALTER DATABASE OPEN RESETLOGS文の使用

前にRESETLOGSを指定して制御ファイルを作成しており、その際、ファイル名を指定しなかった場合、または存在しないファイル名を指定した場合は、ALTER DATABASE OPEN RESETLOGS文を発行したときに、REDOログ・ファイルが作成されます。

制御ファイル内に何も指定されていない場合に、REDOログ・ファイルの格納ディレクトリを決めるルールは、「データベース作成時のREDOログ・ファイルの指定」に記載されているルールと同じです。

17.3.8 Oracle Managed Filesを使用したアーカイブ・ログの作成

アーカイブ・ログは、バックグラウンド・プロセスまたはSQL文によって作成されます。

アーカイブ・ログは、次の場合にDB_RECOVERY_FILE_DESTの場所に作成されます。

  • ARCバックグラウンド・プロセスまたはLGWRバックグラウンド・プロセスがオンラインREDOログをアーカイブする場合。または、

  • ALTER SYSTEM ARCHIVE LOG CURRENT文が発行された場合。

たとえば、次のパラメータ設定が初期化パラメータ・ファイルに含まれているとします。

DB_RECOVERY_FILE_DEST_SIZE = 20G
DB_RECOVERY_FILE_DEST      = '/u01/oradata'
LOG_ARCHIVE_DEST_1         = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'

17.4 Oracle Managed Filesの操作

Oracle Managed Filesのファイル名は、既存のファイルを識別するためにファイル名が使用される場合ならいつでもSQL文で使用可能です。

これらのファイル名は、他のファイル名と同様に制御ファイルと、またバックアップおよびリカバリにRecovery Manager (RMAN)を使用している場合はRMANカタログに格納されます。これらは、データファイルおよび一時ファイルの監視に使用される通常の固定および動的パフォーマンス・ビューで参照可能です(V$DATAFILEまたはDBA_DATA_FILESなど)。

次に、データベース生成ファイル名を使用した文の例を示します。

SQL> ALTER DATABASE 
  2> RENAME FILE '/u01/oradata/mydb/datafile/o1_mf_tbs01_ziw3bopb_.dbf'
  3> TO '/u01/oradata/mydb/tbs0101.dbf';

SQL> ALTER DATABASE 
  2> DROP LOGFILE '/u01/oradata/mydb/onlinelog/o1_mf_1_wo94n2xi_.log';

SQL> ALTER TABLE emp 
  2> ALLOCATE EXTENT
  3> (DATAFILE '/u01/oradata/mydb/datafile/o1_mf_tbs1_2ixfh90q_.dbf');

Oracle Managed Filesのデータファイル、一時ファイルおよび制御ファイルは、Oracle Managed Files以外の対応するファイルと同様にバックアップおよびリストアを実行できます。データベース生成ファイル名を使用しても、エクスポート・ファイルなどの論理バックアップ・ファイルの使用には影響しません。これは特に、表領域のPoint-in-Timeリカバリ(TSPITR)およびトランスポータブル表領域のエクスポート・ファイルにとって重要です。

ファイルの削除またはファイルの名前変更の操作、およびスタンバイ・データベースに関連した操作を含むいくつかのケースでは、Oracle Managed Filesの動作が異なる場合があります。

17.4.1 データファイルおよび一時ファイルの削除

データベースによって管理されていないファイルとは異なり、Oracle Managed Filesのデータファイルまたは一時ファイルを削除すると、制御ファイルからファイル名が削除されて、ファイル・システムからファイルが自動的に削除されます。

Oracle Managed Filesを削除する文は、次のとおりです。

  • DROP TABLESPACE

  • ALTER DATABASE TEMPFILE ... DROP

これらの文を使用して、いつでもOracle Managed Filesあるいはそれ以外のファイルを削除することもできます。

  • ALTER TABLESPACE ... DROP DATAFILE

  • ALTER TABLESPACE ... DROP TEMPFILE

17.4.2 REDOログ・ファイルの削除

Oracle Managed FilesのREDOログ・ファイルを削除すると、そのOracle Managed Filesが削除されます。削除するグループまたはメンバーを指定します。

次の文は、REDOログ・ファイルを削除します。

  • ALTER DATABASE DROP LOGFILE

  • ALTER DATABASE DROP LOGFILE MEMBER

17.4.3 ファイルの名前変更

Oracle Managed Filesでは、ファイル名を変更するSQL文によって、実際のオペレーティング・システム上のファイル名が変更されることはなく、制御ファイル内の名前が変更されます。

ファイルの名前を変更するには、次の文が使用されます。

  • ALTER DATABASE RENAME FILE

  • ALTER TABLESPACE ... RENAME DATAFILE

この文を発行するときは、オペレーティング・システムのファイル名の規則を使用して各ファイル名を指定する必要があります。

注意:

変更前のファイルがOracle Managed Filesで、そのファイルが存在している場合は削除されます。

17.4.4 スタンバイ・データベースの管理

スタンバイ・データベースのデータファイル、制御ファイルおよびREDOログ・ファイルは、データベースで管理できます。プライマリ・データベースでOracle Managed Filesが使用されているかどうかは関係ありません。

スタンバイ・データベースのリカバリでデータファイルを作成するREDOを検出したとき、そのデータファイルがOracle Managed Filesの場合は、リカバリ・プロセスによって、ローカル・ファイル・システムのデフォルトの場所に空のファイルが作成されます。これにより、管理者が操作することなく、新しいファイルのREDOが即時に適用されます。

スタンバイ・データベースのリカバリで表領域を削除するREDOを検出した場合は、ローカル・ファイル・システム内にあるOracle Managed Filesのデータファイルがすべて削除されます。プライマリ・データベースでINCLUDING DATAFILESオプションを発行したかどうかは関係ありません。

17.5 Oracle Managed Filesの使用例

使用例では、Oracle Managed Filesの使用方法を示します。

17.5.1 使用例1: 多重REDOログを含むデータベースの作成および管理

多重化されたREDOログを含むデータベースを作成および管理する例を示します。

この使用例では、DBAが、データファイルとREDOログ・ファイルが異なるディレクトリに存在するデータベースを作成します。REDOログ・ファイルと制御ファイルは多重化されています。データベースはUNDO表領域を使用し、デフォルト一時表領域を持っています。このデータベースの作成とメンテナンスに関するタスクは、次のとおりです。

  1. 初期化パラメータの設定

    DBAは、データベースを作成する前に、初期化パラメータ・ファイルに3つの汎用的なファイル作成デフォルトを設定します。自動UNDO管理モード(デフォルト)も使用可能にします。

    DB_CREATE_FILE_DEST = '/u01/oradata'
    DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata'
    DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata'
    UNDO_MANAGEMENT = AUTO
    

    DB_CREATE_FILE_DESTパラメータは、データファイルおよび一時ファイルのデフォルトのファイル・システム・ディレクトリを設定します。

    DB_CREATE_ONLINE_LOG_DEST_1およびDB_CREATE_ONLINE_LOG_DEST_2パラメータは、REDOログ・ファイルと制御ファイルを作成するためのデフォルトのファイル・システム・ディレクトリを設定します。REDOログ・ファイルと制御ファイルは、2つのディレクトリの間で多重化されます。

  2. データベースの作成

    初期化パラメータの設定が完了すると、次の文でデータベースを作成できます。

    SQL> CREATE DATABASE sample
    2>   DEFAULT TEMPORARY TABLESPACE dflttmp;
    

    DATAFILE句が指定されておらず、DB_CREATE_FILE_DEST初期化パラメータが設定されているため、SYSTEM表領域のデータファイルはデフォルトのファイル・システム(この使用例では/u01/oradata)に作成されます。ファイル名は、データベースによって一意に生成されます。データファイルは初期サイズが100MBで、無制限に自動拡張可能です。このファイルはOracle Managed Filesです。SYSAUX表領域についても同様のデータファイルが作成されます。

    LOGFILE句が指定されていないため、2つのREDOログ・グループが作成されます。各グループにはそれぞれ2つのメンバーがあり、一方のメンバーはDB_CREATE_ONLINE_LOG_DEST_1、もう一方のメンバーはDB_CREATE_ONLINE_LOG_DEST_2に作成されます。ファイル名は、データベースによって一意に生成されます。ログ・ファイルのサイズは100MBです。ログ・ファイルのメンバーはOracle Managed Filesです。

    同様に、CONTROL_FILES初期化パラメータが存在せず、2つのDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータが指定されているため、2つの制御ファイルが作成されます。DB_CREATE_ONLINE_LOG_DEST_1の場所に存在する制御ファイルが主制御ファイルで、DB_CREATE_ONLINE_LOG_DEST_2の場所に存在する制御ファイルは多重化コピーです。ファイル名は、データベースによって一意に生成されます。これらはOracle Managed Filesです。サーバー・パラメータ・ファイルがある場合、CONTROL_FILES初期化パラメータが生成されます。

    自動UNDO管理モードが指定されていますが、UNDO表領域が指定されておらず、DB_CREATE_FILE_DEST初期化パラメータが設定されているため、UNDOTBSという名前のデフォルトUNDO表領域がDB_CREATE_FILE_DESTによって指定されたディレクトリに作成されます。データファイルは20MBで、自動拡張可能です。これはOracle Managed Filesです。

    最後に、dflttmpという名前のデフォルト一時表領域が指定されています。DB_CREATE_FILE_DESTがパラメータ・ファイルに含まれているため、dflttmpの一時ファイルがそのパラメータによって指定されたディレクトリに作成されます。一時ファイルは100MBで、無制限に自動拡張可能です。これはOracle Managed Filesです。

    作成されたファイルを、生成ファイル名によるファイル・ツリーで表現すると次のようになります。

    /u01
         /oradata
              /SAMPLE
                   /datafile
                        /o1_mf_system_cmr7t30p_.dbf
                        /o1_mf_sysaux_cmr7t88p_.dbf
                        /o1_mf_sys_undo_2ixfh90q_.dbf
                        /o1_mf_dflttmp_157se6ff_.tmp
    /u02
         /oradata
              /SAMPLE
                   /onlinelog
                        /o1_mf_1_0orrm31z_.log
                        /o1_mf_2_2xyz16am_.log
                   /controlfile
                        /o1_mf_cmr7t30p_.ctl
    /u03
         /oradata
              /SAMPLE
                   /onlinelog
                        /o1_mf_1_ixfvm8w9_.log
                        /o1_mf_2_q89tmp28_.log
                   /controlfile
                        /o1_mf_x1sr8t36_.ctl
    

    内部的に生成されたファイル名は、通常のビューを選択して表示できます。例:

    SQL> SELECT NAME FROM V$DATAFILE;
    
    NAME
    ----------------------------------------------------
    /u01/oradata/SAMPLE/datafile/o1_mf_system_cmr7t30p_.dbf
    /u01/oradata/SAMPLE/datafile/o1_mf_sysaux_cmr7t88p_.dbf
    /u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_2ixfh90q_.dbf
    
    3 rows selected
    
  3. 制御ファイルの管理

    データベースの作成時に制御ファイルが作成され、パラメータ・ファイルにCONTROL_FILES初期化パラメータが追加されました。必要に応じて、DBAはCREATE CONTROLFILE文を使用して、データベース用の制御ファイルを再作成したり、新しい制御ファイルを作成できます。

    DATAFILE句およびLOGFILE句には、正しいOracle Managed Filesのファイル名を指定する必要があります。ALTER DATABASE BACKUP CONTROLFILE TO TRACE文は、正しいファイル名を含むスクリプトを生成します。また、ファイル名は、V$DATAFILEV$TEMPFILEおよびV$LOGFILEビューを選択して確認することもできます。次の例では、サンプル・データベースの制御ファイルを再作成しています。

    CREATE CONTROLFILE REUSE
      DATABASE sample
      LOGFILE 
        GROUP 1('/u02/oradata/SAMPLE/onlinelog/o1_mf_1_0orrm31z_.log', 
                '/u03/oradata/SAMPLE/onlinelog/o1_mf_1_ixfvm8w9_.log'), 
        GROUP 2('/u02/oradata/SAMPLE/onlinelog/o1_mf_2_2xyz16am_.log',
                '/u03/oradata/SAMPLE/onlinelog/o1_mf_2_q89tmp28_.log')
      NORESETLOGS
      DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_cmr7t30p_.dbf',
               '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_cmr7t88p_.dbf',
               '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_2ixfh90q_.dbf',
               '/u01/oradata/SAMPLE/datafile/o1_mf_dflttmp_157se6ff_.tmp'
      MAXLOGFILES 5
      MAXLOGHISTORY 100
      MAXDATAFILES 10
      MAXINSTANCES 2
      ARCHIVELOG;
    

    この文で作成される制御ファイルは、データベースを作成したときに生成されたCONTROL_FILES初期化パラメータの指定どおりに配置されます。REUSE句が指定されているので、既存のファイルがすべて上書きされます。

  4. REDOログの管理

    REDOログ・ファイルの新しいグループを作成するには、DBAがALTER DATABASE ADD LOGFILE文を使用します。次の文は、DB_CREATE_ONLINE_LOG_DEST_1DB_CREATE_ONLINE_LOG_DEST_2にメンバーを持つログ・ファイルを追加します。これらのファイルは、Oracle Managed Filesです。

    SQL> ALTER DATABASE ADD LOGFILE;
    

    ログ・ファイルのメンバーは、完全なファイル名を指定することにより、引き続き追加および削除できます。

    GROUP句を使用して、ログ・グループを削除できます。次の例では、Oracle Managed Filesのログ・ファイルの各メンバーに対応するオペレーティング・システム・ファイルが自動的に削除されます。

    SQL> ALTER DATABASE DROP LOGFILE GROUP 3;
    
  5. 表領域の管理

    sampleデータベースで今後表領域を作成する際、すべてのデータファイルがデフォルトで配置される記憶域は、DB_CREATE_FILE_DEST初期化パラメータで指定された場所(この使用例では/u01/oradata)です。ファイル名を指定せずにデータファイルを作成すると、そのファイルは初期化パラメータDB_CREATE_FILE_DESTで指定されたファイル・システムに配置されます。例:

    SQL> CREATE TABLESPACE tbs_1;
    

    この文は、/u01/oradataを記憶域とする表領域を作成します。作成されるデータファイルは初期サイズが100MBで、無制限に自動拡張可能です。このデータファイルはOracle Managed Filesです。

    表領域を削除すると、その表領域に対応するOracle Managed Filesも自動的に削除されます。次の文は、表領域とその格納に使用されているすべてのOracle Managed Filesを削除します。

    SQL> DROP TABLESPACE tbs_1;
    

    最初のデータファイルが一杯になっても、新しいデータファイルは自動的に作成されません。別のOracle Managed Filesのデータファイルを追加することによって、表領域を拡張できます。次の文は、DB_CREATE_FILE_DESTで指定された場所に別のデータファイルを追加します。

    SQL> ALTER TABLESPACE tbs_1 ADD DATAFILE;
    

    デフォルトのファイル・システムを変更するには、初期化パラメータを変更します。これによって既存のデータファイルが変更されることはありません。その後の作成にのみ影響します。これは次の文を使用して動的に実行できます。

    SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u04/oradata';
    
  6. REDO情報のアーカイブ

    REDOログ・ファイルのアーカイブは、Oracle Managed FilesとOracle Managed Files以外のファイルの間で違いはありません。アーカイブREDOログ・ファイルのファイル・システム上のアーカイブ先は、LOG_ARCHIVE_DEST_n初期化パラメータで指定できます。ファイル名は、LOG_ARCHIVE_FORMATパラメータまたはそのデフォルトに基づいて生成されます。アーカイブ・ログはOracle Managed Filesではありません。

  7. バックアップ、リストアおよびリカバリ

    Oracle Managed Filesは標準オペレーティング・システム・ファイルと互換性があるため、オペレーティング・システム・ユーティリティを使用してバックアップまたはリストアを実行できます。データベースのバックアップ、リストアおよびリカバリを実行する既存の方法はすべて、Oracle Managed Filesに対しても機能します。

17.5.2 使用例2: データベース領域と高速リカバリ領域を含むデータベースの作成と管理

データベースと高速リカバリ領域の両方を含むデータベースを作成および管理する例を示します。

この使用例では、DBAが、制御ファイルおよびREDOログ・ファイルを多重化するデータベースを作成します。アーカイブ・ログとRMANによるバックアップは、高速リカバリ領域に作成されます。このデータベースの作成とメンテナンスに関するタスクは、次のとおりです。

  1. 初期化パラメータの設定

    DBAは、次の汎用的なファイル作成デフォルトを設定します。

    DB_CREATE_FILE_DEST = '/u01/oradata'
    DB_RECOVERY_FILE_DEST_SIZE = 10G
    DB_RECOVERY_FILE_DEST = '/u02/oradata'
    LOG_ARCHIVE_DEST_1 = 'LOCATION = USE_DB_RECOVERY_FILE_DEST'
    

    DB_CREATE_FILE_DESTパラメータは、データファイル、一時ファイル、制御ファイルおよびREDOログのデフォルトのファイル・システム・ディレクトリを設定します。

    DB_RECOVERY_FILE_DESTパラメータは、制御ファイル、REDOログおよびRMANによるバックアップのデフォルトのファイル・システム・ディレクトリを設定します。

    LOG_ARCHIVE_DEST_1構成の'LOCATION=USE_DB_RECOVERY_FILE_DEST'は、アーカイブ・ログをDB_RECOVERY_FILE_DESTの場所にリダイレクトします。

    DB_CREATE_FILE_DESTパラメータとDB_RECOVERY_FILE_DESTパラメータは、ログ・ファイルおよび制御ファイル作成用のデフォルトのディレクトリを設定します。REDOログ・ファイルと制御ファイルは、2つのディレクトリの間で多重化されます。

  2. データベースの作成
  3. 制御ファイルの管理
  4. REDOログの管理
  5. 表領域の管理

    タスク2、3、4と5は使用例1と同じです。ただし、制御ファイルとREDOログは、DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTの場所の間で多重化されます。

  6. REDOログ情報のアーカイブ

    オンライン・ログのアーカイブは、Oracle Managed FilesとOracle Managed Files以外のファイルの間には違いはありません。DB_RECOVERY_FILE_DESTで作成されるアーカイブ・ログは、Oracle Managed Filesです。

  7. バックアップ、リストアおよびリカバリ

    Oracle Managed Filesは標準オペレーティング・システム・ファイルと互換性があるため、オペレーティング・システム・ユーティリティを使用してバックアップまたはリストアを実行できます。データベースのバックアップ、リストアおよびリカバリを実行する既存の方法はすべて、Oracle Managed Filesに対しても機能します。フォーマット・オプションが指定されていない場合、RMANによるすべてのディスクのバックアップは、DB_RECOVERY_FILE_DESTの場所に作成されます。バックアップはOracle Managed Filesです。

17.5.3 使用例3: 既存のデータベースへのOracle Managed Filesの追加

既存データベースにOracle Managed Filesを追加する例を示します。

この例では、Oracle Managed Filesが含まれていない既存のデータベースに対して、DBAがOracle Managed Filesを含む新しい表領域を作成し、/u03/oradataディレクトリにその表領域を配置しようとしていると想定しています。

  1. 初期化パラメータの設定

    データファイルの自動作成を可能にするために、DB_CREATE_FILE_DEST初期化パラメータを、データファイルを作成するファイル・システム・ディレクトリに設定します。これは、次のように動的に実行できます。

    SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u03/oradata';
    
  2. 表領域の作成

    DB_CREATE_FILE_DESTの設定が完了すると、CREATE TABLESPACE文からDATAFILE句を省略できます。データファイルは、DB_CREATE_FILE_DESTで指定された場所にデフォルトで作成されます。例:

    SQL> CREATE TABLESPACE tbs_2;
    

    tbs_2表領域を削除すると、データファイルが自動的に削除されます。