SQLデータベースのコピーを可能にするためにMS SQLサービスを停止/開始する方法

SQLデータベースのコピーを可能にするためにMS SQLサービスを停止/開始する方法

SQL データベース ファイルをコピーできるように、MS SQL サービスを停止/開始する方法を知りたいです。手動で行う方法はわかっていますが、スクリプトから実行したいと思います。

答え1

データ ファイルをコピーする代わりに、バックアップ コピーを作成してはどうでしょうか。そうすれば、SQL Server サービスを停止/開始してダウンタイムが発生することがなくなります。たとえば、次のようになります。

BACKUP DATABASE [databasename] 
TO DISK = 'D:\BackupFiles\Database.bak' 
WITH COPY_ONLY
GO

このCOPY_ONLYフラグは、バックアップが(驚いたことに)コピーのみであり、差分バックアップ チェーンを中断しないことを指定します。

答え2

停止の場合:

NET STOP MSSQLSERVER

開始するには:

NET START MSSQLSERVER

ただし、データベース ファイルをコピーする場合 (バックアップ目的だと思います)、MS SQL SERVER を既に使用している場合は、バックアップ スキーマを含むメンテナンス プランの使用を検討することをお勧めします。SQL Express の場合は、カスタム スクリプトが必要です。データベースのバックアップが完了すると、出力ファイルはロックされず、バックアップ デバイスなどの任意の場所に保存できます。

関連情報