はじめに
Oracle 11gでUNDO表領域が肥大化していたので、縮小するために再作成を実施しました。
石丸製麺 半生讃岐うどん包丁きり 3人前(300g)×6袋入り
posted with amazlet at 15.02.14
石丸製麺 (2010-12-13)
売り上げランキング: 3,571
売り上げランキング: 3,571
環境
- Windows Server 2008 R2
- Oracle Database 11g EE 11.2.0.1.0
UNDO表領域を縮小する
UNDO表領域(UNDOTBS1)を削除してみる。
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; >ORA-30013: UNDO表領域'UNDOTBS1'は使用中です
すると、ORA-30013のエラーが出て怒られる。
代わりとなるUNDO表領域(UNDOTBS2)をあたらしく作成する。
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'C:\oradata\orcl\UNDOTBS02.DBF' SIZE 4M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 1000M; >表領域が作成されました。
Oracleを一度停止します。
shutdown immediate
再起動し、マウントします。
startup mount
データベースをオープンします。
alter database open;
UNDO表領域をUNDOTBS1→UNDOTBS2へ切り替える。
alter system set undo_tablespace = UNDOTBS2;
ようやく、元の表領域を削除することができます。
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; >表領域が削除されました。
以下のクエリを実行すると、表領域が切り替わったことが確認できます。
col tablespace_name for a10 col file_name for a60 col mb for 999999 select tablespace_name,file_name,bytes/1024/1024 mb from dba_data_files order by tablespace_name;