データベースをオフラインにせずにログファイルを移動する


14

データベースをオフラインにせずに、データベースログファイルを新しいパーティションに移動する必要があります。

これを行う通常の方法は、DBをデタッチし、ログファイルを移動してから、dbを再アタッチすることです。

データベース自体をオフラインにせずにこれを行うことは可能ですか?


回答:


16

オンラインデータベースでこれを行う方法はありません。

データベースファイル(ALTER DATABASE ... MODIFY FILE)を移動すると、次のメッセージも表示されます。

ファイル「YourFile」はシステムカタログで変更されています。新しいパスは、データベースが次に起動されるときに使用されます


これを行う通常の方法は、DBをデタッチし、ログファイルを移動してから、dbを再アタッチすることです。

それは私がそれをする「普通の」または受け入れられた方法ではありません。データベースファイルを移動するには、次の操作を行います。

  1. ALTER DATABASEコマンドを実行して、ファイルの場所を変更します
  2. データベースをオフラインにします
  3. 手順1で指定した新しい場所にファイルを物理的に移動します
  4. データベースをオンラインにする

TechNetのこのリファレンスを参照してください:ユーザーデータベースの移動


3

TechNetの文献によれば移動ユーザデータベースからトーマス・ストリンガーの答えあなたが(「計画的再配置手順」以下)、全体のSQL Serverインスタンスを停止せずにファイルを移動したい場合は、順序は次のようになります。

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

最初にオフラインに注意してください。その後、ファイルを移動し、SQL Serverに新しい場所を通知します。

SQL Serverインスタンス全体を停止する必要がある場合(「スケジュールされたディスクメンテナンスの再配置」の手順を参照)、インスタンスを再起動したときにファイルの検索に問題がないように、最初にファイルの場所を変更することをお勧めします新しい場所で。


1

これは古い質問ですが、新しい場所に2番目のログファイル(元のファイルではなくDBで使用される)を追加してから元のファイルを縮小/削除することはできませんか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.