はじめに
USERS表領域がいつのまにか肥大化していたので、縮小したいと考えました。インターネットで調べてみると、一度削除して作り直すと良いみたいなので、USERS表領域を削除してみました。
TANITA 【体重50g単位表示】 & 【乗った人をピタリと当てる「乗るピタ機能」搭載】 体組成計 インナースキャン50 パールホワイト BC-313-WH
posted with amazlet at 15.02.13
タニタ(TANITA) (2013-08-01)
売り上げランキング: 12
売り上げランキング: 12
やったこと
まず、表領域を指定してエクスポートする。
expdp hoge/hoge_pwd directory=test_dir TABLESPACES= USERS
USERS表領域を削除する。
DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
ここで、ORA-12919のエラーが出て怒られる。
ORA-12919: デフォルトの永続表領域は削除できません
デフォルト表領域の変更が必要
デフォルトの表領域を変更しないと削除できないので、代わりの表領域(USERS02)を作成する。
CREATE TABLESPACE USERS02 DATAFILE 'C:\oradata\orcl\USERS02.DBF' SIZE 4M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 1000M; alter database default tablespace USERS02;
以下のコマンドでデフォルト表領域を変更する。
alter database default tablespace USERS02;
このあと、もう一度表領域の削除を試みる。
DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; >表領域が削除されました。
無事、削除できました。
こんどは、元の表領域を作り直して再度切り替えます。
CREATE TABLESPACE USERS DATAFILE 'C:\oradata\orcl\USERS01.DBF' SIZE 4M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;
デフォルト表領域をUSERSに変更します。
alter database default tablespace USERS;
最後に、不要になったUSERS02表領域を削除します。
DROP TABLESPACE USERS02 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
おわりに
表領域の切替は結構面倒ですね。