UNDO表領域の管理

自動UNDO管理

自動UNDO管理のパラメータ

UNDO_MANAGEMENT:デフォルトはMANUAL。AUTOの場合は自動管理を有効にする。
UNDO_TABLESPACE:UNDO表領域の名前を指定する動的パラメータ(オプション)。

UNDOの保存期間

UNDO_RETENTION:デフォルトは900秒。

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

CREATE DATABASE文またはCREATE UNDO TABLESPACE文を使用してUNDO表領域を作成するときに、そのUNDO表領域に対してRETENTION GUARANTEE句を指定する。
ALTER TABLESPACE文で指定することもできる。

-- 保証付きUNDOに設定
PROD(SYS)>alter tablespace undotbs retention guarantee;
 
表領域が変更されました。
 
PROD(SYS)>select tablespace_name,retention from dba_tablespaces;
 
TABLESPACE_NAME                                                                            RETENTION
------------------------------------------------------------------------------------------ ---------------------------------
SYSTEM                                                                                     NOT APPLY
UNDOTBS                                                                                    GUARANTEE
SYSAUX                                                                                     NOT APPLY
TEMP                                                                                       NOT APPLY
USERS                                                                                      NOT APPLY
-- 保証付きUNDOを解除
PROD(SYS)>alter tablespace undotbs retention noguarantee;
 
表領域が変更されました。
 
PROD(SYS)>

UNDO表領域の管理

UNDO表領域の作成と削除

CREATE UNDO TABLESPACE…
DROP TABLESPACE … {INCLUDING CONTENTS AND DATAFILES}

PROD(SYS)>create undo tablespace undotbs01 datafile '/u01/app/oracle/oradata/prod/undotbs01_01.dbf' size 100M autoextend on maxsize 2G;
 
表領域が作成されました。
 
PROD(SYS)>drop tablespace undotbs01 including contents and datafiles;
 
表領域が削除されました。
 
PROD(SYS)>
UNDO表領域のデータファイルの変更と追加

ALTER TABLESPACE … ADD DATAFILE
ALTER DATABASE…DATAFILE

-- UNDO表領域にデータファイルを追加
PROD(SYS)>alter tablespace undotbs add datafile '/u01/app/oracle/oradata/prod/undotbs02.dbf' size 100M autoextend on maxsize 2G;
 
表領域が変更されました。
 
-- UNDOデータファイルのサイズと最大サイズを変更
PROD(SYS)>alter database datafile '/u01/app/oracle/oradata/prod/undotbs02.dbf' resize 200M;
 
データベースが変更されました。
 
PROD(SYS)>alter database datafile '/u01/app/oracle/oradata/prod/undotbs02.dbf' autoextend on maxsize 4G;
 
データベースが変更されました。
 
PROD(SYS)>
UNDO表領域の切替
-- 新たなUNDO表領域UNDO_TBSを作成
PROD(SYS)>create undo tablespace undo_tbs datafile '/u01/app/oracle/oradata/prod/undo_tbs01.dbf' size 100M autoextend on maxsize 2G;
 
表領域が作成されました。
 
-- UNDO表領域の切替
PROD(SYS)>alter system set undo_tablespace=undo_tbs scope=both;
 
システムが変更されました。
 
-- 古いUNDO表領域を削除
PROD(SYS)>drop tablespace undotbs including contents and datafiles;
 
表領域が削除されました。
 
PROD(SYS)>

UNDOに関する情報の表示

V$UNDOSTAT

UNDO領域の監視とチューニングのための統計情報が含まれる。このビューは、現行の作業負荷に必要なUNDO領域の量を見積る際に利用できる。また、データベースはこの情報を使用して、システム内のUNDOの使用方法をチューニングする。このビューの情報は、自動UNDO管理モードでのみ意味がある。

V$ROLLSTAT

自動UNDO管理モードの場合、このビューの情報は、UNDO表領域内のUNDOセグメントの動作を反映する。

V$TRANSACTION

UNDOセグメント情報が含まれる。

DBA_UNDO_EXTENTS

UNDO表領域内の各エクステントの状態およびサイズを示す。

DBA_HIST_UNDOSTAT

V$UNDOSTAT情報の統計スナップショットが含まれる。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License