パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

SQL server データベース

SQL server Expressでインスタンスを停止することなくバックアップする方法

更新日:

Microsoftoの無料のデータベースソフト、SQL server Expressでデータベースをバックアップする方法です。
昔のMSDEの場合、無料版では「BACKUP DATABASE」が使えませんでしたが、SQL server Expressになって、
使えるようになったようです。

ということで、SQL server Expressでインスタンスを停止することなくバックアップする方法、
また、バックアップファイルから復元する方法に関して記述します。

スポンサーリンク




SQL server Expressでインスタンスを停止することなくバックアップする方法

次のコマンドを実行するだけです。
バッチファイルでもできるでしょう。

BACKUP DATABASE [データベース名] TO DISK = N'バックアップファイルのパス' WITH INIT

データベース名:SampleDB、
バックアップ先のファイル名:C:\SampleDB.BAK

とすると、実際のコマンドはこうなります。

BACKUP DATABASE [SampleDB] TO DISK = N'C:\SampleDB.BAK' WITH INIT

これは、データベース丸ごとバックアップする方法です。
一度全体バックアップをすると、次からは差分バックアップすることができます。

差分バックアップのコマンドはこちらです。

BACKUP DATABASE [データベース名] TO DISK = N'バックアップファイルのパス' WITH DIFFERENTIAL, INIT
データベース名:SampleDB、
バックアップ先のファイル名:C:\SampleDB_DIFF.BAK

とすると、実際のコマンドはこうなります。

BACKUP DATABASE [SampleDB] TO DISK = N'C:\SampleDB_DIFF.BAK' WITH DIFFERENTIAL, INIT

このときできるファイルは、前回の全体バックアップのときとの差分です。
なので、最終的な状態だけが必要ならば、次のように、
差分バックアップのファイルを分けてたくさん作る必要はありません。

全体バックアップ:SampleDB.BAK
差分バックアップ1:SampleDB_DIFF1.BAK
差分バックアップ2:SampleDB_DIFF2.BAK
差分バックアップ3:SampleDB_DIFF3.BAK
差分バックアップ4:SampleDB_DIFF4.BAK
差分バックアップ5:SampleDB_DIFF4.BAK

全体バックアップ:SampleDB.BAKと差分バックアップ5:SampleDB_DIFF4.BAK
があれば、最新の状態に復元することができます。

次に復元の方法に関して説明しますが、以下の2つのファイルだけある場合に関して解説します。

全体バックアップ:SampleDB.BAK
差分バックアップ:SampleDB_DIFF.BAK

SQL server Expressでバックアップファイルから元に戻す方法

まずは、次のコマンドで、全体バックアップから復元します。

RESTORE DATABASE [SampleDB] FROM DISK = N'C:\SampleDB.BAK' WITH NORECOVERY

データベースの状態が「復元しています」となってしまう場合は、NORECOVERYをRECOVERYに変更します。

RESTORE DATABASE [SampleDB] FROM DISK = N'C:\SampleDB.BAK' WITH RECOVERY

 

差分ファイルがある場合、続いて次のコマンドを実行します。

RESTORE DATABASE [SampleDB] FROM DISK = N'C:\SampleDB_DIFF.BAK'

例えば、SampleDB.BAKを毎日午前0時に作って、SampleDB_DIFF.BAKを5分ごとに作成しておけば、
トラブルがあっても、常に5分以内のバックアップが残っているということになります。

注意点

-同じデータベースがあれば、そのデータは消えて、復元されたものに置き換わります。
-復元するときは、全てのSQL server Expressに接続するソフトを停止し、「master」データベースに接続して行います。
そうしないと失敗します。
(失敗しても、中途半端なデータが出来るわけではありません。)







-SQL server, データベース

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.