ヘッダーをスキップ
Oracle® Database 2日でデータベース管理者
11gリリース2(11.2)
B56320-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 データベース記憶域構造の管理

この章では、Oracle Enterprise Manager Database Control(Database Control)を使用してデータベースの記憶域構造を表示および管理する方法について説明します。この章は次の項で構成されています。

データベース記憶域構造について

Oracle Databaseは物理構造および論理構造で構成されます。データをディスクに保存する物理ファイルなどの物理構造は、オペレーティング・システムから表示して操作できます。

論理構造はOracle Databaseによって作成され、認識されますが、オペレーティング・システムとは関係がありません。データベースにおける主要な論理構造(表領域)には、物理ファイルがあります。アプリケーション開発者またはユーザーは、論理構造を意識することはありますが、物理構造には注意を払いません。データベース管理者(DBA)は、データベースの物理構造と論理構造の関係を理解する必要があります。

図6-1は、論理構造と物理構造の関係を示しています。また、この図は、オプションで高速リカバリ領域に保持されるリカバリ関連の構造も示しています。詳細は、「高速リカバリ領域」を参照してください。

図6-1 Oracle Database記憶域構造

図6-1の説明が続きます。
「図6-1 Oracle Database記憶域構造」の説明

Oracle Databaseでは、構造管理の大部分を自動化できます。Oracle Enterprise Manager Database Control(Database Control)によってWebベースのGraphical User Interface(GUI)が提供され、より簡単にデータベースを管理および監視できます。

データベース記憶域構造を表示するには、「サーバー」サブページの「記憶域」セクションを参照し、任意のリンクをクリックして、記憶域ページにアクセスします。

storageheadr2.gifの説明が続きます。
storageheadr2.gifの説明

この項では、様々なデータベース記憶域構造に関するバックグラウンド情報を提供します。この付録には、次の項があります。


関連項目:


制御ファイルの概要

制御ファイルではデータベースの物理コンポーネントが追跡されます。これはデータベースを使用してデータベースが使用したすべての他のファイルを検索するルート・ファイルです。制御ファイルは重要であるため、制御ファイルを多重化すること、つまり、制御ファイルの同一コピーを複数個作成することをお薦めします。Oracle Database Configuration Assistant (DBCA)で作成されたデータベースの場合、制御ファイルの3つのコピーが自動的に作成され、互いに同期化されます。

任意の制御ファイルに問題が発生した場合、データベースは使用できなくなります。ただし、制御ファイルのコピーがあれば、データベースを停止して、問題が発生した制御ファイルをコピーから再作成し、データベースを再起動できます。他のオプションとして、CONTROL_FILES初期化パラメータから問題が発生した制御ファイルを削除し、残っている制御ファイルを使用してデータベースを再起動する方法があります。


関連項目:


オンラインREDOログ・ファイルについて

すべてのOracle Databaseには2つ以上のオンラインREDOログ・ファイルのセットがあります。オンラインREDOログ・ファイルのセットは、総称してデータベースのREDOログと呼ばれます。REDOログは、REDOレコードとも呼ばれるREDOエントリで構成されています。

オンラインREDOログには、データの変更内容のコピーが格納されます。障害により、バックアップからデータファイルをリストアする必要がある場合、リストアされたデータファイルにはない最新のデータ変更はオンラインREDOログ・ファイルから取得できるため、作業が失われることはありません。オンラインREDOログ・ファイルは、ハードウェア障害、ソフトウェア障害またはメディア障害の発生後、データベースのリカバリに使用されます。オンラインREDOログ・ファイル自体を含む障害に対して保護を行うために、Oracle Databaseでは、2つ以上のオンラインREDOログ・ファイルの同一のコピーを異なるディスクに保持できるように、オンラインREDOログ・ファイルを多重化できます。

データベースのオンラインREDOログは、オンラインREDOログ・ファイルのグループで構成されます。1つのグループは、オンラインREDOログ・ファイルとその多重コピーで構成されます。個別のコピーはそれぞれグループのメンバーとみなされます。各グループは「グループ1」のように番号で定義されます。

図6-2は、3つのオンラインREDOログ・グループがあり、それぞれのグループに2つのメンバーが存在するデータベースの構成を示しています。可用性を最大限にするため、各グループのメンバーは個別のディスクに格納されます。たとえば、グループ1のメンバーはREDOログ・ファイルA_LOG1およびB_LOG1です。

図6-2 オンラインREDOログ・グループおよびそのメンバー

図6-2の説明が続きます。
「図6-2 オンラインREDOログ・グループおよびそのメンバー」の説明

データベース・ログ・ライター・プロセス(LGWR)は、そのグループのログ・ファイルが記憶域サイズの制限に達するまで、またはログ・スイッチ操作が要求されるまで、メモリー・バッファのREDOレコードをREDOログ・グループに書き込みます。次に、LGWRプロセスでは次のログ・グループに対して書込みを行います。最も古いグループが最新のREDOレコードによって上書きされるように、このアクションは循環方式で実行されます。


関連項目:


アーカイブREDOログ・ファイルについて

Oracle Databaseでは、オンラインREDOログのアーカイブを有効にすると、上書きされる前にオンラインREDOログ・ファイルが別の場所にコピーされます。このようにコピーされたファイルは、アーカイブREDOログ・ファイルと呼ばれます。複数の場所にアーカイブすることができます。

これらのアーカイブREDOログ・ファイルにより、保存してリカバリに使用できるREDOデータの量が増えます。アーカイブREDOログ・ファイルは、データベースのバックアップを、バックアップ時点から現時点までリカバリするために必要です。データベースに対するアーカイブは、有効にも無効にもできますが、有効にすることを強くお薦めします。また、高速リカバリ領域にアーカイブREDOログ・ファイルを書き込むようにデータベースを構成することをお薦めします。


関連項目:


ロールバック・セグメントについて

Oracle Databaseの以前のリリースでは、ロールバック・セグメントは、データベースのUNDO情報を追跡するために使用されるデータベース構造でした。優先されるUNDO情報の管理方法はUNDO表領域を利用したものです。詳細は、「UNDOデータの管理」を参照してください。


注意:

Oracle Databaseでは、SYSTEMロールバック・セグメントを使用して、システム・トランザクションを実行します。このロールバック・セグメントはデータベース作成時に自動的に作成され、インスタンス起動時に必ずオンラインになります。また、SYSTEM表領域に存在します。SYSTEMロールバック・セグメントの管理のために操作を実行する必要はありません。

データファイルについて

データファイルは、データベース内のデータを格納するオペレーティング・システム・ファイルです。データは、その他のプログラムでは読み込むことができないOracle固有の形式でこれらのファイルに書き込まれます。一時ファイルは、一時表領域にのみ関連付けられたデータファイルの特殊なクラスです。

データファイルは次のコンポーネントに分類できます。

  • セグメント

    セグメントにはデータベース・オブジェクトの特定のタイプが含まれます。たとえば、表が表セグメントに格納され、索引が索引セグメントに格納されます。データファイルは複数のセグメントを含むことができます。

  • エクステント

    エクステントはセグメント内のデータ・ブロックの連続したセットです。Oracle Databaseはセグメントの領域を1つのエクステント単位に割り当てます。セグメントの既存のエクステントが一杯である場合、データベースはそのセグメントに対して別のエクステントを割り当てます。

  • データ・ブロック

    データベース・ブロックとも呼ばれる、データ・ブロックは、データベース記憶域のI/Oの最小単位です。エクステントは複数の連続するデータ・ブロックから構成されます。データベースではデータベース作成時のデフォルトのブロック・サイズが使用されます。

    データベースが作成されたら、データベースを再作成しないかぎりデフォルトのブロック・サイズは変更できません。しかしデフォルトのブロック・サイズと異なるブロック・サイズの表領域を作成することは可能です。

セグメント、エクステントおよびデータ・ブロックはすべて論理構造です。ファイル内のデータ・ブロック数を判別できるのはOracle Databaseのみです。オペレーティング・システムは、ファイルとオペレーティング・システム・ブロックのみを認識し、Oracle Databaseファイル内のデータ・ブロック数を認識しません。各データ・ブロックは、1つ以上のオペレーティング・システム・ブロックにマッピングされます。


関連項目:

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

  • 「データファイルの情報の表示」

  • セグメント、エクステントおよびブロックの詳細は、『Oracle Database概要』を参照してください。


表領域について

データベースは、関連する論理構造(表、ビュー、その他のデータベース・オブジェクトなど)をグループ化した、表領域と呼ばれる論理記憶域の単位に分割されます。たとえば、すべてのアプリケーション・オブジェクトは単一の表領域にグループ化され、メンテナンス操作が簡素化されます。

表領域は、1つ以上の物理データファイルで構成されます。表領域に割り当てられたデータベース・オブジェクトは、その表領域の物理データファイルに格納されます。

Oracle Databaseを作成してある場合、SYSTEMSYSAUXなどの表領域はすでに存在します。

表領域は記憶域にデータの位置を物理的に決定するための方法です。表領域を構成するデータファイルを定義するときに、これらのファイルに対して記憶域の場所を指定します。たとえば、指定したホスト・ディレクトリ(特定のディスク・ボリュームのこと)または指定したOracle自動ストレージ管理ディスク・グループとして、特定の表領域のデータファイルの場所を指定します。スキーマ・オブジェクトはその表領域に割り当てられ、指定された記憶域の場所に位置を決定します。表領域はバックアップおよびリカバリのユニットの提供も行います。Oracle Databaseのバックアップおよびリカバリの特長は表領域のレベルでバックアップまたはリカバリを有効にすることです。

表6-1に、データベースに含まれている一部の表領域を示します。

表6-1 表領域および説明

表領域 説明

EXAMPLE

この表領域には、Oracle Databaseに含まれているサンプル・スキーマがあります。サンプル・スキーマにより、共通のプラットフォームが例として提供されます。オラクル社のドキュメントおよび入門資料には、サンプル・スキーマに基づいた例が含まれています。

SYSTEM

この表領域は、データベース作成時に自動的に作成されます。Oracle Databaseはこの表領域を使用してデータベースを管理します。表領域にはデータ・ディクショナリ(特定のデータベース対象の読取り専用の参照として使用される主な表およびビューをまとめたもの)があります。また表領域にはデータベースに関する管理情報を含む様々な表およびビューがあります。これらはすべてSYSスキーマに存在し、SYSユーザーまたは該当する権限を持つその他の管理ユーザーのみがアクセスできます。

SYSAUX

これはSYSTEM表領域への補助表領域です。

SYSAUX表領域には、一部のコンポーネントおよび製品のデータが含まれ、その結果SYSTEM表領域の負荷が軽減されます。Oracle Database 10gリリース1(10.1)以上を使用するすべてのデータベースに、SYSAUX表領域が必要です。

インストール中にSYSAUXをデフォルトの表領域として使用するコンポーネントには、自動ワークロード・リポジトリ、Oracle Streams、Oracle TextおよびDatabase Controlリポジトリがあります。詳細は、『Oracle Database管理者ガイド』を参照してください。

TEMP

この表領域には、SQL文の処理中に生成された一時データが格納されています。たとえば、この表領域は問合せの格納に使用されます。すべてのデータベースに一時表領域が存在し、ユーザーの一時表領域として割り当てられます。事前構成されたデータベースでは、TEMP表領域はデフォルトの一時表領域に指定されています。ユーザー・アカウントの作成時に一時表領域が指定されていない場合、Oracle Databaseによってこの表領域がユーザーに割り当てられます。

UNDOTBS1

これはデータベースがUNDO情報の保存に使用するUNDO表領域です。詳細は、「UNDOデータの管理」を参照してOracle DatabaseがUNDO表領域を使用する方法を理解してください。どのデータベースにもUNDO表領域が必要です。

USERS

この表領域は永続的なユーザー・オブジェクトおよびデータの格納に使用します。すべてのデータベースが、TEMP表領域のような、ユーザーに割り当てられる永続的なユーザー・データのための表領域を持つ必要があります。そうでない場合は、ユーザー・オブジェクトはSYSTEM表領域に作成されますが、これはあまりよい方法ではありません。事前構成されたデータベースでは、USERSはすべての新しいユーザーのデフォルト表領域として指定されます。


新規の表領域を作成して、ユーザーおよびアプリケーション・データ要件をサポートできます。表領域作成時に、次のパラメータを設定します。

ローカル管理表領域

表領域における領域管理では、使用可能な(空き)領域と使用済領域が追跡され、データの挿入時または削除時に効率よく領域が割り当てられます。ローカル管理表領域はデータ・ディクショナリではなく表領域の中に領域割当て情報を保存するため、パフォーマンスが向上します。Oracle Databaseはデフォルトでは、新規に作成された表領域が自動セグメント管理(さらにパフォーマンスを向上させる機能)によってローカルに管理されるように設定します。

表領域のタイプ

表領域には次の3つのタイプがあります。

  • 永続

    永続表領域を使用して、ユーザーおよびアプリケーション・データを格納します。Oracle Databaseでは、永続表領域を使用して、システム・データなどの永続データが格納されます。各ユーザーにデフォルトの永続表領域が割り当てられます。

  • UNDO

    自動UNDO管理モードで実行されているデータベースは、UNDO表領域にUNDOデータを透過的に作成し、管理します。Oracle Databaseでは、トランザクションのロールバック、読取り一貫性、データベース・リカバリ、およびOracle Flashback Queryなどの機能を提供する目的でUNDOデータが使用されます。データベース・インスタンスが持つことができるアクティブなUNDO表領域は1つのみです。

  • 一時

    一時表領域は、SQL文によるソート処理の実行時に作成されるような一時的なデータの保存に使用されます。Oracle Databaseは、データベースの作成時に一時表領域を確保します。一時表領域グループを作成する場合は、さらに一時表領域を作成します。一般的な状況では、追加の一時表領域を作成する必要はありません。極度に大きなデータベースがある場合に、追加の一時表領域を構成することをお薦めします。

    物理ファイルはデータファイルとは対照的に一時ファイルと呼ばれる一時表領域を構成します。

    TEMP表領域は通常、一時表領域を明示的に割り当てられていないユーザーに対するデフォルトの一時表領域として使用します。


関連項目:

  • 一時表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • UNDO表領域の詳細は、『Oracle Database概要』を参照してください。


表領域のステータス

表領域ステータスを次のように設定できます。

  • 読取り/書込み

    表領域が作成された後、ユーザーは読取りや書込みを行えます。これはデフォルトです。

  • 読取り専用

    表領域が読取り専用で作成された場合、ステータスが読取り/書込みに変更されないと表領域への書き込みはできません。読取り専用で表領域を作成することはまずありませんが、変更を避けたい場合、データ書込み後にステータスを変更する場合があります。

  • オフライン

    表領域のステータスがオフラインの場合、ユーザーは表領域にアクセスできません。たとえば、ある表領域に関連付けられているデータファイルでメンテナンスまたはリカバリを実行する前に、その表領域のステータスをオフラインに変更します。

表領域の自動拡張

表領域が制限サイズに達したとき、指定した量まで自動的に拡張されるように設定できます。自動拡張を有効にしていないと、表領域がクリティカルまたは警告のしきい値サイズに達したときにアラートが発生します。クリティカルまたは警告のしきい値パラメータには、デフォルト値があり、この値はいつでも変更できます。自動拡張された表領域が指定した制限サイズに近づいているときにもアラートが発生します。サイズのアラートに対応するには、表領域のサイズを手動で増やします。これを行うには、1つ以上の表領域データファイルのサイズを増やすか、または表領域に別のデータファイルを追加します。


注意:

表領域に対して自動拡張というのは一般的ですが、自動拡張はデータファイルのプロパティであって表領域のプロパティではありません。つまり、表領域を構成するデータファイルを作成するときに、これらのデータファイルを自動的に拡張するかどうかを指定します。自動拡張するデータファイルを持つ表領域を自動拡張表領域とみなします。自動拡張データファイルの最大サイズを指定できます。

暗号化表領域

暗号化表領域では、主にデータベース以外の手段による未承認のアクセスからデータを保護します。たとえば、あるOracle Databaseから別のOracle Databaseに移動するため、または格納用のオフサイト施設に移動するために暗号化された表領域をバックアップ・メディアに書き込むと、表領域は暗号化されたままになります。また、暗号化表領域では、データベースのセキュリティ機能を回避して、オペレーティング・システムのファイル・システムから直接データベース・ファイルにアクセスしようとするユーザーからデータを保護します。

永続表領域を暗号化して機密データを保護できます。表領域を暗号化すると、すべての表領域ブロックが暗号化されます。表、クラスタ、索引、LOB、表および索引パーティションなど、すべてのセグメント・タイプの暗号化がサポートされています。表領域の暗号化はアプリケーションからは完全に透過であるため、アプリケーションの変更は不要です。


関連項目:

  • 暗号化によるデータのセキュリティ保護の詳細は、『Oracle Database 2日でセキュリティ・ガイド』を参照してください。


その他の記憶域構造について

Oracle Databaseに存在する他の記憶域構造は初期化パラメータ・ファイル、パスワード・ファイルおよびバックアップ・ファイルを含みます。

初期化パラメータ・ファイル

起動時のOracleインスタンスによって初期化パラメータが使用され、データベースのランタイム・プロパティおよびリソースが決定されます。一部のパラメータは、データベース実行中に設定または変更できます。他の初期化パラメータは、変更を有効にするためにデータベースを再起動する必要があります。詳細は、「初期化パラメータの表示と変更」を参照してください。

パスワード・ファイル

データベースでは、パスワード・ファイルを使用して、SYSDBAまたはSYSOPER接続権限を持つ管理ユーザーを認証できます。SYSDBAまたはSYSOPERとしてデータベースにリモート接続するには、パスワード・ファイルが必要です。これらの権限によりDBAは、データベースを起動および停止し、その他の高水準の管理タスクを実行できます。このパスワード・ファイルはデータベース自身の外部にあるため、データベースが起動されていないときにDBA認証を有効化します。(DBAはデータベースを起動する前に認証する必要があります。)

Oracle Databaseのインストール・プロセスの一部としてDBCAを起動する場合、DBCAはSYSユーザーの1エントリにつき、1つのパスワード・ファイルを作成します。SYSDBAをユーザーに付与すると、そのユーザーが自動的にパスワード・ファイルに追加されます。


注意:

Oracle Databaseは、オペレーティング・システム認証を使用して、SYSDBAまたはSYSOPER権限でユーザーを認証することもできます。詳細は、「SQL*Plusの起動およびデータベースへの接続」を参照してください。

バックアップ・ファイル

バックアップ・ファイルは、厳密にはデータベース・ファイルではありません。データの損失を伴う障害が発生した場合にデータベースのリカバリに使用可能な、特定の形式でのデータベースのコピーです。


関連項目:


データベース記憶域構造の情報の表示

データベース内の記憶域構造の管理に役立つよう、この項では、Oracle Enterprise Manager Database Control(Database Control)を使用して、様々なデータベース記憶域構造に関する情報を表示する手順を示します。

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

制御ファイルの情報の表示

Database Controlを使用して、制御ファイルの位置情報とステータス情報を表示できます。

制御ファイルの情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで、「制御ファイル」をクリックします。

    一般サブページが表示された制御ファイル・ページが表示されます。

    このページには、データベースに多重制御ファイルが含まれているかどうかが表示されます。拡張サブページおよびレコード・セクション・サブページでは制御ファイルの詳細な情報を知ることができます。

オンラインREDOログ・ファイルの情報の表示

Database Controlを使用して、オンラインREDOログ・ファイルのステータス情報と多重化情報を表示します。

オンラインREDOログ・ファイル情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「REDOログ・グループ」をクリックします。

    REDOログ・グループ・ページが表示されます。このページには、データベースのオンラインREDOログ・グループの属性が表示されます。

    オンラインREDOログ・グループに含まれるメンバーが1つのみの場合、多重化は行われません。オンラインREDOログ・グループの「ステータス」属性を確認します。オンラインREDOログ・グループのステータスが「現行」の場合は、ログ・ライターによってディスクへの書込みが進行していることを表しています。

  4. (オプション)「グループ」列でグループ番号をクリックし、オンラインREDOログ・グループ・メンバーの情報を表示します。

アーカイブREDOログ・ファイルの情報の表示

Database Controlを使用して、アーカイブREDOログ・ファイルのステータス情報を表示します。


注意:

ARCHIVELOGモードでデータベースを設定しないと、アーカイブREDOログ・ファイルは存在しません。

アーカイブREDOログ・ファイル情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで、「アーカイブ・ログ」をクリックします。

    アーカイブ・ログ・ページが表示されます。

データファイルの情報の表示

Database Controlを使用して、データファイルのステータス情報と位置情報を表示します。

データファイルの情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで、「データファイル」をクリックします。

    データファイル・ページが表示されます。

  4. (オプション)データファイルを選択し、「表示」をクリックして、データファイルの詳細な属性を表示します。

  5. (オプション)「表領域」列の表領域名をクリックして、データファイルと関連付けられた表領域の属性を表示します。

表領域の情報の表示

Database Controlを使用して、表領域の構成、サイズおよびステータス情報を表示します。

表領域の情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

一般的なデータベース記憶域タスクの実行

データベースの表領域の要件は、データベースにデータが追加されるにつれて変化します。データベース管理者(DBA)として、表領域とデータベースの記憶域を効率的に管理するために、Oracle Enterprise Manager Database Control(Database Control)を使用して次のタスクを実行できます。

表領域の作成

表領域を追加作成してユーザー・データを格納できます。このため、すべてのデータがUSERS表領域内に格納されているとはかぎりません。次のような場合に表領域を追加作成します。

  • 特定のユーザー、ユーザー・グループまたはアプリケーションに関して、すべてのアプリケーション・データを、バックアップおよびリカバリまたはメンテナンス目的で、別々の表領域または表領域のセットに保持することが有効な場合があります。たとえば、ハードウェアまたはソフトウェアの障害のためにバックアップからすべてのアプリケーション・データをリカバリする場合、オフライン・リストアを実行できます。アプリケーション・データを個別の表領域に保持すると、他のデータベース・アプリケーションの操作に影響を与えることなく、該当する表領域のみをオフラインにしてリカバリできます。

  • これらの大きいパーティション化された表を持つ一部のアプリケーションは、複数の表領域でデータ分散を行うことで利点があります。頻繁にアクセスされるデータはパフォーマンスの高いディスクに配置され、めったに検索されないデータはより費用のかからない記憶域に配置されます。このデータを分散する方法は使用可能な記憶域の最適な使用方法です。

表領域を作成するには、次のようにします。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

    tablespaces.gifの説明が続きます。
    tablespaces.gifの説明

  4. 次の操作を1つ実行します。

    1. 新しい表領域を作成するには、「作成」をクリックします。

    2. 「選択」列で既存の表領域と類似する表領域を作成するには、属性を再作成する表領域を選択してください。「アクション」リストで、「類似作成」を選択して、「実行」をクリックします。

    表領域の作成ページが表示され、一般サブページが表示されます。

    create_tablespace.gifの説明が続きます。
    create_tablespace.gifの説明

  5. 「名前」フィールドに表領域の名前を入力します。

  6. 「エクステント管理」セクションで「ローカル管理」を選択します。

    詳細は、「ローカル管理表領域」を参照してください。

  7. 「タイプ」セクションで、「永続」を選択します。

    詳細は、「表領域のタイプ」を参照してください。

  8. 「ステータス」セクションで「読取り/書込み」を選択します。

    詳細は、「表領域のステータス」を参照してください。

  9. 「データファイル」セクションで「追加」をクリックして、表領域に1つ以上のデータファイルを追加します。

    データファイルの追加ページが表示されます。


    注意:

    「ビッグファイル表領域の使用」を選択した場合、表領域に含めることができるデータファイルは1つのみです。ビッグファイル表領域は、自動ストレージ管理またはストライプ化、RAIDおよび動的に拡張可能な論理ボリュームをサポートしている他の論理ボリューム・マネージャを使用する大規模データベースで使用されます。

  10. 記憶域タイプがファイル・システムの場合は、「ファイル名」フィールドにファイル名を入力します。「ファイル・ディレクトリ」および「ファイル・サイズ」フィールドに、データファイルの位置と初期サイズの適切な値を入力します。

  11. 「記憶域」セクションで次の手順を実行します。

    1. 「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択します。

    2. 10MBなど適切な増分を設定します。

      これは多くの記憶域が必要な際に、データファイルに追加するディスク領域の量です。

    3. 最大ファイル・サイズの場合、使用可能な記憶域に応じて次のいずれかを実行します。

      • 「無制限」を選択し、無制限でファイルが大きくなることを許可します。

      • 「値」を選択し、KB、MB、GBまたはTBに値を入力します。

  12. 「続行」をクリックします。

    表領域の作成ページに戻ります。

  13. (オプション)ページ上部の「記憶域」をクリックし、記憶域サブページを表示します。このサブページのすべてのデフォルト設定を調べます。

  14. 「OK」をクリックし、表領域を追加します。

    表領域ページに戻り、新しく作成された表領域が表示されます。

表領域の変更

Database Controlを使用して、表領域を変更できます。たとえば、データファイル・サイズの拡大または別のデータファイルの追加によって表領域を拡張したり、自動拡張を設定したり、領域使用率のアラートしきい値を変更したり、ステータスをオフラインにすることができます。クリティカル・アラートや警告アラートを受け取ったときに、そのアラートが領域の制限に関係していれば表領域を拡張し、そのアラートがデータの破損などの深刻なエラーに関係していれば表領域をオフラインにしてリカバリすることが必要な場合があります。

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

表領域を自動拡張に設定

この項では、制限サイズに達した場合、自動的に拡張するように表領域を設定する方法について説明します。次の手順では、表領域が以前は自動拡張する表領域ではなかった場合を想定します。

自動拡張する表領域を設定するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

  4. 自動拡張を有効にする表領域を選択し、「編集」をクリックします。

    表領域の編集ページが表示されます。

  5. 表領域に関連付けられている最初のデータファイルを選択し、「編集」をクリックします。

    データファイルの編集ページが表示されます。

  6. 「記憶域」セクションで次の手順を実行します。

    1. 「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択します。

    2. 10MBなど適切な増分を設定します。

      これは多くの記憶域が必要な際に、データファイルに追加するディスク領域の量です。

    3. 最大ファイル・サイズの場合、使用可能な記憶域に応じて次のいずれかを実行します。

      • 「無制限」を選択し、無制限でファイルが大きくなることを許可します。

      • 「値」を選択し、KB、MB、GBまたはTBに値を入力します。

  7. 「続行」をクリックします。

    表領域の編集ページに戻ります。

  8. 表領域に関連付けられている追加のデータファイルごとに、手順5から手順7を繰り返します。

  9. 「適用」をクリックします。

    確認メッセージが表示されます。

表領域の領域使用量アラートしきい値の変更

表領域に対する領域使用率がしきい値に達した場合は、Database Controlでアラートが表示されます。領域使用率のアラートは2種類あり、「警告」は、表領域の使用量が低い場合に、「クリティカル」は、表領域がほぼ一杯でアクションがすぐに必要な場合に発行されます。

警告アラートとクリティカル・アラートの両方に、次の方法でアラートしきい値を指定できます。

  • 使用領域ごと(%)

    使用されている領域が全領域の一定の割合以上になった場合、アラートが発行されます。

  • 空き領域ごと(MB)

    空き領域がMB単位を下回る場合、アラートが発行されます。

    空き領域のしきい値は、表領域が大きい場合ほど有用です。たとえば、10TBの表領域で限界のアラートの割合を全体の99%に設定すると、100GBの空き領域が切った場合データベースによってアラートが発行されることになります。通常、空き領域が100GBになったということは重大な状態ではないため、アラートは有効とはいえません。この表領域の場合、空き領域が5GBを切った場合に限界のアラートを発行するような設定の方が、空き領域のしきい値が有効に使用されています。

表領域に対する警告および限界のアラートの両方に関して、使用されている領域のしきい値または空き領域のしきい値のいずれか、または両方を有効にできます。

表領域の領域使用量アラートしきい値を変更するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

  4. 変更するしきい値を持つ表領域を選択し、「編集」をクリックします。

    表領域の編集ページ、および一般サブページが表示されます。

  5. ページ上部の「しきい値」リンクをクリックし、しきい値サブページを表示します。

    tablespace_thresholds.gifの説明が続きます。
    tablespace_thresholds.gifの説明

  6. 「使用済領域(%)」セクションで、次のいずれかを実行します。

    • デフォルトしきい値を許可します。

    • 「しきい値の指定」を選択し、「警告(%)」のしきい値および「クリティカル(%)」のしきい値を入力します。

    • 「しきい値の無効化」を選択し、すべてのしきい値を無効にします。

  7. 「空き領域(MB)」セクションで、次のいずれかを行います。

    • デフォルトしきい値を許可します。

    • 「しきい値の指定」を選択し、「警告(MB)」のしきい値および「クリティカル(MB)」のしきい値を入力します。

    • 「しきい値の無効化」を選択し、残りの空き領域のしきい値を無効にします。

  8. 「適用」をクリックします。

    確認メッセージが表示されます。

表領域をオフライン化

次のような場合、表領域をオフライン化する場合があります。

  • データベースの一部をアクセス不可にし、残りの部分は通常どおりアクセスできるようにする場合

  • アプリケーションの更新またはメンテナンスを行う間、アプリケーションとその表グループを一時的にアクセス不可にする場合

  • 表領域のバックアップをオフラインで実行する場合(ただし、表領域はオンラインでも、使用中でもバックアップ可能です)

  • ハードウェアまたはソフトウェア障害の後に表領域をリカバリする場合

  • 表領域のデータファイルの名前の変更または再配置をする場合

表領域をオフライン化するには、次のようにします。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

  4. オフライン化する表領域を選択し、「編集」をクリックします。

    表領域の編集ページが表示されます。

  5. 「ステータス」セクションで「オフライン」を選択します。

    このページの選択内容の詳細を確認するには、「ヘルプ」をクリックします。

  6. 「オフライン・モード」リストから選択を行い、「適用」をクリックします。

    確認メッセージが表示されます。


注意:

表領域をオンラインに戻し、このページに戻るには、「ステータス」セクションの下の「読取り/書込み」をクリックします。


関連項目:

  • 表領域のオフライン化、およびデータファイルの名前の変更または再配置の詳細は、『Oracle Database管理者ガイド』を参照してください。


表領域の削除

表領域の削除後、表領域内のオブジェクトおよびデータは使用できなくなります。これらをリカバリすることは時間のかかるプロセスです。表領域を削除する前後にバックアップを実行することをお薦めします。

表領域を削除するには、次のようにします。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「表領域」をクリックします。

    表領域ページが表示されます。

  4. 削除する表領域を選択し、「削除」をクリックします。

    Database Controlによって、表領域を削除するかどうかと、オプションとして、関連付けられたデータファイルもディスクから削除するかどうかを確認するように求められます。

  5. 「はい」をクリックし、表領域を削除します。

    確認メッセージが表示され、削除された表領域は表領域ページに表示されなくなります。

未使用領域の再利用について

この項では、データベース内の再利用可能な未使用領域に関するバックグラウンド情報を提供し、この領域を再利用する方法について説明します。この付録には、次の項があります。

未使用領域の再利用について

時間の経過とともに、表領域内のオブジェクトの挿入、更新および削除(DML操作)を実行していると、個々には再利用できるほど大きくない空き領域の断片が作成されます。これらの空き領域をまとめてみると、大量の領域が無駄になっている場合があります。オブジェクトが点在していると、問合せおよびDML操作中にパフォーマンスが低下する可能性があります。

Oracle Databaseでは、次のオンライン操作で空き領域を再利用できます。この操作は、操作続行中に、影響を受けるオブジェクトに対して問合せまたはDMLをブロックしない操作です。

  • オンラインでのセグメントの縮小

    オンラインでのセグメントの縮小は、表のセグメントおよび索引やパーティションなどの表の依存オブジェクトのセグメントで実行されます。セグメントごとに、データはセグメントの先頭に圧縮されます。空き領域は、表領域に戻されるか、次の挿入用にセグメント内で保持されます。

    オンラインでのセグメントの縮小が許可されるのは、自動セグメント領域管理を使用するローカル管理表領域内のセグメントのみです。オンラインでのセグメントの縮小はインプレース操作で、表領域の追加の空き領域は必要ありません。

  • オンラインでの表の再定義(再編成とも呼ばれる)

    再編成では、表とその依存オブジェクトが、表領域の異なる場所に再配置されます。この操作にはこれらのオブジェクトのデータを圧縮するというメリットがあります。ただし、この操作を正常に実行するには、表領域に表およびその依存オブジェクトと同じサイズの空き領域が必要です。再編成は、ディクショナリ管理表領域または手動セグメント領域管理を使用するローカル管理表領域にのみ許可される操作です。

セグメント・アドバイザでは、大量の再利用可能な未使用領域を持つ、縮小または再編成するセグメントの推奨事項が生成されます。


関連項目:

  • オンラインでのセグメントの縮小およびオンラインでの表の再定義の詳細は、『Oracle Database管理者ガイド』を参照してください。


セグメント・アドバイザについて

セグメント・アドバイザは、再利用可能な未使用領域を持つデータベース・オブジェクトを特定します。使用率と増加に関する統計の検討、およびオブジェクトのデータのサンプリングを行うことで、分析を実行します。デフォルトでは、セグメント・アドバイザはすべてのメンテナンス期間中に一定の間隔で自動的に実行するよう構成されています。セグメント・アドバイザを手動で実行することもできます。

定期的に実行されるセグメント・アドバイザ・タスクのことを、自動セグメント・アドバイザと呼びます。アドバイザの実行結果は、セグメント・アドバイザの推奨事項として、データベース・ホームページの「領域サマリー」セクションにまとめられます。

自動セグメント・アドバイザの実行中は、データベース内のセグメントのサブセットのみが分析されます。セグメントに再利用可能な領域があると考えられても、それらのセグメントがセグメント・アドバイザの推奨事項として表示されない場合、自動セグメント・アドバイザはそれらを分析用に選択していない可能性があります。そのようなセグメントでは、随時手動でセグメント・アドバイザを実行できます。自動セグメント・アドバイザが分析でどのように表領域およびセグメントを選択するかの詳細は、『Oracle Database管理者ガイド』を参照してください。

セグメント・アドバイザの推奨事項

セグメント・アドバイザの推奨事項は表領域ごとにグループ化されています。表領域名のみ、Database Controlのセグメント・アドバイザ推奨ページに表示されます。

表領域に、縮小操作または再編成が推奨されているセグメントが含まれる場合、表領域はセグメント・アドバイザ推奨ページに表示されます。このページでは、各表領域の再利用可能な領域の量が見積もられます。表領域の推奨事項の詳細を要求すると、Database Controlでは、推奨事項が生成されたその表領域のセグメントが表示されます。

セグメント・アドバイザによって提供される推奨事項は、セグメントがある表領域の特性によって異なります。表領域がデフォルトのオプションで作成された場合、通常はセグメント・アドバイザによって縮小が推奨されます。セグメントにオンラインによるセグメント縮小を適用できない場合、またはセグメントがディクショナリ管理表領域か手動セグメント領域管理で作成された表領域にある場合は、セグメント・アドバイザによって再編成が推奨されます。

また、自動セグメント・アドバイザは、大きさが10MB以上で、索引が3つ以上ある表を評価して、表をOLTP圧縮メソッドで圧縮した場合に節約できる領域量を判定します。


関連項目:

  • メンテナンス・ウィンドウの詳細は、『Oracle Database管理者ガイド』を参照してください。


セグメント・アドバイザ推奨および再利用領域の表示

各セグメント・アドバイザ推奨には、クリックして領域再利用処理を開始できるボタンがあります。領域再利用はオンライン・プロセスですが、多くのリソースを消費するため、領域の再利用はオフピーク時に行う必要があります。

セグメント・アドバイザ推奨および再利用領域を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. 「領域サマリー」セクションで、「セグメント・アドバイザ推奨」の横にある数値リンクをクリックします。

    home_page_space_summary.gifの説明が続きます。
    home_page_space_summary.gifの説明

    セグメント・アドバイザ推奨ページが表示され、セグメント・アドバイザの最新の自動および手動の稼働から、推奨事項が表示されます。

    segment_reccom_new.gifの説明が続きます。
    segment_reccom_new.gifの説明

  3. (オプション)「表示」リストで「最後の自動実行からの推奨事項」を選択して、自動実行された直近のセグメント・アドバイザによる推奨事項のみを表示します。

  4. 表領域を選択し、「推奨事項の詳細」をクリックします。

    表領域の推奨事項の詳細ページが表示されます。

    オンラインでのセグメントの縮小または再編成を推奨する表領域のセグメントがリストされています。

    reccomend_details_new.gifの説明が続きます。
    reccomend_details_new.gifの説明

  5. (オプション)「スキーマ」、「セグメント」、「パーティション」または「最小再利用可能領域」フィールドに検索基準を入力して、「検索」をクリックし、セグメント・リストに表示されているセグメントの数を削減します。

  6. 各セグメントの推奨事項を確認し、次に進みます。

    • 任意のセグメントの推奨事項が再編成の場合は、「再編成」ボタンをクリックして、そのセグメントの再編成を開始するか、複数のセグメントを選択して表の上の「再編成」ボタンをクリックします。その後のページに示される手順に従って、選択したセグメントの再編成スクリプトを生成します。

    • 任意のセグメントの推奨事項が縮小の場合は、該当するセグメントに対して手順7から手順13を実行します。

  7. 次のいずれかを実行し、縮小する1つ以上のセグメントを選択します。

    • 単一のセグメント内の領域を再利用するには、そのセグメントの「推奨」列の下の「縮小」をクリックします。

    • 1つ以上のセグメントを縮小するには、セグメントを選択し、表の上の「縮小」ボタンをクリックします。

  8. セグメントの縮小: オプション・ページで「セグメントの圧縮と領域の解放」を承認します。

    このオプションにより空き領域を表領域に戻します。空き領域を表領域に解放しない場合は、「セグメントの圧縮」を選択します。後で縮小プロセスを再び実行して、空き領域を解放できます。


    注意:

    現在実行中の長時間実行問合せに縮小の対象となるセグメントが含まれている可能性がある場合は、「セグメントの圧縮」を選択します。縮小操作の完了前に開始した長時間実行問合せでは、再利用されたブロックからの読取りが試行され、エラーが発生する場合があります。また、手順10で縮小操作をオフピーク時にスケジュールすることも可能です。

  9. 「実装」をクリックします。

    セグメントの縮小: スケジュール・ページが表示されます。

  10. ジョブ名を入力、または選択したジョブ名に置き換えます。

  11. 「開始」ヘッダーの「即時」を選択します。

    縮小操作はリソースを集中させる可能性があるため、「後で」を選択し、オフピーク時の操作のスケジュールを設定できます。

  12. 「発行」をクリックします。

    スケジューラのジョブ・ページが表示され、実行中サブページに縮小ジョブが示されます。

  13. 「リフレッシュ」をクリックし、ジョブが実行中サブページに表示されなくなるまでページを更新します。

    履歴サブページまたはすべてサブページに切り替えて、完了したジョブのステータスを表示できます。

セグメント・アドバイザの手動実行

セグメント・アドバイザは手動で実行できます。自動セグメント・アドバイザによって選択されないオブジェクトを分析する場合、または表領域上の推奨事項を最新にする場合に有効です。

手動によるセグメント・アドバイザの実行の詳細は、『Oracle Database管理者ガイド』を参照してください。

オンラインREDOログの管理

オンラインREDOログ・ファイルは、データベース・リカバリの重要な要素です。データベース内のすべてのトランザクションで、アーカイブが有効かどうかに関係なく、REDOログが更新されます。クラッシュ、インスタンスまたはメディア・リカバリ時に、データベースでは、必要なアーカイブおよびREDOログ・ファイルのログ順序番号を使用して、REDOログ・ファイルが昇順で正しく適用されます。

オンラインREDOログは、適切に構成すればメンテナンスはほとんど必要ありません。この項では、より一般的なREDOログ管理作業について説明します。この付録には、次の項があります。

オンラインREDOログの多重化

オンラインREDOログは、多重化することをお薦めします。多重化を行うと、インスタンス障害やメディア障害の場合にデータをより効果的に保護できます。

オンラインREDOログを多重化するには、各オンラインREDOログ・グループにメンバーを追加する必要があります。オンラインREDOログ・グループが対称である必要はありませんが、すべてのグループのメンバーを同じ数にすることをお薦めします。単一のデータベースは2つ以上のオンラインREDOログ・グループを持つ必要があります。


注意:

オンラインREDOログを多重化する場合、データベースの実行I/Oの量を増やす必要があります。構成によっては、データベースのパフォーマンス全体に影響が及ぶ可能性があります。

オンラインREDOログを多重化するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「REDOログ・グループ」をクリックします。

    REDOログ・グループ・ページが表示されます。

  4. グループを選択し、「編集」をクリックします。

    REDOログ・グループの編集ページが表示されます。

  5. 「追加」をクリックします。

    REDOログ・メンバーの追加ページが表示されます。

  6. 記憶域タイプがファイル・システムに設定されている場合は、「ファイル名」フィールドに新しいREDOログ・メンバーのファイル名を入力します。

    たとえば、既存のメンバー・ファイル名がREDO01.logの場合、このメンバーをREDO01a.logと指定します。

  7. 「ファイル・ディレクトリ」フィールドに、ディスク上のデータファイルの格納場所となるディレクトリを入力します。

    このファイルはREDOログ・ファイル・グループの他のメンバーと同じディレクトリに作成できますが、各メンバーは個別のディスク・ドライブに格納することをお薦めします。こうすることで、ドライブ障害が発生した場合もメンバーにアクセスできます。

  8. 「続行」をクリックし、次に「適用」をクリックして変更を許可します。

    確認メッセージが表示されます。

  9. ページ上部の「REDOログ・グループ」リンクをクリックしREDOログ・グループ・ページに戻ります。

  10. 既存のすべてのログ・グループに対して、手順4から手順9を繰り返します。

ログ・ファイルの切替え

ログ・スイッチが発生すると、ログ・ライター(LGWR)・プロセスは、現在のオンラインREDOログ・グループへの書込みを停止し、使用可能な次のREDOログ・グループへの書込みを開始します。ログ・スイッチの発生後は、現在のオンラインREDOログ・グループが非アクティブになり、使用可能な次のオンラインREDOログ・グループが現行のオンラインREDOログ・グループになります。

現在のREDOグループを非アクティブにして、REDOログのメンテナンス操作に使用できるようにするため、ログ・スイッチを強制的に実行することができます。強制的なログ・スイッチの実行は、一杯になるまでに時間がかかる大きいサイズのREDOログ・ファイルがある構成に有効です。たとえば、次のような場合に有効です。

  • 現在のREDOグループを削除するが、グループが非アクティブになるまで削除できない場合。

  • 現在のオンラインREDOログ・グループ・メンバーを、まだ完全に一杯になっていなくてもすぐにアーカイブする場合。

ログ・ファイルを切り替えるには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「記憶域」セクションで「REDOログ・グループ」をクリックします。

    REDOログ・グループ・ページが表示されます。

  4. 「アクション」リストで、「ログ・ファイルの切替え」を選択して「実行」をクリックします。

    確認メッセージが表示されます。グループのステータスはCurrentからActiveに変更され、リストにある次のグループのステータスがInactiveからCurrentに変更されます。

UNDOデータの管理

Oracle Database 11gからは、デフォルトのインストールの場合、Oracle DatabaseによってUNDOデータが自動的に管理されるようになりました。通常、データベース管理者(DBA)の介入は不要です。ただし、Oracle Flashback操作を使用している場合は、フラッシュバック操作を確実に完了するために、いくつかのUNDO管理タスクを実行する必要があります。

この項では、UNDOデータの管理に関するバックグラウンド情報を提供し、UNDOデータの管理方法について説明します。この付録には、次の項があります。

UNDOデータについて

トランザクションによりデータが変更される場合、変更前に元のデータがコピーされます。変更済データのオリジナル・コピーはUNDOデータと呼ばれます。次の理由から、この情報は保存しておく必要があります。

  • ロールバックが必要なときにデータベースに作成された未コミットの変更を元に戻す場合。ロールバックは、誤ったトランザクションまたは意図的でないトランザクションの変更を元に戻す場合に必要になります。また、リカバリ操作の一部としても使用されます。

  • データに対してその他の変更が発生しても、各ユーザーがデータの一貫したビューを取得できることを意味する読取り一貫性を提供する場合。読取り一貫性では、ユーザー・セッションには他のユーザー・セッションに対する未コミットの変更が表示されません(内容を保証しない読取りとも呼ばれる)。たとえば、ユーザーが午前10時に問合せを発行し問合せが15分間続いた場合、問合せ開始後の他のユーザーによる更新または挿入操作に関係なく、問合せ結果には午前10時のデータの状態全体が反映されます。

  • 特定のOracle Flashback機能(Oracle Flashback QueryやOracle Flashback Tableなど)を有効にして、過去のある時点におけるデータの表示やリカバリを可能にする場合。

UNDO表領域

自動UNDO管理により、UNDOデータはUNDO表領域に格納されます。UNDO表領域には、永続表領域のプロパティの他に追加のプロパティがあります。複数のUNDO表領域が存在しても構いませんが、Oracleインスタンスに対してアクティブにできるのは1つのみです。

Database Configuration Assistant(DBCA)でデータベースを作成すると、UNDOTBS1という名前の自動拡張UNDO表領域が作成されます。この最大拡張サイズは32,767MBです。

UNDO保存

Oracle Databaseでは、アクティブ・トランザクションで使用されているUNDOデータが、そのトランザクションがコミットされるまで上書きされないことが自動的に保証されます。トランザクションのコミット後、そのUNDOデータが占有している領域は再利用または上書き可能になります。この場合、UNDO表領域の領域が不足すると、そのUNDOデータは上書きされる可能性があります。

トランザクションのコミット後も、Oracle Flashback機能の正常な実行を保証し、長時間実行問合せの読取り一貫性を維持する上で、UNDOデータを保持する(上書きしない)ことは有効です。そのために、データベースではUNDO保存期間がメンテナンスされ、自動的にチューニングされます。コミット済のUNDOデータのうち、その経過時間がUNDO保存期間に達していないものは、問合せやOracle Flashback操作で使用できるように保持されます。


関連項目:

  • 読取り一貫性の詳細は、『Oracle Database概要』を参照してください。

  • Oracle Flashback機能の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。


UNDOデータの管理について

Oracle Databaseでは、デフォルトでUNDOデータおよびUNDO表領域が自動的に管理されますが、Oracle Flashback機能を使用している場合は、フラッシュバック操作の成功を保証するために、いくつかのUNDO管理タスクを実行する必要があります。

Oracle Flashback操作中にsnapshot too oldというエラーが発生した場合は、フラッシュバック操作のサポートに十分なUNDOデータが保持されているかどうか確認する必要があることを意味しています。

次のメソッドにより、Oracle Flashback操作のサポートを強化します。

  • 自動拡張表領域の最小UNDO保存期間を、Oracle Flashback操作の予想最長期間と同じ長さに設定します。

    このためには、UNDO_RETENTION初期化パラメータを設定します。詳細は、『Oracle Database管理者ガイド』を参照してください。

  • UNDO表領域を固定サイズに変更します。

    自動拡張UNDO表領域に対しては、アクティブな最長実行問合せよりわずかに長くなるように、UNDO保存期間が常に自動的にチューニングされます。ただし、この自動チューニングされた保存期間は、Oracle Flashback操作には不十分な場合があります。UNDO表領域の自動拡張が無効になっているか、またはUNDO領域が固定サイズの場合は、Oracle Flashback操作を効果的にサポートできるよう、UNDO保存期間のチューニングに異なるメソッドが使用されます。

    UNDO表領域を固定サイズに変更するには、十分に大きい表領域サイズを選択する必要があります。選択したUNDO表領域サイズが小さすぎると、次のエラーが発生する場合があります。

    • 領域が不足して新たなトランザクションのUNDOデータを収容できないために、DMLが失敗します。

    • 「スナップショットが古すぎます」というエラーが発生し、長時間実行問合せが失敗します。これは、UNDOデータが不足しているために読取り一貫性を維持できないことを意味します

    Oracle Enterprise Manager Database Control(Database Control)のUNDOアドバイザを使用し、UNDO表領域の固定サイズとして、その最小サイズを判断できます。詳細は、「UNDOアドバイザを使用したUNDO表領域の最小サイズの計算」を参照してください。

UNDO情報の表示

自動UNDO管理ページを使用して、UNDO構成に関する次の情報を表示できます。

  • UNDO表領域の名前および現行サイズ

  • 表領域の自動拡張の設定(「はい」または「いいえ」)

  • 既存の自動チューニングUNDO保存期間

UNDO情報を表示するには、次の手順を実行します。

  1. データベースのホームページに移動します。

    詳細は、「データベースのホームページのアクセス」を参照してください。

  2. ページ上部の「サーバー」をクリックし、サーバー・サブページを表示します。

  3. 「データベース構成」セクションで、「UNDO管理」をクリックします。

    自動UNDO管理ページが表示されます。

undo_management_112.gifの説明が続きます。
undo_management_112.gifの説明

UNDOアドバイザを使用したUNDO表領域の最小サイズの計算

UNDO表領域を固定サイズに変更する必要がある場合は、UNDOアドバイザを使用すると、必要な最小サイズを簡単に判定できます。UNDOアドバイザを使用して、最小UNDO保存期間を設定することもできます。

UNDO表領域を固定サイズに構成する場合は、まずデータベース作成後に十分な時間をかけて完全なワークロードを実行することをお薦めします。これにより、UNDO表領域がワークロードを処理するための必要最小限のサイズになります。その後、UNDOアドバイザを使用して、将来の長時間実行問合せやOracleフラッシュバック操作に対応できるUNDO表領域を構成する最適なサイズを決定してください。

UNDOアドバイザを使用してUNDO表領域の最小サイズを計算するには、次のようにします。

  1. 自動UNDO管理ページに移動します。

    詳細は、「UNDO情報の表示」を参照してください。

  2. 指定した期間(過去7日間など)に収集された統計と選択したUNDO保存期間のどちらに基づいてUNDO表領域の最小サイズを計算するかを決定します。

    自動収集した統計は、長時間実行問合せの期間およびUNDO生成率を含みます。Oracle Flashback機能を使用しない場合、または将来の長時間実行問合せが以前の長時間実行問合せ期間を超えない場合は、これらの統計に基づくUNDO表領域の最小サイズを計算することを推奨します。

    UNDO保存期間を選択し、入力する場合は、将来の長時間実行問合せまたはOracle Flashback操作の予想期間に基づいて期間を決定する必要があります。

  3. 一定期間に収集された統計に基づいてUNDO表領域の最小サイズを計算するには、次の手順を実行します。

    1. 「分析期間」セクションの「分析期間」リストで、目的の分析期間を選択します。

      「期間のカスタマイズ」を選択すると、期間の開始日時および終了日時を入力できるページが表示されます。

    2. 「分析期間で最も長い問合せに基づき自動的に選択済」を選択します。

    3. 「分析の実行」をクリックします。

      必要なUNDO表領域の最小サイズが「分析結果」セクションに表示されます。

    4. (オプション)「グラフの表示」をクリックして分析結果のグラフを表示します。

  4. 入力した期間に基づいてUNDO表領域の最小サイズを計算するには、次の手順を実行します。

    1. 「分析期間」セクションで「継続時間の長い問合せやフラッシュバックを許可するよう手動で指定済」を選択します。

    2. 「期間」フィールドに、目的のUNDO保存期間を秒、分、時間、日数のいずれかの単位で入力します。

      この期間は次のように計算します。

      • ワークロードに対して予想される最長実行問合せの期間を特定します。

        期間を特定する根拠となるのは、過去のワークロード期間に記録された最長実行問合せです。この情報は、自動UNDO管理ページのシステム・アクティビティ・サブページから入手できます。このサブページの分析期間は、一般サブページの「分析期間」リストから選択します。通常のワークロード期間に対応するカスタム分析期間を選択できます。

      • Oracle Flashback操作に対する最長期間を判断します。

      • 2つの期間のうち大きい方を取ります。

    3. 一般サブページの「分析期間」セクションで、「分析の実行」をクリックします。

      必要なUNDO表領域の最小サイズが「分析結果」セクションに表示されます。

    4. (オプション)「グラフの表示」をクリックして分析結果のグラフを表示します。

      undo_management_graph.gifの説明が続きます。
      undo_management_graph.gifの説明

  5. (オプション)曲線上で目的のUNDO保存期間に対応する目盛(または1点)をクリックします。

    「期間」フィールドが選択したUNDO保存期間に合わせて変わります。また、グラフの上の「必要なUNDO表領域の最小サイズ」フィールドが対応する必要サイズを反映して変わります。

  6. (オプション)「適用」をクリックします。

    最小UNDO保存期間が「期間」フィールドの値に設定されます。


注意:

UNDOアドバイザで分析を実行したり、最小UNDO保存期間を設定しても、UNDO表領域のサイズは変わりません。UNDO表領域のサイズを変更するには、「UNDO表領域の固定サイズへの変更」の手順を実行してください。

UNDO表領域の固定サイズへの変更

UNDO表領域が大きくなりすぎるのを防ぐため、またはOracle Flashback操作のサポートを強化するために、UNDO表領域を固定サイズに変更します。

UNDO表領域を固定サイズに変更するには、次の手順を実行します。

  1. 自動UNDO管理ページで必要なUNDO表領域の最小サイズを算出した後、「UNDO表領域の編集」をクリックします。

    表領域の編集ページにUNDO表領域のプロパティが表示されます。

  2. 「データファイル」セクションで「編集」をクリックします。

    データファイルの編集ページが表示されます。

  3. 「ファイル・サイズ」フィールドに、UNDO表領域の計算済最小サイズを入力します。

    詳細は、「UNDOアドバイザを使用したUNDO表領域の最小サイズの計算」を参照してください。

  4. 「記憶域」セクションで「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択解除します。

  5. 「続行」をクリックします。

    表領域の編集ページに戻ります。

  6. 「適用」をクリックします。

    確認メッセージが表示されます。

記憶域: Oracle by Example Series

Oracle by Example(OBE)には、このマニュアルに関するシリーズが含まれています。このOBEでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

記憶域に関するOBEを参照するには、ご使用のブラウザで次のURLを指定します。

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/2day_dba/storage/storage.htm