ヘッダーをスキップ

Oracle Database 2日でデータベース管理者
10g リリース2(10.2)

B19197-03
目次
目次
索引
索引

戻る 次へ

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

この章では、Enterprise Managerを使用してデータベースの記憶域構造を確認および管理する方法について説明します。この章の内容は次のとおりです。

データベースの記憶域構造の概要

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

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

Oracleデータベース・サーバーでは、その構造の管理を自動化できます。また、Oracle Enterprise Managerでは、簡単にデータベースの管理および監視ができるWebベースのGUIが提供されています。

データベース記憶域構造を表示するには、「管理」ホームページの「記憶域」セクションに移動します(詳細は、図5-2「「データベース」の「管理」ページ」を参照してください)。図6-1に示すリンクをクリックすると、記憶域のページにアクセスできます。

図6-1    記憶域オプション


画像の説明

次の項では、データベース記憶域構造の詳細について説明します。

制御ファイル

制御ファイルは、データベースの物理的な構成要素を追跡します。このファイルは、データベースの機能に不可欠です。制御ファイルは重要であるため、多重化することをお薦めします。つまり、制御ファイルの同一コピーを複数作成する必要があります。DBCAを使用して作成されるデータベースでは、制御ファイルの3つのコピーが自動的に作成され、互いに同期が保たれます。

制御ファイルに障害が発生した場合、データベースは使用できなくなります。ただし、制御ファイルのコピーを保持しているかぎり、データベースを停止し、障害が発生した制御ファイルをそのコピーから再作成した後、データベースを再起動できます。また、障害が発生した制御ファイルをCONTROL_FILES初期化パラメータから削除し、残りの制御ファイルを使用してデータベースを再起動する方法もあります。

制御ファイル情報の表示

制御ファイル」をクリックして「制御ファイル」の一般ページを開きます。このページに、多重化された制御ファイルがデータベースに含まれているかどうかが示されます。「拡張」ページと「レコード・セクション」ページには、制御ファイルの詳細が表示されます。この情報については、オンライン・ヘルプを参照してください。

オンラインREDOログ・ファイル

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

REDOログには、データに対する変更がすべて記録されます。障害が発生して、データの変更がデータファイルに書き込まれない場合でも、REDOログから変更を取得できます。そのため、その変更が失われることはありません。REDOログ自体にかかわる障害に備えるために、Oracleでは、REDOログを多重化して、2つ以上のオンラインREDOログの同一コピーを異なるディスクで保持できます。

データベースのREDOログは、REDOログ・ファイルのグループで構成されています。グループは、REDOログ・ファイルおよびREDOログ・ファイルの多重化されたコピーで構成されています。各同一コピーはそのグループのメンバーです。各グループはグループ1などの番号で定義されます。

データベースのログ・ライター・プロセスでは、グループが一杯になるか、またはログ・スイッチ操作が要求されるまで、メモリー・バッファからREDOログ・グループにREDOレコードが書き込まれます。その後、ログ・ライターは次のグループに書込みを行います。ログ・ライターでは、この操作が循環方式で行われるため、最も古いグループが最新のREDOレコードによって上書きされます。

参照:

REDOログの詳細は、『Oracle Database管理者ガイド』を参照してください。 

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

REDOログ・グループ」をクリックして「REDOログ・グループ」ページを開きます。このページに、データベースのREDO・ログ・グループの属性が表示されます。データベースは、通常、3つのグループで構成されています。REDOログ・グループのステータス属性に注意してください。「現行」ステータスのグループは、現在、ログ・ライターによってディスクに書込みが行われています。

REDOログ・グループに含まれているメンバーが1つのみの場合、多重化は行われません。REDOログ・グループの番号をクリックすると、REDOログ・グループのメンバーについての情報を表示できます。

REDOログの多重化

小規模のデータベース環境ではREDOログ・グループを多重化する必要はありませんが、データベースのユーザー数およびアプリケーション数の増加に伴い、多重化を検討します。多重化を行うと、インスタンスまたはメディア障害が発生した場合のデータの保護が強化されます。

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

データベースに多重化されたREDOログを作成するには、次の手順を実行します。

  1. 「管理」ページの「記憶域」セクションで、「REDOログ・グループ」をクリックします。

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

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

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

  3. REDOログ・メンバー」セクションで、「追加」をクリックします。

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

  4. 新しいREDOログ・メンバーのファイル名を入力します。たとえば、既存のメンバーのファイル名がREDO01.logの場合は、このメンバーの名前をREDO01a.logとします。

    ファイル・ディレクトリを入力するか、またはデフォルトの設定を使用します。このファイルは同じディレクトリに作成できますが、メンバーは個別のドライブに格納することをお薦めします。これによって、ドライブ障害が発生した場合でも、1つのメンバーにはアクセスできます。

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

  6. 既存の各グループに対してこれらの手順を繰り返します。

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

  1. 「REDOログ・グループ」ページに移動します。

  2. アクション」メニューで、「ログ・ファイルの切替え」を選択します。

  3. 実行」をクリックします。

    次のグループのステータスがINACTIVEからCURRENTに変更されたことを確認できます。

アーカイブ・ログ・ファイル

REDOログをアーカイブする場合は、上書きされる前にREDOログ・ファイルを別の位置に書き込みます。この位置はアーカイブ・ログと呼ばれます。スタンバイ・データベースを含む複数の位置にアーカイブできます。

これらのREDOログ・ファイルのコピーによって、リカバリのために保存および使用できるREDOデータの量を拡大できます。アーカイブは、データベースに対して有効にも無効にもできますが、有効にすることをお薦めします。

参照:

アーカイブREDOログの詳細は、『Oracle Database管理者ガイド』を参照してください。 

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

アーカイブ・ログ」をクリックすると、「アーカイブ・ログ」ページが表示されます。このページに、アーカイブ・ログ・ファイルおよびその属性が表示されます。

データベースをアーカイブ・ログ・モードに設定するか、またはアーカイブ・ログの位置を追加する場合は、「基本的なバックアップおよびリカバリのためのデータベース構成」を参照してください。

ロールバック・セグメント

以前のリリースのOracleでは、ロールバック・セグメントはデータベースのUNDO情報の追跡に使用するデータベース構造でした。現在は、UNDOの管理にUNDO表領域を使用することをお薦めします。詳細は、この章の「データベース用UNDOの管理」を参照してください。

ロールバック・セグメント情報の表示

ロールバック・セグメント」をクリックすると、「ロールバック・セグメント」ページが表示されます。このページに、システム・ロールバック・セグメントの属性が表示されます。システム・ロールバック・セグメントは自動管理されています。

データファイル

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

データファイルは、次の構成要素に分類されます。

セグメントおよびエクステント

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

エクステントは、セグメント内の連続したデータ・ブロックです。Oracleは、指定したサイズのエクステントをセグメントに最初に割り当てますが、そのエクステントが一杯の場合は、追加のエクステントを割り当てることができます。

データ・ブロック

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

データベースの作成後は、データベースを再作成しないでデフォルトのブロック・サイズを変更することはできません。ただし、デフォルトのブロック・サイズとは異なるブロック・サイズの表領域は作成できます。デフォルト以外の(標準以外の)ブロック・サイズの表領域の作成方法については、『Oracle Database管理者ガイド』を参照してください。

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

データファイル」をクリックすると、「データファイル」ページが表示されます。このページに、データファイルに関する情報が表示されます。データファイルを選択して「表示」をクリックすると、データファイルの詳細な属性が表示されます。また、表領域の名前をクリックして、所有する表領域の属性を表示することもできます。

参照:

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

表領域

データベースは1つ以上の表領域で構成されています。表領域は論理構造であり、1つ以上のデータファイルまたは一時ファイルで構成されています。

表領域は、表や索引など、他のオブジェクトの形式でデータを保持します。Oracleデータベースの作成時には、SYSTEM、USERSなど、いくつかの表領域がすでに存在しています。詳細は、「データベースの一部の表領域」を参照してください。

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

ローカル管理表領域とディクショナリ管理表領域

表領域内の領域管理では、空き領域と使用済領域の追跡が継続的に行われるため、データの挿入時および削除時に、領域が効率的に割り当てられます。

ディクショナリ管理表領域ではなく、ローカル管理表領域を作成することをお薦めします。ローカル管理表領域では、データ・ディクショナリにではなく表領域に領域割当て情報が保持されます。これによって、パフォーマンスが向上します。

デフォルトでは、新しく作成した表領域は、自動セグメント管理(パフォーマンスをさらに向上させる機能)を使用してローカルで管理されるように設定されます。

表領域のタイプ

表領域は、3タイプ(永続、UNDOまたは一時)のいずれかにすることができます。

永続表領域

Oracleでは、これらの表領域を使用して、システム・データなどの永続データを格納します。ユーザーおよびアプリケーション・データの格納には、永続表領域を使用します。

UNDO表領域

自動UNDO管理モードで実行中のデータベースは、UNDOデータをUNDO表領域で透過的に作成して管理します。Oracleでは、UNDOデータを使用して読取り一貫性を提供し、フラッシュバック問合せなどの機能を有効にします。

複数のUNDO表領域を作成できますが、アクティブにできるのは1つのみです。ただし、データベース・インスタンスごとに使用するUNDO表領域を切り替える必要がある場合は、新しいUNDO表領域を作成し、かわりにそれを使用するように指定できます。使用しないUNDO表領域は、後で削除できます。

一時表領域

一時表領域は一時データの格納に使用され、SQL文でソートを実行するときに作成されます。データベースを作成すると、そのデータベースには一時表領域がすでに含まれています。

一時表領域グループを作成する場合は、別の一時表領域を作成します。通常の環境では、追加の一時表領域を作成する必要はありません。

一時表領域および永続表領域は、ユーザー・レベルで割り当てることができます。データベース作成時にデフォルトの一時表領域を作成できます。この表領域は、他に一時表領域を割り当てられていないユーザーに対して、デフォルトの一時表領域として使用されます。

参照:

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

表領域のステータス

表領域の読取り/書込みステータスと、その可用性を次のように設定できます。

読取り/書込み

ユーザーは、表領域の作成後、その表領域に対して読取りおよび書込みを行うことができます。これはデフォルトです。

読取り専用

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

オフライン

表領域がオフラインで作成された場合、ユーザーはその表領域にアクセスできません。表領域は、オフラインで作成せず、後で表領域の基礎となるファイルでメンテナンスを実行する場合にステータスをオフラインに変更します。

表領域の自動拡張

表領域がその制限に達したときに備えて、指定されたサイズまで自動的に拡張するように設定できます。

自動拡張を有効にしていない場合は、表領域がそのクリティカルまたは警告しきい値サイズに達したときにアラートが送信されます。クリティカルおよび警告しきい値パラメータには、デフォルト値がありますが、いつでも変更できます。領域に関するアラートには、表領域を手動で増加して対応できます。

データベースの一部の表領域

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

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

EXAMPLE 

この表領域には、データベースとともにOracleに含まれるサンプル・スキーマが含まれています。サンプル・スキーマは、例に使用できる共通のプラットフォームを提供します。Oracleのドキュメントおよび教材には、サンプル・スキーマに基づく例が含まれています。 

SYSAUX 

SYSTEM表領域の補助表領域です。

Oracle Database 10g より前にSYSTEM表領域または独自の表領域を使用していた一部のコンポーネントおよび製品は、現在SYSAUX表領域を使用します。SYSAUXを使用すると、監視およびメンテナンスする表領域が少なくなるため、SYSTEM表領域への負荷が削減され、メンテナンスが軽減されます。Oracle Database 10g 以上のデータベースには、SYSAUX表領域を含める必要があります。

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

SYSTEM 

この表領域は、常にデータベース作成時に作成されます。Oracleは、データベースを管理するためにSYSTEM表領域を使用します。この表領域には、データ・ディクショナリが含まれています。データ・ディクショナリは、中心的な表およびビューの集合で、そのデータベースの読取り専用リファレンスとして使用されます。この表領域には、データベースの管理情報を含む様々な表およびビューが含まれています。これらはすべてSYSスキーマに含まれ、ユーザーSYSまたは必要な権限を所有した管理ユーザーのみがアクセスできます。 

TEMP 

この表領域は、SQL文を処理する際に生成される一時データを格納します。たとえば、問合せのソート用の作業領域として使用されます。各データベースには、専用の一時表領域としてユーザーに割り当てられる一時表領域を含める必要があります。事前構成済データベースでは、TEMP表領域がデフォルトの一時表領域として指定されます。これは、ユーザー・アカウント作成時に一時表領域を指定しなかった場合、この領域がOracleによってユーザーに割り当てられることを意味します。 

UNDOTBS1 

データベース・サーバーでのUNDO情報の格納に使用されるUNDO表領域です。OracleでのUNDO表領域の使用方法については、「データベース用UNDOの管理」を参照してください。すべてのデータベースには、UNDO表領域が必要です。 

USERS 

この表領域は、永続ユーザー・オブジェクトおよびデータの格納に使用されます。TEMP表領域と同様に、各データベースには、ユーザーに割り当てられる永続ユーザー・データ用の表領域を含める必要があります。そうしない場合、ユーザー・オブジェクトは、SYSTEM表領域に作成されます。このような運用はお薦めしません。事前構成済データベースでは、USERSがデフォルトの表領域として割り当てられ、システム・ユーザー以外のユーザーが作成したすべてのオブジェクト用の領域がこの表領域から確保されます。システム・ユーザーの場合、デフォルトの永続表領域はSYSTEMのままです。 

その他の記憶域構造

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

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

初期化パラメータは、起動時にデータベース・サーバーでデータベースのランタイム・リソースを決定する場合に使用されます。これらのパラメータは、データベースによってアクティブに監視されます。また、データベースの実行中に設定または変更できます。

初期化パラメータおよび初期化パラメータ・ファイルについては、第5章「Oracleインスタンスの管理」を参照してください。

パスワード・ファイル

データベースでは、パスワード・ファイルを使用して、SYSDBA接続権限を所有している管理ユーザーを認証できます。SYSDBA権限によって、DBAは、データベースの起動と停止およびその他の高度な管理タスクを実行できます。このパスワード・ファイルは、データベースが実行されていない場合に参照する必要があることもあるため、データベース自体の外部に存在します。

パスワード・ファイルのみが管理者認証の方法ではないため、パスワード・ファイルが必要ないデータベースもあります。

パスワード・ファイルについては、第5章「Oracleインスタンスの管理」「データベースへのアクセス」を参照してください。

バックアップ・ファイル

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

バックアップ・ファイルについては、第9章「バックアップおよびリカバリの実行」を参照してください。

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

DBAは、記憶域の管理に関連する次のタスクの実行方法を理解する必要があります。

データベースの表領域の表示

データベースのすべての表領域を表示できます。「管理」ページの「記憶域」セクションで「表領域」をクリックすると、「表領域」ページが表示されます。このページに、各表領域に関する次の情報が表示されます。

詳細を表示するには、表領域名をクリックしてください。

表領域の作成

ユーザー、ユーザーのグループまたはアプリケーションには、スキーマ・オブジェクトを作成するために、デフォルトのUSER表領域を使用するのではなく、独自の表領域が必要な場合があります。表領域を作成するには、この項で説明する手順に従います。

  1. 「管理」ページの「記憶域」セクションで、「表領域」をクリックします。

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

  2. 作成」をクリックして、「表領域の作成」の「一般」ページを表示します。

    また、既存の表領域に類似した表領域を作成する場合は、既存の表領域を選択します。「アクション」リストから「類似作成」を選択して、「実行」をクリックします。「アクション」メニューで選択可能なその他のオプションは、様々な表領域操作のショートカットです。

  3. 表領域に名前を入力します。たとえば、TB1と入力します。

  4. 「エクステント管理」セクションで、「ローカル管理」を選択します。詳細は、「ローカル管理表領域とディクショナリ管理表領域」を参照してください。

  5. 「タイプ」セクションで、「永続」を選択します。詳細は、「表領域のタイプ」を参照してください。

  6. 「ステータス」セクションで、ステータス・オプションから「読取り/書込み」を選択します。詳細は、「表領域のステータス」を参照してください。

  7. このページの「データファイル」セクションで、「追加」をクリックして表領域に1つ以上のデータファイルを追加します。詳細は、「データファイル」を参照してください。


    注意:

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


  8. 「データファイルの追加」ページで、ファイル名を入力します。たとえば、TB1.dbfと入力します。「ファイル・ディレクトリ」および「ファイル・サイズ」のデフォルト値を使用します。

  9. Oracleデータベースでデータファイルを自動的に拡張できるように、「記憶域」セクションで、「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択します。データファイルが一杯になるたびにそのデータファイルを拡張する量を「増分」フィールドに指定します。「最大ファイル・サイズ」は、「無制限」のままにします。「続行」をクリックして、「表領域の作成」ページに戻ります。

  10. 記憶域」をクリックして、「表領域の作成」の「記憶域」プロパティ・ページを表示します。「記憶域」ページは、すべてデフォルト設定のままにします。これらの設定については、オンライン・ヘルプを参照してください。

  11. OK」をクリックして、表領域を追加します。これで、「表領域」ページに新しい表領域が表示されます。

表領域の変更

Enterprise Managerを使用して、表領域を変更できます。たとえば、表領域の拡張、自動拡張の設定、表領域のしきい値の変更、表領域のステータスのオフラインへの変更を行うことができます。クリティカルおよび警告アラートが送信された場合、表領域を拡張するか、またはオフラインにしてリカバリを実行する必要がある場合があります。

この項では、表領域が最大サイズに達した場合に、自動的に拡張するように設定する方法について説明します。

  1. 「管理」ページの「記憶域」セクションで、「表領域」をクリックします。

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

  2. USERSなど、自動拡張する表領域を選択して、「編集」をクリックします。

    「表領域の編集: USERS」の「一般」プロパティ・ページが表示されます。

  3. 表領域に対応するデータファイルを選択して、「編集」をクリックします。

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

  4. フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を選択します。適切な増分値(1MBなど)を設定します。リソースに応じて、最大ファイル・サイズを任意に設定するか、ファイル・サイズを無制限に設定できます。

  5. 続行」をクリックして、「表領域の編集」ページに戻ります。

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

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

同様に、「表領域」ページで表領域を選択して「編集」をクリックすると、表領域しきい値を変更できます。「しきい値」をクリックすると、「しきい値」プロパティ・ページに移動します。このページで、領域使用率に監視しきい値を設定できます。しきい値に達すると、警告を受信します。デフォルトを使用するか、別のしきい値を指定するか、しきい値の警告を使用不可にできます。データベースの監視の詳細は、第10章「データベースの監視およびチューニング」を参照してください。

「表領域」ページで表領域を選択して「編集」をクリックすると、表領域をオフラインにできます。「表領域の編集」の「一般」ページで「オフライン」を選択して、「適用」をクリックします。

表領域の削除

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

  1. 「管理」ページの「記憶域」セクションで、「表領域」をクリックします。

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

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

    Enterprise Managerによって、表領域および対応するデータファイルをオペレーティング・システムから削除することの確認が要求されます。

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

無駄な領域の再利用

表領域内のオブジェクトに対してDML操作(挿入、更新および削除)を行うたびに、単独では再利用できない小量の空き領域が作成されます。これらの空き領域は、大量の無駄な領域をまとめるために結合できます。その結果、散在するオブジェクトによって、問合せおよびDML操作中のパフォーマンスが低下することがあります。

Oracleデータベースでは、次の方法で無駄な領域を再利用できます。

縮小操作

データは、表の前方部分に集められます。空き領域は、表領域に戻すか、将来の挿入のために表に保存できます。表の縮小操作は、実行中、表に対するDML操作には影響しません。

再編成操作

オブジェクトは、表領域の別の部分で再作成されます。この操作には、オブジェクトが圧縮されるというメリットもあります。ただし、この操作を正常に実行するには、オブジェクトのサイズと同等の空き領域が表領域にすでに存在している必要があります。

セグメント・アドバイザ推奨の表示

セグメント・アドバイザは、再利用可能な未使用領域が含まれている表領域や表などのオブジェクトを識別します。使用状況および増加の統計を調べ、オブジェクト内のデータをサンプリングすることによって、分析を実行します。定期的かつ自動的に実行されるように構成されています。また、手動で実行することもできます。

定期的にスケジュールされたセグメント・アドバイザの実行は、自動セグメント・アドバイザと呼ばれています。アドバイザからの結果は、ホームページの「領域サマリー」セクションに「セグメント・アドバイザ推奨」として要約されます。詳細は、図6-2「ホームページの「領域サマリー」」を参照してください。「セグメント・アドバイザ推奨」ページを開くには、横にあるリンクをクリックします。

図6-2    ホームページの「領域サマリー」


画像の説明

表領域、表、索引などのオブジェクトは1つ以上のセグメントで構成されています。「セグメント・アドバイザ」ページでは、領域使用量が要約され、各表領域の再利用可能な領域の量が見積もられます。このページから、セグメント・レベルにドリルダウンできます。詳細は、図6-3「セグメント・アドバイザ推奨」を参照してください。

縮小操作または再編成操作のいずれかが推奨されます。自動セグメント領域管理で表領域を作成(デフォルト)した場合は、セグメント・アドバイザによって縮小が推奨されます。セグメントを縮小できない場合、または表領域を手動セグメント領域管理で作成した場合は、セグメント・アドバイザによって他の再編成方法が推奨されます。

次の項では、推奨事項の表示方法、および縮小ウィザードを使用したオブジェクトの縮小方法について説明します。

推奨事項の表示およびオブジェクトの縮小を行うには、次の手順を実行します。

  1. 「管理」ページの「領域サマリー」セクションで、「セグメント・アドバイザ推奨」の横にあるリンクをクリックします。図6-2「ホームページの「領域サマリー」」に、そのリンクを示します。

    図6-3「セグメント・アドバイザ推奨」に示す、「セグメント・アドバイザ推奨」ページが表示されます。

    図6-3    セグメント・アドバイザ推奨


    画像の説明

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

    図6-4「「セグメント・アドバイザ」の「推奨事項の詳細」」に示す、「表領域の推奨事項の詳細」ページが表示されます。このページに、縮小可能な表領域セグメントが表示されます。

    図6-4    「セグメント・アドバイザ」の「推奨事項の詳細」


    画像の説明

  3. 次のいずれかの方法を使用して、縮小するセグメントを選択します。

    • 縮小するセグメントの横にある「縮小」をクリックします。

    • 1つ以上のセグメントを選択して、「実装」をクリックします。

    「セグメントの縮小: オプション」ページが表示されます。

    また、この手順で、オブジェクトを再編成するこもできます。これを実行するには、「再編成」ボタンをクリックして、再編成ウィザードを続行します。

  4. セグメントの圧縮と領域の解放」を指定します。この操作によって、表領域に空き領域が戻されます。表領域に空き領域を解放しない場合は、「セグメントの圧縮」を選択します。「実装」をクリックします。

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

  5. ジョブ名に注意してください。ジョブをすぐに実行するには、「開始」で「即時」を選択します。縮小操作ではリソースが集中する可能性があるため、ピーク時以外にこの操作を実行することをお薦めします。また、「後で」を選択し、より適切な時期に操作を実行するようにスケジュールすることもできます。「発行」をクリックします。

    「スケジューラのジョブ」ページが表示されて、ジョブのステータスが示されます。

  6. リフレッシュ」をクリックして、ジョブのステータスが「完了」になるまで更新します。また、「ジョブのステータスの表示」クリックすることもできます。

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

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


参照:

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


データベース用UNDOの管理

この項では、UNDO管理について説明します。これらのタスクには、ロールバック、読取り一貫性およびフラッシュバック機能に対応するために、データベース・トランザクションの変更を十分な期間格納することが含まれます。

データベースをインストールした後は、データベースでこのタスクが自動的に実行されるため、UNDOを直接管理せずにデータベースの構築を開始できます。その後、データベース・アクティビティおよびトランザクション率の増加にともなって、UNDO管理の方法を理解することが役立つようになります。

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

UNDOデータについて

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

UNDO表領域のサイズおよび保存時間

UNDOデータは、UNDO表領域という論理データベース構造に格納されます。UNDO表領域のサイズには制限があるため、トランザクションが発生すると、レコードが上書きされる場合があります。

UNDOデータは、トランザクションがコミットされるまでは保存されます。この時点まで、アクティブな状態になっています。そのため、UNDO表領域で使用できる領域の量は、現行のトランザクションによって生成されるアクティブなUNDOデータを保持するために十分な大きさが必要です。そうしないと、これらのトランザクションの一部が失敗する場合があります。アクティブなUNDOデータがUNDO表領域に格納されると、対応するトランザクションがコミットされるまでUNDOデータが上書きされないことが自動的に確認されます。

トランザクションがコミットされた直後も、UNDOデータは上書きできません。これによって、フラッシュバック機能の適切な動作と、長時間実行されるトランザクションの読取り一貫性が確保されます。たとえば、最長の問合せに15分かかった場合、UNDO表領域は、15分に相当するUNDOデータを保持するために十分な大きさが必要です。

UNDOレコードの保存を制御するために、UNDO保存期間が保持されます。この期間は、UNDOデータが上書きされるまでの時間を示します。UNDO保存期間は、UNDO表領域のサイズに影響します。保存期間を長くすると、より多くの領域が必要となります。

UNDO保存期間は、最も時間のかかる問合せの長さ以上である必要があります。デフォルトでは、UNDO表領域は、実行中のシステム・アクティビティに基づいて、最も時間のかかる問合せに対応するために自動的に拡張されます。ただし、次の場合は、UNDO表領域のサイズを手動で増加する必要があります。

自動UNDO管理

Oracleデータベースは、問合せの実行にかかる時間に基づいて、UNDOデータの適切な保持期間を自動的に判断します。この期間内保存されるUNDOデータは、期限切れでない状態になっています。この後、UNDOが期限切れ状態に変わります。UNDOデータが期限切れ状態である場合のみ、上書き候補になります。

期限切れでない状態でUNDOデータが保存される期間は、表領域の構成によって異なります。DBCAでデータベースを作成すると、UNDO表領域は、デフォルトで自動的に拡張され、期限切れでないUNDOが最も時間のかかる問合せ用に保存されるように設定されます。

固定サイズのUNDO表領域を指定すると、UNDOデータは、指定したサイズの表領域に対してできるかぎり長い期間期限切れでない状態で自動的に保存されます。ただし、現在のトランザクションによって生成されるアクティブなUNDOデータを格納する適切な空き領域または期限切れの領域がUNDO表領域にない場合、期限切れでないUNDOデータが強制的に上書きされる場合があります。この場合、時間のかかる問合せが正常に実行されず、エラーおよびアラートが戻される可能性があります。

時間のかかる問合せが正常に実行されない状況を回避するには、UNDO表領域のサイズを自動的に拡張することをお薦めします。デフォルトでは、表領域は、DBCAを使用してデータベースを構成する際に自動拡張されるように設定されています。

自動拡張を無効にし、表領域のサイズを手動で調整することも選択できます。この場合は、表領域が、時間のかかる問合せの読取り一貫性要件を満たす大きさであることを確認します。また、フラッシュバック機能を使用する場合、表領域は、フラッシュバック機能に対応する大きさである必要があります。Oracle Enterprise Managerには、最適サイズの判断に使用できるUNDOアドバイザが含まれています。詳細は、「UNDOアドバイザの使用」を参照してください。

Enterprise Managerを使用したUNDO管理

Enterprise Managerを使用して、次の手順でUNDOを管理できます。

  1. Database Controlのホームページで、「管理」をクリックします。

    「管理」プロパティ・ページが表示されます。

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

    図6-5に示す、「UNDO管理」ページが表示されます。

    図6-5    「UNDO管理」ページ


    画像の説明

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

このインスタンスの「UNDO表領域」では、表領域の自動拡張機能が有効(デフォルト)の場合、「自動拡張可」フィールドに「はい」が表示されます。UNDO表領域が自動拡張可能で、多くの領域が必要な場合は、表領域のサイズが自動的に拡張されます。UNDO表領域の自動拡張機能と自動チューニングされたUNDO保存を組み合せると、時間のかかる問合せのためのUNDOが保証され、問合せを正常に完了できます。

固定サイズの表領域が存在する場合は、このページから、領域要件の判断および表領域の拡張を開始します。詳細は、「UNDOアドバイザの使用」を参照してください。

「UNDO保存設定」セクションには、最小UNDO保存期間が示されます。UNDO保存期間は自動的にチューニングされますが、最小UNDO保存によって、データベースで許容される最小値を定義できます。データベースを作成すると、最小UNDO保存がデフォルト値に設定されます。フラッシュバック問合せを使用するリカバリ計画を構築する必要がある場合は、この値を変更します。詳細は、「最小UNDO保存期間の設定」を参照してください。

「UNDO管理」ページの「推奨」セクションに、システム・アクティビティに基づいてUNDO表領域のサイズを変更する場合の推奨事項が表示されます。推奨事項とアラートは、固定サイズの表領域を使用し、UNDO領域が十分でないため問合せが正常に実行されなかった場合に表示されます。また、自動拡張表領域を使用している場合にシステムが最大ディスク制限に達すると、同じ推奨事項が表示される場合もあります。

UNDO表領域の拡張が推奨されている場合は、UNOアドバイザを使用してより適切なサイズを判断できます。

UNDOアドバイザの使用

保存可能なUNDOデータの量は、UNDO表領域のサイズによって異なります。自動拡張されるように表領域を設定すると、必要に応じて自動的に領域が取得されます。ただし、自動拡張を無効にした場合は、UNDO表領域に十分な領域があることを確認する必要があります。この場合、UNDO保存は、表領域のサイズの最大許容値に設定されます。

UNDOアドバイザは、様々な最大UNDO保存の値に適したUNDO表領域のサイズを判断するために、様々な使用例を分析する際に役立ちます。この分析は、次の場合に必要です。

UNDOアドバイザからのアドバイスの表示

UNDOアドバイザを使用すると、UNDO表領域のより適切なサイズを判断して、問合せを正常に実行できます。次の手順に従って、表領域の必要な新しいサイズを判断します。

  1. アプリケーションの特性に応じて、時間のかかる問合せの実行時間を判断します。この実行時間がチューニングされた保存より長い場合は、時間のかかるこれらの問合せでエラーが発生します。この場合は、UNDO表領域が小さすぎます。表領域を自動拡張に設定するか、手動で拡張する必要があります。

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

    図6-5に示す、「UNDO管理」ページが表示されます。

  3. UNDOアドバイザ」をクリックします。

    「UNDOアドバイザ」ページが表示されます。ページの最上部に、自動チューニングされた現在のUNDO保存時間およびUNDO表領域サイズが表示されます(図6-6を参照)。

  4. 「アドバイザ」セクションの「新規UNDO保存」フィールドで、最も時間のかかる問合せの値を指定します。

  5. 分析期間」リストから、ビジネス・サイクルを最もよく表している期間を選択します。

    「分析」セクションには、新規UNDO保存の必須表領域サイズが表示されます。

たとえば、25MBの固定サイズの表領域が存在するとします。最も時間のかかる問合せは60分であると判断します。この数値を「新規UNDO保存」フィールドに入力します(図6-6を参照)。アドバイザによって、この問合せに対応するために10MBの領域が推奨されます。表領域が25MBであるため、UNDO表領域は適切に構成されます。

図6-6    固定サイズの表領域でのUNDOアドバイザ


画像の説明

また、「UNDO保存期間によって必要な表領域サイズ」グラフに、保存期間とUNDO表領域サイズの関係が表示され、「自動チューニングされたUNDO保存」および「可能な最適のUNDO保存」のような主要なデータ・ポイントが強調表示されます。

UNDO表領域の拡張

表領域の自動拡張が有効で、領域不足である場合、システムはUNDO表領域のサイズを自動的に拡張します。ただし、表領域の自動拡張機能が無効の場合、手動でUNDO表領域を拡張する必要があります。この情報は、UNDOアドバイザでの計画中に事前に検出できます。詳細は、「UNDOアドバイザの使用」を参照してください。

また、UNDO表領域アラート(警告またはクリティカル)、問合せが長すぎるというアラートまたはスナップショットが古すぎるというエラーが表示された場合も、UNDO表領域を拡張する必要があります。

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

  1. 「UNDO管理」ページで、「UNDO表領域の編集」をクリックします。

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

  2. 拡張するデータファイルを選択して、「編集」をクリックします。

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

  3. ファイル・サイズ」フィールドに、新しいデータファイル・サイズを入力します。

    また、「記憶域」の下の「フルになった場合に自動的にデータファイルを拡張(AUTOEXTEND)」を有効にして増分サイズを指定すると、システムで自動的にデータファイルを拡張できます。

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

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

  5. 「データファイル」で、「適用」をクリックします。

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

最小UNDO保存期間の設定

フラッシュバック問合せまたはフラッシュバック表機能を使用していて、過去の時点に戻るようにフラッシュバック・リカバリ計画を構成する必要がある場合は、次の手順に従って、最小UNDO保存を構成します。

  1. 「UNDOアドバイザ」ページの「新規UNDO保存」フィールドに、新しい保存期間を入力します。

    フラッシュバック問合せおよびフラッシュバック表を構成するには、戻る必要がある過去の時点と同等の値を設定します。たとえば、8時間のフラッシュバック・リカバリ計画が必要な場合は、最小保存を8時間に設定します。

  2. OK」をクリックします。

また、「すべての初期化パラメータ」ページに移動して、他のシステム・パラメータに対して同様にこのパラメータを設定することができます。undo_retentionというパラメータを設定します。このページの詳細は、「初期化パラメータの表示および変更」を参照してください。

データベース記憶域構造の変更

インストールした事前構成済データベースには、基本データベースのすべてのデータベース構造が含まれています。ユーザー・ベースが拡張されると、既存のデータベース記憶域構造を拡張するか、または追加のデータベース記憶域構造を作成できます。たとえば、ユーザーまたはアプリケーション用の追加の表領域を作成したり、追加のオンラインREDOログ・グループを作成してREDOログの容量を拡張する必要がある場合があります。

Oracleでは、アラート、アドバイザ機能およびデータベース記憶域に関する決定を行う場合に有効な監視ページが提供されます。これらについては、第10章「データベースの監視およびチューニング」を参照してください。Oracleでは、監視する他のイベント用に独自のアラートを作成できます。

「記憶域オプション」に示す「記憶域」セクションのリンクは、データベース記憶域構造を変更するために使用するリンクです。他のページにも、データベース記憶域構造に影響する特定の操作を実行できるリンクが含まれています。

たとえば、「メンテナンス」ページには、「バックアップ/リカバリ設定」セクションが含まれています。このセクションには、データベースのアーカイブ・モードの変更およびREDOログ・ファイルの作成のためのリンクが含まれています(「基本的なバックアップおよびリカバリのためのデータベース構成」を参照してください)。

データベースの記憶域構造を変更した場合は、これらの変更をデータ・ディクショナリおよび制御ファイルに反映できます。バックアップおよびリカバリ計画では、このことを考慮する必要があります。詳細は、第9章「バックアップおよびリカバリの実行」を参照してください。

記憶域: Oracle by Example Series

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

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

http://www.oracle.com/technology/obe/10gr2_2day_dba/storage/storage.htm

戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

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