UNDO表領域を拡張するやデータファイルのサイズを縮小するで触れている通り、断片化しやすい表領域のためです。
自動拡張してしまった場合は、特に断片化が進んでいて縮小できないことが多いです。
また、UNDO表領域は削除することもできません。
そこで、縮小は、一時的に作ったUNDO表領域に切り替えてから古いものを再作成する必要があります。
まずは、今の表領域を確認します。
容量は、表領域の使用状況で確認します。
この例だと、32GBいっぱいまで自動拡張してますね・・・。
SQL> show parameter undo_tablespace NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ undo_tablespace string UNDOTBS1 TABLESPACE_NAME SIZEMB USEDMB FREEMB RATIO AUTO ------------------------- -------- -------- -------- ------- ---- UNDOTBS1 32,749 80 32,669 .25 YES
次に、一時的なUNDO表領域を作成し、切り替えます。
SQL> create undo tablespace UNDOTMP datafile '/DATA/DATABASE/UNDOTMP1.DBF' size 1G AUTOEXTEND ON; SQL> alter system set undo_tablespace='UNDOTMP' sid='sss01dev'; SQL> show parameter undo_tablespace NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ undo_tablespace string UNDOTMP
切り替え後の、サイズの大きいUNDO表領域は再作成します。
SQL> drop tablespace UNDOTBS1 including contents and datafiles; SQL> create undo tablespace UNDOTBS1 datafile '/DATA/DATABASE/UNDOTBS101.DBF' size 4G;
最後に、再作成したUNDO表領域に切り戻します。
SQL> alter system set undo_tablespace='UNDOTBS1' sid='sss01dev'; SQL> show parameter undo_tablespace NAME TYPE ------------------------------------ --------------------------------- VALUE ------------------------------ undo_tablespace string UNDOTBS1 SQL> drop tablespace UNDOTMP including contents and datafiles;
0 件のコメント:
コメントを投稿