完全バックアップとコピーのみの完全バックアップの違い


17

SQL Server Centralスレッドで見た完全バックアップはログを切り捨てますか?その完全バックアップはログを切り捨てません:

いいえ。完全バックアップでも差分バックアップでも、トランザクションログは切り捨てられません。- リン・ペティス
はありません-フルバックアップは、ログを切り捨てません。- チャド・クロフォード

それでは、完全バックアップとコピーのみの完全バックアップの違いは何ですか?

ログバックアップには、ログを切り捨てずにログチェーンが壊れないようにするコピーのみのバックアップがあります。では、コピーのみの完全バックアップとは何ですか?

回答:


14

少なくとも、差分バックアップを検討する必要があります。完全コピーのみが使用されない限り、次の差分バックアップはオフになります。コピーのみのバックアップ

コピーのみの完全バックアップ(すべての復旧モデル)コピーのみのバックアップは、差分ベースまたは差分バックアップとして機能できず、差分ベースに影響しません。

完全コピーと完全コピーの唯一の違いは、完全コピーが差分チェーンを壊さないことです。どちらもログファイルを切り捨てないため、どちらもログチェーンを中断しません。


24

完全バックアップとコピーのみのバックアップの主な違いは、LSN(ログシーケンス番号)であるかどうか、特にDatabaseBackupLSN更新されるかどうかです。

完全バックアップを作成すると、DatabaseBackupLSNが更新されます。完全バックアップを取得した後、差分バックアップを取得した場合、そのバックアップにはDatabaseBackupLSN完全バックアップと一致するため、SQLは2つをリンクできます(たとえば、LSNからdiffが完全に続いたことを認識します)。

問題は、バックアップの実行をスケジュールしている場合に発生するため、最初に完全バックアップを作成してから、一連の差分を作成します。フルバックアップを手動で取得すると、LSNが更新され、その後、スケジュールバックアップを介して取得する各差分バックアップは、元のLSNではなく、その新しいLSNを参照します。復元する必要がある場合、スケジュールされた完全バックアップを復元できますが、手動ジョブの後に取得した差分バックアップのいずれかを復元しようとすると、LSNが一致しなくなるため失敗します。

コピーのみのバックアップでは、に触れDatabaseBackupLSNないため、バックアップのチェーンが壊れることはありません。

この問題の良い説明と、Michael K. Campbellによる「Breaking the Backup Chain – REDUX(またはEating Crow)」で非常に多くの人々がそれを誤解する理由があります。

SQLmagイメージ-フルバックアップv Copy_Onlyバックアップ

4つの異なるLSNとそれらの使用方法の適切な説明については、Simon Liewによる「バックアップのSQL Serverログシーケンス番号について」を参照してください。

この問題を回避する方法は、データベースの標準バックアップを行うことを1つだけにすることです。アドホックまたはセカンダリバックアップは、コピーのみのオプションで実行する必要があります。詳細については、コピーのみのバックアップ(SQL Server)を参照してください。ただし、基本的WITH COPY_ONLYに、コマンドで指定するT-SQLを介して、SSMSの「コピーのみのバックアップ」オプションを使用します、またはPowerShellで-CopyOnlyパラメーターを使用します。


1
追加するには:実質的にコピーのみでは、非バックアップ目的でバックアップを作成できます。顧客の場合、バックアップはエンタープライズバックアップシステムに対して自動的に行われます。リストアを取得するのは苦労します。特に、異なる環境(事務処理、日中に行う)を取得するのは苦労します。COPY ONLYを使用すると、エンタープライズバックアップで管理されているバックアップを妨げることなくコピーを作成し、テスト環境に復元できます。
トムトム

12

スケジュールされたバックアップのあるデータベースがあると仮定します。フルバックアップは24時間に1回、00:00に実行されます。また、6時間ごとに実行される差分バックアップと、1時間ごとに実行されるトランザクションログバックアップがあります。では、別のサーバーを復元するために、日中に追加の完全バックアップを作成する必要がある場合はどうでしょうか?この場合、何をしますか。もちろん、完全バックアップを作成できます。

BACKUP DATABASE Test TO DISK = 'C:/Test.bak'

ただし、データベースのバックアップを作成する場合、次のバックアップの復元方法に影響する変更がいくつかあります(差分バックアップとトランザクションログバックアップはどちらも復元操作の方法に影響します)。この場合、後続のすべての差分バックアップは最後の完全バックアップに依存します。最後の完全バックアップが失われた場合、データベースの復元は不可能です。ここに画像の説明を入力してください

しかし、次のデータベースのバックアップまたは復元のプロセスに影響を与えないバックアップをどのように作成できますか。これは、コピーのみのバックアップが配置される場所です。

BACKUP DATABASE Test TO DISK = 'C:\Test.bak' WITH COPY_ONLY

ここに画像の説明を入力してください


2

完全バックアップと一連のログファイルバックアップがある場合、ログチェーンはLSN(ログシーケンス番号)を使用して維持されます。ログチェーンを壊さずにバックアップを実行する場合は、コピーのみのバックアップを実行してください。

コピーのみのバックアップを行わない場合、ログチェーンは破損し、実行するバックアップは最新の完全バックアップになります。これは、以前に作成したログバックアップを、新しく作成した完全バックアップに適用できないことを意味します。ログチェーンは、ポイントインタイムリカバリまたはログ配布シナリオのためにほとんど維持されます。

たとえば、6時間(午前0時、午前6時、正午、午後6時)ごとに完全バックアップを取り、15分ごとにログバックアップを行うバックアップシナリオがあるとします。午前9時に、テストサーバーにDBのコピーを配置するという要求があります。ログチェーンを中断したり、バックアップジョブを中断したりすることなく、バックアップを取得する必要があります。これは、コピーのみのバックアップが取られるときです。コピーのみのバックアップは、通常のバックアップセットを中断しません。


1
コピーのみのバックアップはログチェーンに影響するとは思わない。コピーのみのフルバックアップでは差分ベースはリセットされない。それが唯一のdifference.Seeこれらのリンクだsqlservercentral.com/Forums/Topic1471058-391-1.aspx?Update=1sqlinthewild.co.za/index.php/2011/03/08/...
IT研究者

1
私はあなたの答えに同意しませんでした。完全バックアップとコピーのみの完全バックアップの両方は、ログチェーンを壊しません。「差分ベースをリセットしない」以外、コピーのみの完全バックアップは、あらゆる点で通常の完全バックアップとまったく同じです。以前のコメントで言及したフォーラムリンクを参照してください。
IT研究者

フルバックアップ:FB1と3つのログバックアップ:LB1、LB2、LB3があるとします。次に、FB2(copy_onlyなし)の手動フルバックアップを実行します。さらに3つのログバックアップ(LB4、LB5、LB6)を待ちます。FB2を削除します。FB1 + LB1 + LB2 + LB3 + LB4 + LB5 + LB6を復元できますか?
スタンレージョンズ

はい、復元できます。フルバックアップ(コピーのみではない)FB1、ログバックアップ(LB1)、フルバックアップ(コピーのみではない)FB2、再度ログバックアップ(LB2)を取得しました。次に、このシーケンスFB1 + LB1 + LB2で復元しました。適切に復元され、すべての行が適切に入力されたことがわかりました。
IT研究者

2
-1。完全バックアップのコピーのみのオプションはLSNチェーンとは関係がないためです。Itresearcherはそれを指摘しましたが、回答を更新/削除しませんでした。
エドワード・ドートランド14年

0

完全バックアップとコピーのみのバックアップは、ログチェーンを破壊しません。tlogバックアップを行う場合にのみ、LSNの不一致が発生します。

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