[SQL Server] バックアップ(Backup) - コピー専用バックアップ / WITH COPY_ONLY

inno
2014-02-27 20:22 4139 0
[SQL Server] バックアップ(Backup) - コピー専用バックアップ

SQL Server 2005から追加された機能です。
コピー専用バックアップは他のバックアップには影響を与えません。

上記のイメージを見ながら説明をします。
①は既にJOBやメンテナンスプランなどでバックアップご動いて状態だとしましょう。
②は作業の為に作業者が手動でバックアップをした時点だとしましょう。
一般的な場合、手動でバックアップを行うとトランザクションバックアップの開始時点が元のバックアップから手動でバックアップした時点に変更されます。
変更されてもいいんじゃない???と思う方もいると思いますが、
バックアップを保存して置いてあの時点の環境を復元(リストア)する場合は少し問題になったりします。
まぁ、手動でバックアップしたファイルも一緒に保存して置けば特に問題はないですけどね。

コピー専用でバックアップした場合、
既存のバックアップには影響を与えず、バックアップすることができました。
コピー専用でバックアップをするには「WITH COPY_ONLY」を指定すればできます。

BACKUP DATABASE [データベース名]
TO DISK ='[バックアップファイル保存パスとファイル名]'
WITH COPY_ONLY

実際に「master」データベースを「C:\Backup」フォルダにコピー専用でバックアップファイルを保存してみましょう。

BACKUP DATABASE [master]
TO DISK ='C:\Backup\master_backup.bak'
WITH COPY_ONLY

上記のSQLを実行した時に下記のようなエラーが発生する方は「C:\Backup」フォルダを作成後に実行してください。
指定したフォルダが存在しない場合、下記のようなエラーが発生します。

メッセージ 3201、レベル 16、状態 1、行 1
バックアップ デバイス 'C:\Backup\master_backup.bak' を開けません。オペレーティング システム エラー 3(指定されたパスが見つかりません。)。
メッセージ 3013、レベル 16、状態 1、行 1
BACKUP DATABASE が異常終了しています。


サービス中のデータベースを作業の為に途中でバックアップする時はこのコピー専用でバックアップをしてください。

コメント