2015年1月7日水曜日

Oracleで、テーブルスペースを切り替える

今使っているtablespaceを切り替える必要が出てきたので
実施内容を纏めておきます。

データファイル名、テーブルスペース名、テーブル名などは実環境に読み替えてください。


手順概略

1.新しいテーブルスペースを作成
2.データを、新しいテーブルスペースへ移動
3.インデックスを、新しいテーブルスペースへ移動
4.ユーザーのデフォルト表領域を新しいテーブルスペースへ移動

手順

1.新しいテーブルスペースの作成

CREATE TABLESPACE "tablespacename";
DATAFILE 'D:\ORADATA\ORCL\"tablespacename";_xxx.DBF' SIZE 10240M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
/


2.データを、新しいテーブルスペースへ移動

ALTER TABLE <tablename> MOVE TABLESPACE "tablespacename";

3.インデックスを新しいテーブルスペースへ移動

ALTER INDEX <indexname> REBUILD TABLESPACE "tablespacename";

4.ユーザーのデフォルトテーブルスペースを変更

alter user <username> default tablespace "tablespacename";


別アプローチとして、一旦exportして、drop user , createuserでテーブルスペースを変更 , impでテーブルスペース指定なんてこともできそうです。
→今回はデータベースの移行だったので、こちらを採用しました。

0 件のコメント: