ヘッダーをスキップ

Oracle Database 概要
11gリリース1(11.1)

E05765-03
目次
目次
索引
索引

戻る 次へ

3 表領域、データファイルおよび制御ファイル

この章では、Oracleデータベースの主要な論理データベース構造である表領域と、それぞれの表領域に対応する物理データファイルについて説明します。

この章の内容は、次のとおりです。

表領域、データファイルおよび制御ファイルの概要

Oracle Databaseでは、表領域にデータを論理的に格納し、対応する表領域に関連付けられたデータファイルにデータを物理的に格納します。図3-1に、この関係を示します。

図3-1    データファイルと表領域


画像の説明

データベース、表領域およびデータファイルは、それぞれ密接に関連し合っていますが、次のような重要な相違があります。

この項の内容は、次のとおりです。

Oracle Managed Files

Oracle Managed Filesにより、データベース管理者は、Oracleデータベースを構成するオペレーティング・システム・ファイルを直接管理する必要がなくなります。操作を指定するときには、ファイル名ではなくデータベース・オブジェクトを使用します。Oracle Databaseでは、標準ファイル・システム・インタフェースを内部で使用して、次のデータベース構造のファイルを必要に応じて作成および削除します。

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

関連項目

 

データベースへの多くの領域の割当て

表領域のサイズは、表領域を構成するデータファイルのサイズです。データベースのサイズは、データベースを構成する表領域の合計サイズです。

データベースのサイズを拡張するには、次の3つの方法があります。

既存の表領域にデータファイルを追加すると、その表領域に割り当てられているディスク領域の容量を増やすことになります。図3-2は、このようにして領域を拡大する方法を示しています。

図3-2    表領域にデータファイルを追加してデータベースを拡大


画像の説明

別の方法として、新しい表領域を作成し(少なくとも1つのデータファイルを作成)、データベースのサイズを大きくすることもできます。図3-3は、この方法を示しています。

図3-3    新しい表領域を追加してデータベースを拡大


画像の説明

3番目の方法として、データファイルのサイズを変更するか、必要領域の増加に応じて既存の表領域のデータファイルが動的に拡張するように指定できます。そのためには、既存のファイルを変更するか、動的拡張プロパティを持つデータファイルを追加します。図3-4は、この方法を示しています。

図3-4    データファイルを動的にサイズ変更してデータベースを拡大


画像の説明

関連項目

データベース内の領域を拡張する方法の詳細は、『Oracle Database管理者ガイド』を参照してください。 

表領域の概要

データベースは、表領域と呼ばれる1つ以上の論理記憶単位に分割されます。表領域はセグメントと呼ばれる論理記憶単位に分けられ、セグメントはさらにエクステントに分けられています。エクステントは連続するブロックのコレクションです。

この項で表領域に関して取り上げる項目は、次のとおりです。

大型ファイル表領域

Oracle Databaseでは、大型ファイル表領域を作成できます。これにより、Oracle Databaseでは、多数の小型ファイルではなく単一の大型ファイルで構成された表領域を格納できます。この表領域により、Oracle Databaseでは、64ビット・システムの機能を利用して超大規模ファイルを作成および管理できます。この結果、Oracle Databaseは800万TBまでサイズを拡張できるようになりました。

Oracle Managed Filesでは、大型ファイル表領域によりデータファイルがユーザーに対して完全に透過的になります。つまり、基礎となるデータファイルではなく表領域に対する操作を実行できます。大型ファイル表領域では、表領域はディスク領域の管理、バックアップおよびリカバリなどの主要単位となります。また、大型ファイル表領域により、新規データファイルを追加したり複数ファイルを取り扱う必要がなくなり、Oracle Managed Filesと自動ストレージ管理によるデータファイル管理が簡素化されます。

システム・デフォルトでは、従来型のOracle Database表領域である小型ファイル表領域が作成されます。SYSTEMおよびSYSAUX表領域タイプは、常にシステム・デフォルトのタイプを使用して作成されます。

大型ファイル表領域がサポートされるのは、自動セグメント領域管理を使用するローカル管理表領域の場合のみです。ただし、これには2つの例外があり、ローカル管理のUNDO表領域と一時表領域は、セグメントが手動管理される場合にも大型ファイル表領域として使用できます。

Oracleデータベースには、大型ファイル表領域と小型ファイル表領域の両方を含めることができます。各種の表領域は、データファイルを明示的に参照しないSQL文の実行時には区別できません。

ユーザーが複数の表領域の一時領域を消費できるように、一時表領域のグループを作成できます。表領域グループは、データベースのデフォルト一時表領域としても指定できます。これは、ソート操作用の一時表領域が多数必要になる可能性がある大型ファイル表領域を使用する際に役立ちます。

この項の内容は、次のとおりです。

大型ファイル表領域の利点

大型ファイル表領域の考慮事項

SYSTEM表領域

Oracle Databaseには、データベースの作成時に自動的に作成されるSYSTEMという表領域が含まれています。SYSTEM表領域は、データベースのオープン中は常にオンラインになっています。

ローカル管理表領域の利点を活用するには、ローカル管理のSYSTEM表領域を作成する方法と、既存のディクショナリ管理のSYSTEM表領域をローカル管理形式に移行する方法があります。

ローカル管理のSYSTEM表領域を持つデータベースには、ディクショナリ管理表領域を作成できません。トランスポータブル機能を使用するとディクショナリ管理表領域をプラグインできますが、書込み可能にすることはできません。

この項の内容は、次のとおりです。

データ・ディクショナリ

SYSTEM表領域には、データベース全体のデータ・ディクショナリ表が必ず含まれます。

PL/SQLプログラム・ユニットの説明

ストアドPL/SQLプログラム・ユニット(プロシージャ、ファンクション、パッケージおよびトリガー)のために格納されるデータは、すべてSYSTEM表領域にあります。データベースにこれらのプログラム・ユニットの多くを含める場合、データベース管理者は必要なスペースをSYSTEM表領域に確保する必要があります。

関連項目

  • ローカル管理のSYSTEM表領域を作成する方法、またはローカル管理のSYSTEM表領域に移行する方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • SYSTEM表領域の永続的なオンライン条件の詳細は、「オンライン表領域とオフライン表領域」を参照してください。

  • PL/SQLプログラム・ユニットの領域要件の詳細は、第24章「SQL」および第22章「トリガー」を参照してください。

 

SYSAUX表領域

SYSAUX表領域は、SYSTEM表領域の補助表領域です。多数のデータベース・コンポーネントでは、デフォルトのデータ格納場所としてSYSAUX表領域が使用されます。そのため、データベースの作成時またはアップグレード時には、必ずSYSAUX表領域が作成されます。


注意

メディア障害などの原因でSYSAUX表領域が使用不可能になると、一部のデータベース機能が失敗する場合があります。 


SYSAUX表領域は、SYSTEM表領域に常駐しないデータベース・メタデータの集中格納場所となります。これにより、シード・データベースとユーザー定義データベースの両方で、デフォルトで作成される表領域の数が減少します。

Oracle Databaseでは、通常のデータベース操作中にはSYSAUX表領域の削除や名前変更は許可されません。SYSAUX用のトランスポータブル表領域はサポートされません。

関連項目

SYSAUX表領域を使用するデータベース・コンポーネントの詳細は、『Oracle Database管理者ガイド』を参照してください。 

UNDO表領域

UNDO表領域は、ロールバック情報の格納にのみ使用する特別な表領域です。UNDO表領域に、タイプの異なるセグメント(表や索引など)を作成することはできません。UNDO表領域は、データベースが自動UNDO管理モード(デフォルト)の場合にのみ使用されます。データベースに複数のUNDO表領域を含めることができますが、使用中となるのは常に1つのUNDO表領域のみです。UNDOデータは、データベースにより自動的に作成および維持されるUNDOセグメントを使用して、UNDO表領域内で管理されます。

トランザクション内で最初のDML操作が実行されると、そのトランザクションは、現在のUNDO表領域内のUNDOセグメント(トランザクション表)にバインド(割当て)されます。インスタンスに対し専用のUNDO表領域が割り当てられていない場合は、トランザクションがシステムUNDOセグメントにバインドされます。

各UNDO表領域には一連のデータファイルが含まれ、ローカルで管理されます。他の表領域と同様、UNDOブロックはエクステントの中でグループ化され、各エクステントの状態がビットマップで表示されます。任意の時点で、エクステントはトランザクション表に割り当てられ(て使用され)るか、または解放されます。

大型ファイルUNDO表領域を作成できます。

関連項目

 

UNDO表領域の作成

UNDO表領域は、Oracle Databaseの各新規インストールで自動的に作成されます。Oracle Databaseの旧リリースには、UNDO表領域が含まれておらず、かわりにロールバック・セグメントが使用されていました。これは、手動UNDO管理モードと呼ばれます。Oracle Database 11gにアップグレードすると、UNDO表領域を作成して自動UNDO管理モードを有効化することで自動UNDO管理に移行できます。詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

デフォルト一時表領域

SYSTEM表領域がローカル管理の場合は、データベースの作成時にデフォルトの一時表領域を1つ以上定義する必要があります。ローカル管理のSYSTEM表領域は、デフォルトの一時記憶域として使用できません。

SYSTEMがディクショナリ管理されており、データベースの作成時にデフォルトの一時表領域を定義しない場合は、デフォルトの一時記憶域に引き続きSYSTEMが使用されます。ただし、デフォルトの一時表領域が推奨され、今後のリリースでは必須となることを伝える警告をALERT.LOGで受け取ります。

デフォルトの一時表領域の指定方法

データベース作成の際は、CREATE DATABASE文に対するDEFAULT TEMPORARY TABLESPACE拡張機能を使用して、デフォルトの一時表領域を指定します。

大型ファイル一時表領域を作成できます。この種の表領域では、すべての一時表領域と同様に、データファイルではなく一時ファイルが使用されます。


注意

デフォルトの一時表領域を永続表領域化またはオフライン化することはできません。 


関連項目

  • デフォルトの一時表領域の定義と変更の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • 「大型ファイル表領域」

 

複数の表領域の使用

小規模なデータベースでは、SYSTEM表領域のみで十分な場合があります。ただし、ユーザー・データをデータ・ディクショナリ情報と切り離して格納するために、追加の表領域を少なくとも1つ作成することをお薦めします。これによって、各種のデータベース管理操作がより柔軟性に富んだものとなり、ディクショナリ・オブジェクトとスキーマ・オブジェクトに同一のデータファイルからアクセスすることに伴う競合を減らすこともできます。

複数の表領域を使用すると、次のタスクを実行できます。

データベース管理者は、次のことを実行できます。

表領域内の領域管理

表領域では、領域がエクステント単位で割り当てられます。表領域では、次の2つの方法で空き領域と使用済領域を追跡できます。

表領域の作成時に、この2つの領域管理方法からどちらかを選択できます。選択した管理方法は、後でDBMS_SPACE_ADMIN PL/SQLパッケージを使用して変更できます。

この項の内容は、次のとおりです。

ローカル管理表領域

自身のエクステントを管理する表領域では、各データファイルのビットマップが保持され、そのデータファイル内のブロックの解放または使用状態が追跡されます。ビットマップ内の各ビットは、1ブロックまたは1ブロック・グループに対応します。エクステントが割り当てられるか、再利用のために解放されると、Oracle Databaseでは、新しいブロックの状態を表すためにビットマップの値が変更されます。

ローカル管理表領域には、ディクショナリ管理表領域に比べて次のような長所があります。

ローカルに管理されるエクステントのサイズは、システムにより自動的に決定されます。また、ローカル管理表領域内では、すべてのエクステントを同じサイズにすることもでき、さらにオブジェクト記憶域オプションがオーバーライドされます。

ローカル管理の永続表領域または一時表領域をそれぞれ作成するには、CREATE TABLESPACEまたはCREATE TEMPORARY TABLESPACE文のLOCAL句を指定します。

ローカル管理表領域内のセグメント領域管理

CREATE TABLESPACE文を使用したローカル管理表領域の作成では、SEGMENT SPACE MANAGEMENT句により、セグメント内の空き領域および使用領域の管理方法を指定します。次のいずれかを選択します。

ディクショナリ管理表領域

Oracle9iでデータベースを作成した場合は、ディクショナリ管理表領域を使用できます。表領域で、エクステントの管理にデータ・ディクショナリを使用する場合、Oracle Databaseでは、エクステントが割り当てられたり再利用のために解放されるたびにデータ・ディクショナリ内の適切な表が更新されます。また、Oracle Databaseでは、ディクショナリ表の更新ごとに、ロールバック情報が格納されます。ディクショナリ表とロールバック・セグメントはデータベースの一部であるため、これらが占める領域は、他のすべてのデータと同じ領域管理操作の対象となります。


注意

表領域の作成時にエクステント管理を指定しない場合は、ローカル管理がデフォルトとなります。 


マルチ・ブロック・サイズ

Oracle Databaseは、マルチ・ブロック・サイズをデータベースでサポートします。SYSTEM表領域には、標準ブロック・サイズが使用されます。標準ブロック・サイズは、データベースが作成されたときに設定され、任意の有効サイズに設定可能です。初期化パラメータDB_BLOCK_SIZEを設定して、標準ブロック・サイズを指定します。指定できる値は2K〜32Kです。

初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイルで、これらのブロック・サイズごとにバッファ・キャッシュ内のサブキャッシュを構成できます。インスタンスの実行中にサブキャッシュも構成できます。任意のブロック・サイズの表領域を作成できます。標準ブロック・サイズは、SYSTEM表領域および他の多くの表領域で使用されます。


注意

パーティション・オブジェクトのパーティションはすべて、単一ブロック・サイズの表領域に常駐する必要があります。 


マルチ・ブロック・サイズが主に役立つのは、表領域をOLTPデータベースから企業のデータ・ウェアハウスへ移動する場合です。これにより、ブロック・サイズが異なるデータベース間での移動が容易になります。

関連項目

 

オンライン表領域とオフライン表領域

データベース管理者は、Oracleデータベースがオープンされているときはいつでも、その表領域(SYSTEM表領域を除く)をオンライン(アクセス可能)またはオフライン(アクセス不能)にできます。Oracle Databaseが常にデータ・ディクショナリにアクセスできるようにするため、SYSTEM表領域は、データベースのオープン中は常にオンラインです。

表領域は通常はオンラインになっており、データベース・ユーザーはその表領域内のデータを使用できます。一方、データベース管理者は、メンテナンスまたはバックアップおよびリカバリの目的に表領域をオフラインで使用できます。

表領域のオフライン化

Oracle Databaseでは、表領域がオフライン化されると、その表領域に含まれるオブジェクトをSQL文で参照できなくなります。アクティブなトランザクションで、この表領域のデータを参照する文がすでに完了している場合、トランザクション・レベルでの影響はありません。Oracle Databaseでは、すでに完了しているこれらの文に対応するロールバック・データが、SYSTEM表領域の遅延ロールバック・セグメントに保存されます。表領域が再びオンライン化されたとき、Oracle Databaseでは、必要に応じて、ロールバック・データが表領域に適用されます。

表領域がオフラインになったり、オンラインに戻ったときには、SYSTEM表領域内のデータ・ディクショナリにそのことが記録されます。表領域がオフラインのときにデータベースを停止すると、後からそのデータベースをマウントして再オープンしたときにも、その表領域はオフラインのままです。

表領域をオンラインにできるのは、その表領域を作成したデータベース内のみに限られます。これは、必要なデータ・ディクショナリ情報がそのデータベースのSYSTEM表領域内に維持されているためです。Oracle Database以外のユーティリティでは、オフライン表領域の読取りまたは編集はできません。したがって、オフライン表領域を他のデータベースへ転送することはできません。

Oracle Databaseでは、特定のエラーが発生すると、表領域がオンラインからオフラインに自動的に切り替わります。たとえば、データベース・ライター・プロセスDBWnが、表領域のデータファイルへの書込みに数回失敗すると、Oracle Databaseでは、表領域がオンラインからオフラインに自動的に切り替わります。オフライン表領域にある表にアクセスしようとしたユーザーは、エラーを受け取ります。このようにディスクI/Oが失敗してしまう原因がメディア障害の場合は、問題を解決してから、表領域をリカバリする必要があります。

関連項目

  • オンライン表領域をデータベース間で転送する方法の詳細は、「データベース間での表領域の移動」を参照してください。

  • データ転送ツールの詳細は、『Oracle Databaseユーティリティ』を参照してください。

 

読取り専用表領域

読取り専用表領域の主な目的は、データベースの静的な部分を大量にバックアップしたりリカバリする必要をなくすことです。読取り専用表領域のファイルはOracle Databaseによって更新されることがないため、CD-ROMやWORMドライブのような読取り専用メディアに常駐させることができます。


注意

表領域をオンライン化できるのは、表領域が作成されたデータベース内のみです。そのため、読取り専用表領域はアーカイブ要件を満たしていない場合があります。  


読取り専用表領域は変更できません。読取り専用表領域を更新するには、最初に表領域を読取り/書込み可能にします。表領域の更新後に、その表領域を読取り専用に再設定します。

読取り専用表領域は変更できないため、読取り/書込みが可能に設定されていないかぎり、バックアップを繰り返す必要はありません。また、データベースのリカバリが必要な場合、読取り専用表領域は修正されていないため、リカバリする必要がありません。

関連項目

  • 表領域を読取り専用または読取り/書込みモードに変更する方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

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

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

 

一時表領域

ソート操作用の領域は、ソート専用に指定した1つ以上の一時表領域を使用すると、さらに効率的に管理できます。それにより、ソート領域の割当ておよび割当て解除に伴う領域管理操作のシリアライズを効率的に解消できます。1つのSQL操作で、ソート操作用の一時表領域を複数使用できます。たとえば、非常に大きな表の索引を作成し、索引作成中のソート操作を複数の表領域に分散できます。

結合、索引作成、順序付け、集計の計算(GROUP BY)およびオプティマイザ統計の収集など、ソートを使用するすべての操作には、一時表領域の機能が役立ちます。Oracle Real Application Clustersを使用することで、パフォーマンスが大幅に向上します。

この項の内容は、次のとおりです。

ソート・セグメント

1つ以上の一時表領域は、ソート・セグメントにのみ使用できます。ユーザーが一時セグメント用に指定する表領域とは異なり、一時表領域としてはユーザーが使用可能な任意の表領域を使用できます。永続スキーマ・オブジェクトを一時表領域に格納することはできません。

ソート・セグメントは、1つのセグメントが複数のソート操作によって共有されている場合に使用されます。特定の表領域内でソート操作を実行する各インスタンス内に、ソート・セグメントが1つずつ存在します。

メモリー容量を超える大規模なソート操作が複数ある場合には、一時表領域を使用するとパフォーマンスが改善されます。最初のソート操作の実行時に、所定の一時表領域のソート・セグメントが作成されます。このソート・セグメントは、セグメント・サイズが、そのインスタンスで実行中のアクティブなソート操作すべてに必要な記憶容量の合計以上になるまで、エクステントが割り当てられて拡大します。

関連項目

セグメントの詳細は、第2章「データ・ブロック、エクステントおよびセグメント」を参照してください。 

一時表領域の作成

一時表領域の作成には、CREATE TABLESPACEまたはCREATE TEMPORARY TABLESPACE文を使用します。

関連項目

  • TEMPFILESの詳細は、「一時データファイル」を参照してください。

  • ローカル管理表領域とディクショナリ管理表領域の詳細は、「表領域内の領域管理」を参照してください。

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

  • ソートおよびハッシュ結合用に一時表領域を設定する方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

 

データベース間での表領域の移動

トランスポータブル表領域により、異なるプラットフォームにまたがる場合も、Oracleデータベース間でそのサブセットを移動できます。表領域のクローンを作成して別のデータベースにプラグインする(データベース間で表領域をコピーする)方法と、あるOracleデータベースから表領域をアンプラグして他のOracleデータベースにプラグインする(データベース間で表領域を移動する)方法があります。

表領域を移動する場合は、データファイルをコピーして表領域のメタデータを統合するだけでよいため、この方法によるデータ移動は同じデータをエクスポート/インポートまたはアンロード/ロードするよりも何倍も高速です。表領域を移動する場合は、表データのインポート後またはロード後に索引を再作成しなくてもよいように、索引データも移動できます。

表領域はプラットフォーム間で転送できます。(すべてではありませんが、多くのプラットフォームでプラットフォーム間の表領域転送がサポートされています。)この機能を使用して、次のことが可能です。

この項の内容は、次のとおりです。

表領域リポジトリ

表領域リポジトリとは、表領域セットの集合です。表領域リポジトリはファイル・グループ・リポジトリ上に作成されますが、表領域リポジトリには、データベース間の表領域の移動またはコピーに必要なファイルのみが含まれます。表領域リポジトリには様々な表領域セットを格納でき、特定の表領域セットの異なるバージョンも格納できます。表領域リポジトリ内の1つのバージョンの表領域セットは、次のファイルで構成されます。

表領域の別のデータベースへの移動またはコピー方法

表領域の集合を移動またはコピーするには、その表領域を読取り専用にし、その中のデータファイルをコピーし、エクスポート/インポートを使用してデータ・ディクショナリに格納されているデータベース情報(メタデータ)を移動する必要があります。データファイルとメタデータのエクスポート・ファイルを、必ずターゲット・データベースにコピーします。これらのファイルを移動するには、オペレーティング・システムのコピー機能、FTPまたはCD上でのパブリッシングなど、フラット・ファイルのコピー機能を使用できます。

データファイルをコピーしてメタデータをインポートした後は、必要に応じて表領域を読取り/書込みモードにすることができます。

COMPATIBLE初期化パラメータが10以上に設定されたOracle Databaseでは、最初に表領域のデータファイルをオープンするときに、各ファイルが属するプラットフォームが識別されます。これらのファイルではファイル・ヘッダー・ブロックのディスク・フォーマットが同一で、このブロックがファイルの識別と検証に使用されます。読取り専用ファイルとオフライン・ファイルは、読取り/書込みモードにするかオンライン化されると互換性レベルが上がります。このため、Oracle Database 10gより前の読取り専用の表領域は、プラットフォーム間のトランスポータブル機能を使用する前に、少なくとも1回は読取り/書込みにする必要があります。


注意

ローカル管理のSYSTEM表領域を持つデータベースには、ディクショナリ表領域を作成できません。トランスポータブル機能を使用するとディクショナリ管理表領域をプラグインできますが、書込み可能にすることはできません。 


関連項目

  • プラットフォーム間の表領域の転送も含めて、表領域を別のデータベースに移動またはコピーする方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • インポート/エクスポートの詳細は、『Oracle Databaseユーティリティ』を参照してください。

  • DBMS_FILE_TRANSFERパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

  • ファイルをコピーまたは転送する方法の詳細は、『Oracle Streams概要および管理』を参照してください。

 

データファイルの概要

Oracleデータベース内の表領域は、1つ以上の物理的なデータファイルから構成されます。1つのデータファイルは、1つの表領域および1つのデータベースのみに対応付けることができます。

Oracle Databaseでは、表領域のデータファイルを作成する際に、指定されたディスク領域に加えてファイル・ヘッダーのために必要なオーバーヘッドの領域が割り当てられます。データファイルが作成されると、Oracle Databaseを実行するオペレーティング・システムで、ファイルから古い情報や認可を消去した後、Oracle Databaseに割り当てます。ファイルが大きい場合には、この処理にかなりの時間がかかることがあります。どのデータベースでも最初の表領域は常にSYSTEM表領域です。このため、Oracle Databaseでは、データベースの作成時に、SYSTEM表領域にデータベースの最初のデータファイルが自動的に割り当てられます。

この項の内容は、次のとおりです。

データファイルの内容

データファイルが初めて作成されたときに、割り当てられたディスク領域がフォーマットされますが、ユーザー・データは含まれません。Oracle Databaseでは、対応付けられた表領域の将来のセグメントのデータを保持する領域が確保されます。これはOracle Database専用の領域です。Oracle Databaseでは、表領域内のデータが増加すると、対応付けられたデータファイル内の空き領域を使用してセグメントにエクステントを割り当てます。

表領域内のスキーマ・オブジェクトに対応付けられたデータは、物理的には、表領域を構成する1つ以上のデータファイルに格納されます。スキーマ・オブジェクトは、特定のデータファイルには対応していないことに注意してください。データファイルは、特定の表領域内の任意のスキーマ・オブジェクトのデータ用のリポジトリです。Oracle Databaseでは、スキーマ・オブジェクトに対応付けられたデータの領域は、表領域の1つ以上のデータファイル内に割り当てられます。このため、1つのスキーマ・オブジェクトが1つ以上のデータファイルにまたがる場合があります。表のストライプ化(データが複数のディスク上に分散されている状態)を使用しないかぎり、データベース管理者とエンド・ユーザーは、どのデータファイルにスキーマ・オブジェクトが格納されるかを制御できません。

関連項目

領域使用の詳細は、第2章「データ・ブロック、エクステントおよびセグメント」を参照してください。 

データファイルのサイズ

データファイルを作成した後でそのデータファイルのサイズを変更することも、表領域内のスキーマ・オブジェクトのサイズが拡大するにつれてデータファイルのサイズが動的に拡大するように指定することもできます。この機能によって、各表領域に含まれるデータファイルの数を少なくして、データファイルの管理を単純化できます。


注意

拡張するには、オペレーティング・システムに十分な領域が必要です。 


関連項目

データファイルのサイズ変更の詳細は、『Oracle Database管理者ガイド』を参照してください。 

オフライン・データファイル

SYSTEM以外の表領域は、いつでもオフライン化またはオンライン化できます。表領域をオフライン化またはオンライン化すると、その表領域を構成するすべてのデータファイルは1単位としてオフライン化またはオンライン化されます。

個々のデータファイルをオフライン化することもできます。ただし、通常、この操作を行うのは、一部のデータベース・リカバリ手順を実行する場合のみです。

一時データファイル

ローカル管理の一時表領域には、次の点を除き、通常のデータファイルと同様の一時データファイル(一時ファイル)があります。

制御ファイルの概要

データベースの制御ファイルは、データベースの正常な起動と操作に必要な小さいバイナリ・ファイルです。データベースの使用中に、制御ファイルはOracle Databaseによって絶えず更新されるため、データベースがオープンされている間は書込み可能になっている必要があります。なんらかの理由で制御ファイルにアクセスできない場合、データベースは正常に機能できなくなります。

それぞれの制御ファイルは、1つのOracleデータベースにのみ対応付けられます。

この項の内容は、次のとおりです。

制御ファイルの内容

制御ファイルには、起動時と通常の操作時に必要な、インスタンスからアクセスする関連データベースの情報が格納されています。制御ファイルの情報を変更できるのは、Oracle Databaseのみです。データベース管理者やユーザーは、制御ファイルを編集できません。

制御ファイルには、次のような情報が格納されています。

データベース名とタイムスタンプは、データベース作成時に作成されます。データベース名には、DB_NAME初期化パラメータに指定した名前、またはCREATE DATABASE文で使用した名前が使用されます。

データベースのデータファイルやREDOログ・ファイルが追加、改名または削除されるたびに、制御ファイルが更新され、この物理構造の変化が反映されます。これらの変更は、次の目的のために記録されます。

したがって、データベースの物理構造を変更した後は(ALTER DATABASE文を使用)、ただちに制御ファイルのバックアップを作成してください。

制御ファイルには、チェックポイントに関する情報も記録されます。チェックポイント・プロセス(CKPT)は、REDOログ内のチェックポイント位置に関する情報を、制御ファイルに3秒ごとに記録します。Oracle Databaseでは、データベースをリカバリする際にこの情報を使用して、REDOログ・グループの特定のポイントより前に記録されているREDOエントリはデータベースのリカバリには不要である(すでにデータファイルに書き込まれている)ことを指定します。

関連項目

データベースの制御ファイルのバックアップを作成する方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 

多重制御ファイル

REDOログ・ファイルと同様に、Oracle Databaseでは、同じデータベースに対する同一の制御ファイルを同時に複数オープンし、書き込むことができます。1つのデータベースについての複数の制御ファイルを異なるディスクに格納することによって、単一地点の障害から制御ファイルを保護できます。制御ファイルが格納されているディスクがクラッシュした場合、Oracle Databaseが破損した制御ファイルへのアクセスを試みたときに現行インスタンスが失敗します。ただし、現行の制御ファイルのコピーを他のディスクに保存してあれば、データベースをリカバリしなくてもインスタンスを再起動できます。

操作時にデータベースのすべての制御ファイルが永続的に消失した場合は、インスタンスが異常終了し、メディア・リカバリが必要になります。現行の制御ファイルを使用できず、制御ファイルの古いバックアップを使用する場合、メディア・リカバリは容易ではありません。次の原則を遵守することをお薦めします。


戻る 次へ
Oracle
Copyright © 1993, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引