つまづいた石ころ、ぶつかった壁

問題(と解消)の記録

SQLSERVER 物理ファイルを移動する(mdf、ldf)

SQL SERVERで運用中のデータベースの物理ファイルを移動させようと思うと、
デタッチ⇒アタッチで可能ですが、ログだけ別のドライブに分けたいといった場合に、GUIからは
操作できません。
※プロパティのファイルのパスは編集不可です。

次のSQLでパスを書き換えます。

ALTER DATABASE sample/*データベース名*/ MODIFY FILE(
   'sample_log'/*ファイル名*/
  ,'E:\ldf\sample_log.ldf'/*ファイルパス*/
);
/*SQLSERVER再起動後に反映される旨のログが出ます*/

この後、以下の手順でファイルを移動します。

  1. SQLSERVERのサービスを停止
  2. ファイルを所定の場所へ移動
  3. SQLSERVERのサービスを開始

パスを書き換えた後、データの書き込みを行っても問題ありません。



ファイル名、パスなどの情報は以下のシステムテーブルより参照できます。

  SELECT * FROM sys.database_files