[Oracle] データファイルを移動する方法
テーマ:DB-Oracleデータファイルを物理的に移動させるには、以下の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操作で実行することも可能です。