alter database move datafile
過去バージョンでは、DB 稼働中にデータファイル移動をする場合、
オフライン/オンライン化や OS コマンドでのコピーが必要だったが、
Oracle12c より、オンライン状態のまま移動が可能となった。
Oracle11g 以前
Oracle12c
オンライン状態のまま 1コマンドで完結出来るとあって、とても便利になった。
open だけでなく、mount 状態でも可能。ASM でディスクグループ間の移動も出来る。
データファイルの扱いについてはオプションが用意されている。
move datafile オプション
移動元のデータファイルを保持したまま(つまりコピーされる)
移動先にデータファイルが存在すれば上書きする(移動する)
デフォルトでは、keep、reuse ともに有効にならないため、
移動先に同名ファイルがあればエラーになる。
なにか問題が発生してリトライする場合を除き、予めコピーしておくことは
しないと思うので、通常はオプション不要という認識。
SQLコマンド
alter database move datafile
‘移動元パス/hoge.dbf’ to ‘移動先パス/hoge.dbf’ { keep | reuse };
以下の条件では、move datafile コマンドが実行できずエラーとなるので注意。
・オフラインのデータファイルである場合
・フラッシュバックデータベースの実行中である場合
ORA-00439 が発生する場合
「ORA-00439: 機能は有効ではありません: online move datafile」
Enterprise Edition 限定の新コマンドのため、エディション確認を。
Standard Edition で実行した場合は、ORA-00439 が発生する。