私が取り扱っている環境でも30GB超になっていました。
よって縮小(というか再作成)する方法を覚書。
1) Undo表領域の情報を確認
SELECT TS.TABLESPACE_NAME, DF.FILE_NAME FROM DBA_TABLESPACES TS INNER JOIN DBA_DATA_FILES DF ON TS.TABLESPACE_NAME = DF.TABLESPACE_NAME WHERE CONTENTS = 'UNDO' ORDER BY DF.FILE_ID; |
2) 一時的にUndo表領域を作成(サイズは適当に)
CREATE UNDO TABLESPACE temp_undotbs DATAFILE 'dbfファイルのパス' SIZE 100M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE; |
3) 手順2で作成したUndo表領域に切り替え
ALTER SYSTEM SET UNDO_TABLESPACE = 'temp_undotbs'; |
4) 手順1で確認したUndo表領域を削除
DROP TABLESPACE undotbs1; |
5) Undo表領域を再作成(サイズは適当に)
CREATE UNDO TABLESPACE undotbs1 DATAFILE 'dbfファイルのパス' SIZE 1024M REUSE AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE; |
6) 再作成したUndo表領域に切り替え
ALTER SYSTEM SET UNDO_TABLESPACE = 'undotbs1'; |
7) 一時的に作成したUndo表領域を削除
DROP TABLESPACE temp_undotbs; |
8) 一時作成したtemp_undotbsのデータファイルはOS上に残ってしまうようなので
手動で削除(Windowsの場合はOracleの再起動が必要?)
0 件のコメント:
コメントを投稿