UNDO表領域(UNDO TABLESPACE)とは?

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース運用 Oracle表領域管理

UNDO表領域(UNDO TABLESPACE)とは?


スポンサードリンク



UNDO表領域(UNDO TABLESPACE)とは?


本項では、UNDO表領域について解説してます。

UNDO表領域の概要
Oracle Databaseの変更をロールバックするための情報を格納する領域がUNDO表領域です。すべてのOracle Databaseには、データベースの変更をロールバックまたは取り消すために使用する情報の管理方法が必要です。これらの情報は、主にコミットされる前のトランザクションの処理レコードから構成されます。これらのレコードを総称してUNDOと呼びます。

<UNDOレコードの利用される場面>

 ・トランザクションのロールバック
ROLLBACK文を発行すると、コミットされていないトランザクションによってデータベースに加えられた変更が、UNDOレコードを使用して取り消されます。

 ・データベースリカバリ
データベース・リカバリ時は、REDOログからデータ・ファイルに適用されたコミットされていない変更が、UNDOレコードを使用してすべて取り消されます。

 ・読み込み一貫性
UNDOレコードは、あるユーザーがデータを変更しているときに同じデータに同時にアクセスしようとしている別のユーザーのために、そのデータの変更前のイメージを維持することによって読込み一貫性を提供します。

生成されたUNDOデータは、トランザクションのロールバックに備えて保存しているデータであるため、トランザクションがコミット文によって確定すると、UNDOデータには不要のマークが付けられます。ただし、UNDOデータは、トランザクションのロールバック以外にも、「読み取り一貫性機能」、「フラッシュバック機能」などでも利用されます。これらの機能はコミット済みのUNDOデータにもアクセスする可能性があるのですが、アクセスしたデータがすでに削除されていた場合、「ORA-1555:スナップショットが古すぎます」エラーが発生します。ORA-1555エラーを回避するために、UNDO_RETENTIONパラメータを使用し、UNDOを保存する期間を指定することができます。具体的には、トランザクションのコミット後にUNDOデータを保持する期間をUNDO_RETENTIONパラメータに指定します。



UNDOの保存期間
トランザクションがコミットされると、ロールバックまたはトランザクション・リカバリの実行にUNDOデータは不要になります。しかし、長時間実行の問合せ中にデータ・ブロックの変更前のイメージを生成する場合は、読込み一貫性を保証するために古いロールバック情報が必要になることがあります。

UNDOの最小保存期間(秒単位)を指定するには、UNDO_RETENTION初期化パラメータを設定します。 UNDO表領域に新しいトランザクション用の空き領域がある場合、データベースは、指定された最小UNDO保存期間を維持しようとします。 新しいトランザクション用の空き領域が不足すると、データベースは、期限切れのUNDOの上書きを始めます。 すべての期限切れUNDOの上書き後、UNDO表領域に新しいトランザクション用の領域がなくなると、期限切れでないUNDO情報の上書きが行われる場合があります。 現行の長時間実行問合せの読取り一貫性で、いずれかの上書きされたUNDO情報が必要になった場合、問合せが「スナップショットが古すぎます。」エラー・メッセージで失敗する可能性があります。

<表領域が固定と自動拡張の場合の保存期間>

 ・固定
固定サイズのUNDO表領域の場合、UNDO_RETENTIONパラメータは無視されます。 表領域の空き領域が少なくなると、データベースによって期限切れでないUNDO情報が上書きされる場合があります。

 ・自動拡張
AUTOEXTENDオプションが有効なUNDO表領域の場合、データベースは、UNDO_RETENTIONによって指定された最小保存期間を維持しようとします。 空き領域が少なくなると、期限切れでないUNDO情報を上書きするかわりに、表領域が自動的に拡張されます。 自動拡張可能なUNDO表領域に対してMAXSIZE句が指定されている場合、最大サイズに到達すると、データベースは期限切れでないUNDO情報の上書きを開始する場合があります。

※初期化パラメータUNDO_MANAGEMENTを「AUTO」に設定し、自動UNDO管理を有効にすると自動で最適なUNDO保存期間をチューニングしてくれます。


スポンサードリンク




    ◎-表領域の概要と管理

    ◎-UNDO表領域(UNDO TABLESPACE)とは?

    ◎-一時表領域(TEMPORARY TABLESPACE)とは?

    ◎-Oracle表領域の作成(CREATE TABLESPACE)

    ◎-Oracle表領域の変更(ALTER TABLESPACE)

    ◎-Oracle表領域の削除(DROP TABLESPACE)

    ◎-SYSTEM表領域が増加する理由

    ◎-SYSAUX表領域が増加する理由

    ◎-表領域の使用率と空き領域確認方法

    ◎-表領域の物理データファイル確認方法

    ◎-表領域拡張手順(データファイル追加)

    ◎-表領域縮小可能サイズ確認手順

    ◎-表領域縮小手順(resize)





スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved