[Oracle] UNDO表領域の縮小 | Archive Redo Blog

Archive Redo Blog

DBエンジニアのあれこれ備忘録

UNDO表領域は巨大なトランザクションを実行すると異様に拡張されてしまうことがあります。

そのような巨大なトランザクションが一時的なものであり、肥大したUNDO表領域を縮小したい場合は、以下の要領でUNDO表領域の切り替えを行います。
1.新しいUNDO表領域の作成

CREATE UNDO
  TABLESPACE "UNDOTBS2"
  DATAFILE 'C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' SIZE 200M
  REUSE AUTOEXTEND
  ON NEXT 5120K MAXSIZE UNLIMITED;

2.UNDO表領域の切り替え

ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDOTBS2';

※UNDO表領域を切り替えると、切り替えた後に発生したトランザクションは新しいUNDO表領域に割り当てられます。

3.古いUNDO表領域の削除

DROP TABLESPACE UNDOTBS1;

※ただし、古いUNDO表領域は使用しているトランザクションが終了するまでは削除できないため、切替後すぐには削除できないこともあります。