6 データベース記憶域構造の管理
6.1 データベース記憶域構造について
Oracle Databaseは物理構造および論理構造で構成されます。データをディスクに保存する物理ファイルなどの物理構造は、オペレーティング・システムから表示して操作できます。
論理構造はOracle Databaseによって作成され、認識されますが、オペレーティング・システムとは関係がありません。データベースにおける主要な論理構造(表領域)には、物理ファイルがあります。アプリケーション開発者またはユーザーは、論理構造を意識することはありますが、物理構造には注意を払いません。データベース管理者(DBA)は、データベースの物理構造と論理構造の関係を理解する必要があります。
図6-1は、論理構造と物理構造の関係を示しています。また、この図は、オプションで高速リカバリ領域に保持されるリカバリ関連の構造も示しています。詳細は、「高速リカバリ領域」を参照してください。
Oracle Databaseでは、構造管理の大部分を自動化できます。Oracle Enterprise Manager Database Express (EM Express)には、データベースをより簡単に管理および監視できるようWebベースのグラフィカル・ユーザー・インタフェース(GUI)が用意されています。
物理的に見て、マルチテナント・コンテナ・データベース(CDB)の構造は基本的に非CDBと同じですが、各プラガブル・データベース(PDB)に独自の表領域のセット(独自のSYSTEM
およびSYSAUX
表領域を含む)とデータ・ファイルがある点が異なります。
CDBには次のファイルが含まれています。
-
1つの制御ファイル
-
1つのオンラインREDOログ
-
1セット以上の一時ファイル
-
1セットのUNDOデータ・ファイル
-
コンテナごとの一連のシステム・データ・ファイル
-
0セット以上のユーザー作成データ・ファイル
この項では、様々なデータベース記憶域構造に関するバックグラウンド情報を提供します。次の項目が含まれます。
関連項目:
-
データベース記憶域構造の詳細は、『Oracle Database概要』を参照してください
-
CDBおよびPDBの概要は、Oracle Multitenant管理者ガイドを参照してください
-
CDBのデータベース・ファイルの詳細は、『Oracle Multitenant管理者ガイド』を参照してください
6.1.1 制御ファイルについて
任意の制御ファイルに問題が発生した場合、データベースは使用できなくなります。ただし、制御ファイルのコピーがあれば、データベースを停止して、問題が発生した制御ファイルをコピーから再作成し、データベースを再起動できます。他のオプションとして、CONTROL_FILES
初期化パラメータから問題が発生した制御ファイルを削除し、残っている制御ファイルを使用してデータベースを再起動する方法があります。
関連項目:
-
制御ファイルの概要は、『Oracle Database概要』を参照してください
-
制御ファイルの詳細は、Oracle Database管理者ガイドを参照
6.1.2 オンライン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
です。
データベース・ログ・ライター・プロセス(LGWR)は、そのグループのログ・ファイルが記憶域サイズの制限に達するまで、またはログ・スイッチ操作が要求されるまで、メモリー・バッファのREDOレコードをREDOログ・グループに書き込みます。次に、LGWRプロセスでは次のログ・グループに対して書込みを行います。最も古いグループが最新のREDOレコードによって上書きされるように、このアクションはLGWRプロセスにより循環方式で実行されます。
関連項目:
-
オンラインREDOログの概要は、『Oracle Database概要』を参照してください
-
REDOログの詳細は、Oracle Database管理者ガイドを参照
6.1.3 アーカイブREDOログ・ファイルについて
これらのアーカイブREDOログ・ファイルにより、保存してリカバリに使用できるREDOデータの量が増えます。アーカイブREDOログ・ファイルは、データベースのバックアップを、バックアップ時点から現時点までリカバリするために必要です。データベースに対するアーカイブは、有効にも無効にもできますが、有効にすることを強くお薦めします。また、高速リカバリ領域にアーカイブREDOログ・ファイルを書き込むようにデータベースを構成することをお薦めします。
関連項目:
-
アーカイブREDOログ・ファイルの概要は、『Oracle Database概要』を参照してください
-
アーカイブREDOログ・ファイルの詳細は、Oracle Database管理者ガイドを参照
-
REDOログのアーカイブの有効化の詳細は、「リカバリ設定の構成」を参照してください
-
高速リカバリ領域のバックグラウンド情報の詳細は、「高速リカバリ領域」を参照してください
6.1.4 ロールバック・セグメントについて
ノート:
Oracle Databaseでは、SYSTEM
ロールバック・セグメントを使用して、システム・トランザクションを実行します。このロールバック・セグメントはデータベース作成時に自動的に作成され、インスタンス起動時に必ずオンラインになります。また、SYSTEM
表領域に存在します。SYSTEM
ロールバック・セグメントの管理のために操作を実行する必要はありません。
6.1.5 データファイルについて
データファイルは次のコンポーネントに分類できます。
-
セグメントにはデータベース・オブジェクトの特定のタイプが含まれます。たとえば、表が表セグメントに格納され、索引が索引セグメントに格納されます。データファイルは複数のセグメントを含むことができます。
-
エクステントはセグメント内のデータ・ブロックの連続したセットです。Oracle Databaseはセグメントの領域を1つのエクステント単位に割り当てます。セグメントの既存のエクステントが一杯である場合、データベースはそのセグメントに対して別のエクステントを割り当てます。
-
データベース・ブロックとも呼ばれる、データ・ブロックは、データベース記憶域のI/Oの最小単位です。エクステントは複数の連続するデータ・ブロックから構成されます。データベースではデータベース作成時のデフォルトのブロック・サイズが使用されます。
データベースが作成されたら、データベースを再作成しないかぎりデフォルトのブロック・サイズは変更できません。しかしデフォルトのブロック・サイズと異なるブロック・サイズの表領域を作成することは可能です。
セグメント、エクステントおよびデータ・ブロックはすべて論理構造です。ファイル内のデータ・ブロック数を判別できるのはOracle Databaseのみです。オペレーティング・システムは、ファイルとオペレーティング・システム・ブロックのみを認識し、Oracle Databaseファイル内のデータ・ブロック数を認識しません。各データ・ブロックは、1つ以上のオペレーティング・システム・ブロックにマッピングされます。
関連項目:
-
データファイルの詳細は、Oracle Database管理者ガイドを参照
-
セグメント、エクステントおよびブロックの詳細は、Oracle Database概要を参照
6.1.6 表領域について
データベースは、関連する論理構造(表、ビュー、その他のデータベース・オブジェクトなど)をグループ化した、表領域と呼ばれる論理記憶域の単位に分割されます。たとえば、すべてのアプリケーション・オブジェクトは単一の表領域にグループ化され、メンテナンス操作が簡素化されます。
表領域は、1つ以上の物理データファイルで構成されます。表領域に割り当てられたデータベース・オブジェクトは、その表領域の物理データファイルに格納されます。
Oracle Databaseを作成してある場合、SYSTEM
、SYSAUX
などの表領域はすでに存在します。
表領域は記憶域にデータの位置を物理的に決定するための方法です。表領域を構成するデータファイルを定義するときに、これらのファイルに対して記憶域の場所を指定します。たとえば、指定したホスト・ディレクトリ(特定のディスク・ボリュームのこと)または指定したOracle Automatic Storage Managementディスク・グループとして、特定の表領域のデータファイルの場所を指定します。スキーマ・オブジェクトはその表領域に割り当てられ、指定された記憶域の場所に位置を決定します。表領域はバックアップおよびリカバリのユニットの提供も行います。Oracle Databaseのバックアップおよびリカバリの特長は表領域のレベルでバックアップまたはリカバリを有効にすることです。
表6-1に、データベースに含まれている一部の表領域を示します。
表6-1 表領域および説明
表領域 | 説明 |
---|---|
|
この表領域には、Oracle Databaseに含まれているサンプル・スキーマがあります。サンプル・スキーマにより、共通のプラットフォームが例として提供されます。オラクル社のドキュメントおよび入門資料には、サンプル・スキーマに基づいた例が含まれています。 |
|
この表領域は、データベース作成時に自動的に作成されます。Oracle Databaseはこの表領域を使用してデータベースを管理します。表領域にはデータ・ディクショナリ(特定のデータベース対象の読取り専用の参照として使用される主な表およびビューをまとめたもの)があります。また表領域にはデータベースに関する管理情報を含む様々な表およびビューがあります。これらはすべて |
|
これは
自動ワークロード・リポジトリおよびOracle Textのインストール時にデフォルト表領域として |
|
この表領域には、SQL文の処理中に生成された一時データが格納されています。たとえば、この表領域は問合せの格納に使用されます。すべてのデータベースに一時表領域が存在し、ユーザーの一時表領域として割り当てられます。事前構成されたデータベースでは、 |
|
これはデータベースがUNDO情報の保存に使用するUNDO表領域です。「UNDOデータの管理」を参照してOracle DatabaseがUNDO表領域を使用する方法を理解してください。どのデータベースにもUNDO表領域が必要です。 |
|
この表領域は永続的なユーザー・オブジェクトおよびデータの格納に使用します。すべてのデータベースが、 |
新規の表領域を作成して、ユーザーおよびアプリケーション・データ要件をサポートできます。表領域作成時に、次のパラメータを設定します。
関連項目:
-
「表領域の作成」
-
「表領域の変更」
-
表領域の概要は、『Oracle Database概要』を参照してください
6.1.6.1 ローカル管理表領域
6.1.6.2 表領域のタイプ
-
永続的
永続表領域を使用して、ユーザーおよびアプリケーション・データを格納します。Oracle Databaseでは、永続表領域を使用して、システム・データなどの永続データが格納されます。各ユーザーにデフォルトの永続表領域が割り当てられます。
-
自動UNDO管理モードで実行されているデータベースは、UNDO表領域にUNDOデータを透過的に作成し、管理します。Oracle Databaseでは、トランザクションのロールバック、読取り一貫性、データベース・リカバリ、およびOracle Flashback Queryなどの機能を提供する目的でUNDOデータが使用されます。データベース・インスタンスが持つことができるアクティブなUNDO表領域は1つのみです。
-
一時
一時表領域は、SQL文によるソート処理の実行時に作成されるような一時的なデータの保存に使用されます。Oracle Databaseは、データベースの作成時に一時表領域を確保します。一時表領域グループを作成する場合は、さらに一時表領域を作成します。一般的な状況では、追加の一時表領域を作成する必要はありません。極度に大きなデータベースがある場合に、追加の一時表領域を構成することをお薦めします。
物理ファイルはデータファイルとは対照的に一時ファイルと呼ばれる一時表領域を構成します。
TEMP
表領域は通常、一時表領域を明示的に割り当てられていないユーザーに対するデフォルトの一時表領域として使用します。
関連項目:
-
一時表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。
-
UNDO表領域の詳細は、『Oracle Database概要』を参照してください。
6.1.6.3 表領域のステータス
-
読取り/書込み
表領域が作成された後、ユーザーは読取りや書込みを行えます。これはデフォルトです。
-
読取り専用
表領域が読取り専用で作成された場合、ステータスが読取り/書込みに変更されないと表領域への書込みはできません。読取り専用で表領域を作成することはまずありませんが、変更を避けたい場合、データ書込み後にステータスを変更する場合があります。
-
オフライン
表領域のステータスがオフラインの場合、ユーザーは表領域にアクセスできません。たとえば、ある表領域に関連付けられているデータファイルでメンテナンスまたはリカバリを実行する前に、その表領域のステータスをオフラインに変更します。
6.1.6.4 表領域の自動拡張
ノート:
表領域に対して自動拡張というのは一般的ですが、自動拡張はデータファイルのプロパティであって表領域のプロパティではありません。つまり、表領域を構成するデータファイルを作成するときに、これらのデータファイルを自動的に拡張するかどうかを指定します。自動拡張するデータファイルを持つ表領域を自動拡張表領域とみなします。自動拡張データファイルの最大サイズを指定できます。
6.1.6.5 暗号化された表領域
永続表領域を暗号化して機密データを保護できます。表領域を暗号化すると、すべての表領域ブロックが暗号化されます。暗号化は、表、クラスタ、索引、LOB、表パーティション、索引パーティションなどを含むすべてのセグメント・タイプに対してサポートされています。表領域の暗号化はアプリケーションに対して完全に透過的であるため、アプリケーションの変更は不要です。
関連項目:
表領域の暗号化の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
6.1.7 その他の記憶域構造について
Oracle Databaseに存在する他の記憶域構造は初期化パラメータ・ファイル、パスワード・ファイルおよびバックアップ・ファイルを含みます。
初期化パラメータ・ファイル
起動時のOracleインスタンスによって初期化パラメータが使用され、データベースのランタイム・プロパティおよびリソースが決定されます。一部のパラメータは、データベース実行中に設定または変更できます。他の初期化パラメータは、変更を有効にするためにデータベースを再起動する必要があります。「初期化パラメータの表示と変更」を参照してください。
パスワード・ファイル
データベースでは、パスワード・ファイルを使用して、SYSDBA
、SYSOPER
およびSYSBACKUP
権限を持つ管理ユーザーを認証できます。これらの権限のいずれかを使用してデータベースにリモート接続するには、パスワード・ファイルが必要です。これらの権限によりDBAは、データベースを起動および停止し、データベースをバックアップおよびリカバリし、その他の高水準の管理タスクを実行できます。このパスワード・ファイルはデータベース自身の外部にあるため、データベースが起動されていないときにDBA認証を有効化します。(DBAはデータベースを起動する前に認証する必要があります。)
Oracle Databaseのインストール・プロセスの一部としてDBCAを起動する場合、DBCAはSYS
ユーザーの1エントリにつき、1つのパスワード・ファイルを作成します。SYSDBA
、SYSOPER
またはSYSBACKUP
をユーザーに付与すると、そのユーザーが自動的にパスワード・ファイルに追加されます。
ノート:
Oracle Databaseは、オペレーティング・システム認証を使用して、SYSDBA
、SYSOPER
およびSYSBACKUP
権限でユーザーを認証することもできます。オペレーティング・システム認証は、パスワード・ファイル認証より優先されます。「SQL*Plusの起動およびデータベースへの接続」を参照してください。
バックアップ・ファイル
バックアップ・ファイルは、厳密にはデータベース・ファイルではありません。データの損失を伴う障害が発生した場合にデータベースのリカバリに使用可能な、特定の形式でのデータベースのコピーです。
関連項目:
-
初期化パラメータおよび初期化パラメータ・ファイルの詳細は、「Oracleインスタンスの管理」を参照してください
-
バックアップ・ファイルの詳細は、「バックアップおよびリカバリの実行」を参照してください
-
パスワード・ファイルおよびオペレーティング・システム認証の詳細は、Oracle Database概要を参照
-
バックアップとリカバリの概要は、『Oracle Database概要』を参照してください
6.2 データベース記憶域構造の情報の表示
データベース内の記憶域構造の管理に役立つよう、この項では、Oracle Enterprise Manager Database Express (EM Express)を使用して、様々なデータベース記憶域構造に関する情報を表示する手順を示します。
この項では、次の項目について説明します。
6.2.1 制御ファイルの情報の表示
Oracle Enterprise Manager Database Express (EM Express)を使用して、制御ファイルの位置情報とステータス情報を表示できます。
ノート:
マルチテナント・コンテナ・データベース(CDB)では、EM Expressの制御ファイル情報は、プラガブル・データベース(PDB)ではなく、ルートでのみ提供されます。
制御ファイルの情報を表示するには:
関連項目:
6.2.2 オンラインREDOログ・ファイルの情報の表示
Oracle Enterprise Manager Database Express (EM Express)を使用して、オンラインREDOログ・ファイルのステータスおよび多重化情報を表示します。
ノート:
マルチテナント・コンテナ・データベース(CDB)では、EM ExpressのオンラインREDOログ・ファイル情報は、プラガブル・データベース(PDB)ではなく、ルートでのみ提供されます。
オンラインREDOログ・ファイル情報を表示するには:
関連項目:
6.2.3 アーカイブREDOログ・ファイルの情報の表示
Oracle Enterprise Manager Database Express (EM Express)を使用して、アーカイブREDOログ・ファイルのステータス情報を表示します。
ノート:
マルチテナント・コンテナ・データベース(CDB)では、EM ExpressのアーカイブREDOログ・ファイル情報は、プラガブル・データベース(PDB)ではなく、ルートでのみ提供されます。
ノート:
ARCHIVELOG
モードでデータベースを設定しないと、アーカイブREDOログ・ファイルは存在しません。
アーカイブREDOログ・ファイル情報を表示するには:
6.3 一般的なデータベース記憶域タスクの実行
6.3.1 表領域の作成
USERS
表領域内に格納されているとはかぎりません。次のような場合に表領域を追加作成します。
-
特定のユーザー、ユーザー・グループまたはアプリケーションに関して、すべてのアプリケーション・データを、バックアップおよびリカバリまたはメンテナンス目的で、別々の表領域または表領域のセットに保持することが有効な場合があります。たとえば、ハードウェアまたはソフトウェアの障害のためにバックアップからすべてのアプリケーション・データをリカバリする場合、オフライン・リストアを実行できます。アプリケーション・データを個別の表領域に保持すると、他のデータベース・アプリケーションの操作に影響を与えることなく、該当する表領域のみをオフラインにしてリカバリできます。
-
これらの大きいパーティション化された表を持つ一部のアプリケーションは、複数の表領域でデータ分散を行うことで利点があります。頻繁にアクセスされるデータはパフォーマンスの高いディスクに配置され、めったに検索されないデータはより費用のかからない記憶域に配置されます。このデータを分散する方法は使用可能な記憶域の最適な使用方法です。
表領域を作成するには、次のようにします。
関連項目:
「表領域について」
6.3.2 表領域の変更
この項では、次の項目について説明します。
関連項目:
「表領域について」
6.3.2.1 表領域を自動拡張に設定
Oracle Enterprise Manager Database Express (EM Express)を使用して、表領域がサイズ制限に達したときに自動的に拡張するよう設定できます。次の手順では、表領域が以前は自動拡張する表領域ではなかった場合を想定します。
ノート:
bigfile表領域のみ自動的に拡張できます。ただし、小さいファイルの表領域の個々のデータファイルは自動的に拡張可能です。小さいファイルの表領域の個々のデータファイルを自動拡張に設定する手順については、「小さいファイルの表領域のデータファイルを自動拡張に設定」を参照してください。
自動拡張する表領域を設定するには:
-
EM Expressの「記憶域」メニューから「表領域」を選択します。
「表領域」ページが表示されます。
-
自動拡張を有効にするbigfile表領域を選択し、「自動拡張の編集」をクリックします。
BIGFILE表領域の自動拡張設定ページが表示されます。
-
ステップは次のとおりです。
-
「自動拡張」を選択します。
-
10MBなど適切な増分を設定します。
これは多くの記憶域が必要な際に、データファイルに追加するディスク領域の量です。
-
「最大ファイル・サイズ」に、使用可能な記憶域に応じて値(KB、MB、GBまたはTB)を入力します。
-
-
「OK」をクリックします。
確認メッセージが表示されます。
6.3.2.2 小さいファイルの表領域のデータファイルを自動拡張に設定
Oracle Enterprise Manager Database Express (EM Express)を使用して、小さいファイルの表領域のデータファイルがサイズ制限に達したときに自動的に拡張するよう設定できます。次の手順では、データファイルが以前は自動拡張するデータファイルではなかった場合を想定します。
自動拡張するデータファイルを設定するには:
-
EM Expressの「記憶域」メニューから「表領域」を選択します。
「表領域」ページが表示されます。
-
小さいファイルの表領域の場合、自動拡張を有効にするデータファイルを選択し、「アクション」メニューから「自動拡張の編集」を選択します。
データファイルの自動拡張設定ページが表示されます。
-
ステップは次のとおりです。
-
「自動拡張」を選択します。
-
10MBなど適切な増分を設定します。
これは多くの記憶域が必要な際に、データファイルに追加するディスク領域の量です。
-
「最大ファイル・サイズ」に、使用可能な記憶域に応じて値(KB、MB、GBまたはTB)を入力します。
-
-
「OK」をクリックします。
確認メッセージが表示されます。
-
小さいファイルの表領域のすべてのデータファイルに対してこれらのステップを実行すると、すべてのデータファイルを自動拡張に設定できます。
6.3.2.3 表領域をオフライン化
Oracle Enterprise Manager Database Express (EM Express)を使用して、表領域をオフラインにすることができます。次のような場合、表領域をオフライン化する場合があります。
-
データベースの一部をアクセス不可にし、残りの部分は通常どおりアクセスできるようにする場合
-
アプリケーションの更新またはメンテナンスを行う間、アプリケーションとその表グループを一時的にアクセス不可にする場合
-
表領域のバックアップをオフラインで実行する場合(ただし、表領域はオンラインでも、使用中でもバックアップ可能です)
-
ハードウェアまたはソフトウェア障害の後に表領域をリカバリする場合
-
表領域のデータファイルの名前の変更または再配置をする場合
表領域をオフライン化するには、次のようにします。
ノート:
表領域をオンラインに戻すには、表領域ページで表領域を選択します。次に、「アクション」メニューから「ステータスの設定」を選択してから、「オンラインに設定」を選択します。
関連項目:
表領域のオフライン化、およびデータファイルの名前の変更または再配置の詳細は、『Oracle Database管理者ガイド』を参照してください。
6.3.3 表領域の削除
表領域を削除するには、次のようにします。
関連項目:
「表領域について」
6.4 オンラインREDOログの管理
オンラインREDOログは、適切に構成すればメンテナンスはほとんど必要ありません。この項では、より一般的なREDOログ管理作業について説明します。次の項目が含まれます。
ノート:
マルチテナント・コンテナ・データベース(CDB)では、Oracle Enterprise Manager Database Express (EM Express)のオンラインREDOログ・ファイル情報は、プラガブル・データベース(PDB)ではなく、ルートでのみ提供されます。
関連項目:
6.4.1 オンラインREDOログの多重化
オンラインREDOログは、多重化することをお薦めします。多重化を行うと、インスタンス障害やメディア障害の場合にデータをより効果的に保護できます。オンラインREDOログはOracle Enterprise Manager Database Express (EM Express)を使用して多重化できます。
オンラインREDOログを多重化するには、各オンラインREDOログ・グループにメンバーを追加する必要があります。オンラインREDOログ・グループが対称である必要はありませんが、すべてのグループのメンバーを同じ数にすることをお薦めします。単一のデータベースは2つ以上のオンラインREDOログ・グループを持つ必要があります。
ノート:
オンラインREDOログを多重化する場合、データベースの実行I/Oの量を増やす必要があります。構成によっては、データベースのパフォーマンス全体に影響が及ぶ可能性があります。
オンラインREDOログを多重化するには:
6.4.2 ログ・ファイルの切替え
現在のREDOグループを非アクティブにして、REDOログのメンテナンス操作に使用できるようにするため、ログ・スイッチを強制的に実行することができます。強制的なログ・スイッチの実行は、一杯になるまでに時間がかかる大きいサイズのREDOログ・ファイルがある構成に有効です。たとえば、次の処理を実行できます。
-
現在のREDOグループを削除するが、グループが非アクティブになるまで削除できない場合。
-
現在のオンラインREDOログ・グループ・メンバーを、まだ完全に一杯になっていなくてもすぐにアーカイブする場合。
ログ・ファイルを切り替えるには:
6.5 UNDOデータの管理
この項では、UNDOデータの管理に関するバックグラウンド情報を提供し、UNDOデータの管理方法について説明します。次の項目が含まれます。
6.5.1 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概要を参照
6.5.2 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 Express (EM Express)には、固定サイズのUNDO表領域の最小サイズを算出できるUNDOアドバイザが用意されています。「UNDOアドバイザを使用したUNDO表領域の最小サイズの計算」を参照してください。
-
6.5.3 UNDO情報の表示
-
UNDO表領域の名前および現行サイズ
-
表領域の自動拡張可設定(「はい」または「いいえ」)
-
既存のUNDO保存期間
ノート:
マルチテナント・コンテナ・データベース(CDB)では、EM ExpressのUNDO管理機能は、プラガブル・データベース(PDB)ではなく、ルートでのみ使用できます。
UNDO情報を表示するには:
6.5.4 UNDOアドバイザを使用したUNDO表領域の最小サイズの計算
UNDO表領域を固定サイズに変更する必要がある場合、Oracle Enterprise Manager Database Express (EM Express)のUNDOアドバイザを使用すると、最小限必要なサイズを確認しやすくなります。UNDOアドバイザを使用して、最小UNDO保存期間を設定することもできます。
UNDO表領域を固定サイズに構成する場合は、まずデータベース作成後に十分な時間をかけて完全なワークロードを実行することをお薦めします。これにより、UNDO表領域がワークロードを処理するための必要最小限のサイズになります。その後、UNDOアドバイザを使用して、将来の長時間実行問合せやOracleフラッシュバック操作に対応できるUNDO表領域を構成する最適なサイズを決定してください。
UNDOアドバイザを使用してUNDO表領域の最小サイズを計算するには、次のようにします。
関連項目:
6.5.5 UNDO表領域の固定サイズへの変更
UNDO表領域が大きくなりすぎるのを防ぐため、またはOracleフラッシュバック操作のサポートを強化するために、UNDO表領域を固定サイズに変更します。Oracle Enterprise Manager Database Express (EM Express)を使用して、UNDO表領域を固定サイズに変更できます。
ノート:
bigfile表領域のみ固定サイズに変更できます。ただし、小さいファイルの表領域の個々のデータファイルは固定サイズに変更可能です。小さいファイルの表領域の個々のデータファイルを固定サイズに変更する手順については、「UNDO表領域のデータファイルの固定サイズへの変更」を参照してください。
UNDO表領域を固定サイズに変更するには:
関連項目:
6.5.6 UNDO表領域のデータファイルの固定サイズへの変更
UNDO表領域が大きくなりすぎるのを防ぐため、またはOracle Flashback操作のサポートを強化するために、UNDO表領域のデータファイルを固定サイズに変更します。Oracle Enterprise Manager Database Express (EM Express)を使用して、UNDO表領域のデータファイルを固定サイズに変更できます。
UNDO表領域のデータファイルを固定サイズに変更するには:
6.5.7 UNDO管理の分析パラメータの変更
Oracle Enterprise Manager Database Express (EM Express)を使用して、現在の分析期間および目的のUNDO保存期間を変更できます。
分析期間およびUNDO保存期間を変更するには:
6.5.8 UNDO表領域の切替え
Oracle Enterprise Manager Database Express (EM Express)を使用して、UNDO表領域を切り替えることができます。
UNDO表領域を切り替えるには:
関連項目:
-
UNDO表領域の切替えの詳細は、『Oracle Database管理者ガイド』を参照してください
6.6 データベース記憶域構造の管理: Oracle by Example Series
Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEシリーズでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。
-
データベース記憶域構造の情報の表示
-
オンラインREDOログの管理
-
UNDOデータの管理
-
EM Expressを使用した表領域の管理
-
前述のチュートリアルのクリック可能なリストを表示するには、「データベース記憶域構造の管理シリーズ」に移動します。
-
チュートリアル・シリーズを介してシームレスにナビゲートするには、次のリンクにアクセスしてください。
ペイン下部にある「>」ボタンをクリックして、チュートリアル間を移動できます。