2005年04月05日(火)

[Oracle] データファイルを移動する方法

テーマ:DB-Oracle
データベースの運用を続けていると、ディスク容量やディスクI/Oの問題により、データファイルを物理的に移動させたくなる、あるいは移動せざるを得ない状況になることがあります。

データファイルを物理的に移動させるには、以下の2つの方法があります。
1.ALTER TABLESPACE ~ RENAME DATAFILE ~

ALTER TABLESPACE文を使う場合、データベースを停止させずに、移動させるデータファイルが属する表領域を一時的にオフラインにするだけでデータファイルを移動させることができます。


ただし、システム表領域やアクティブなUNDO表領域などを構成するデータファイルはこの方法で移動させることはできません。

手順は以下の通り。

1)表領域をオフラインにします。
SQL> ALTER TABLESPACE USERS OFFLINE;

表領域が変更されました。
2)OS上でデータファイルを移動します。
3)データファイル名を変更します。
SQL> ALTER TABLESPACE USERS RENAME DATAFILE 'C:\ORACLE\ORADATA\ORCL\USERS01.DBF' TO 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF';

表領域が変更されました。
4)表領域をオンラインにします。
SQL> ALTER TABLESPACE USERS ONLINE;

表領域が変更されました。
2.ALTER DATABASE ~ RENAME FILE ~

ALTER DATABASE文を使う場合、データベースを一旦停止し、マウント状態でデータファイルを移動させなければなりません。


ただし、ALTER TABLESPACE文で移動させることのできないシステム表領域やアクティブなUNDO表領域などを構成するデータファイルも移動させることができます。

手順は以下の通り。

1)インスタンスをシャットダウンします。
SQL> SHUTDOWN IMMEDIATE;
データベースがクローズされました。
データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。
2)インスタンスをマウント状態で起動します。
SQL> STARTUP MOUNT;
ORACLEインスタンスが起動しました。

Total System Global Area  445718936 bytes
Fixed Size                   455064 bytes
Variable Size             276824064 bytes
Database Buffers          167772160 bytes
Redo Buffers                 667648 bytes
データベースがマウントされました。
3)OS上でデータファイルを移動します。
4)データファイル名を変更します。
SQL> ALTER DATABASE RENAME FILE 'C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF' TO 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF';

データベースが変更されました。
5)データベースをオープンします。
SQL> ALTER DATABASE OPEN;

データベースが変更されました。


なお、1.の方法についてはOEM上でGUI操作で実行することも可能です。

コメントComments

[コメントをする]

コメント投稿

一緒にプレゼントも贈ろう!

Amebaおすすめキーワード