SQL Server(2005/2008):完全バックアップは、完全復旧モードでログを切り捨てます


41

多くのMSDNドキュメントを読んだばかりで、さまざまな復旧モデルとバックアップチェーンの概念を理解していると思います。まだ質問が1つあります。

完全データベースバックアップは、トランザクションログを切り捨てますか(完全復旧モードを使用)?

  • はいの場合:これはMSDNのどこに記載されていますか?私が見つけることができたのは、BACKUP LOGのみがログを切り捨てることでした。

  • いいえの場合:なぜですか?データベース全体のバックアップは新しいバックアップチェーンを開始するので、ログ内で完全バックアップのに完了したトランザクションをアクティブに保つポイントは何ですか?

回答:


43

いや-それは絶対にありません。唯一の例外なく- FULLまたはBULK_LOGGED復旧モデルでクリア/トランケートにログを許可する事は、ログのバックアップです。私はしばらく前にこの議論を持ち、ログとログバックアップに関する誤解でそれを証明するために使用できる説明とスクリプトを含む長く詳細なブログ記事を投稿しました:どうやって自分を納得させるか

さらに質問がある場合は、お気軽にお問い合わせください。Btw-TechNet Magazine でSQL Serverのログと回復について理解するために書いた長い記事も参照してください。

ありがとう


スーパーアンサーと、それが私の心の中にある百万の質問に答えてくれた記事をありがとう。
M.アリ14年

13

完全バックアップではログは切り捨てられません。バックアップログ操作を実行する必要があります。完全バックアップでは、ログチェーンはリセットされません。複製/ログ配布などが完全に台無しになります。

SQL Serverのバックアップ方法を詳しく調べる必要がありますが、実行中/長時間実行中のトランザクションはバックアップに含まれないことを確認する必要があります(そうでない場合、バックアップは決して完了しない場合があります)。 online-databaseは次のログバックアップを廃止することが保証されています。

http://msdn.microsoft.com/en-us/library/ms175477.aspx


8

私の理解では、トランザクションログを切り捨てるのはログバックアップのみです。

完全バックアップは、トランザクションの一貫性を保つために十分なログのみをコピーします。バックアップ操作が完了するまでに時間がかかるため、コピーされたページが変更されている可能性があります。

ポイントインタイムリカバリには、引き続きログバックアップが必要です。

リンクするMSDNはありませんが、SQL Serverチームの開発者であるDB R CHECKDBとBooks Onlineの一部を書いたPaul Randalのブログにリンクできます。

彼はこのフォーラムの質問にも答えているので、それは私からの2/3の情報よりもさらに良い権限になるでしょう:)


5

多くの場合、フルバックアップとログバックアップについて誤解されています。作業にバックアップ用のためにはFULL、バックアップ中に静止(あなたはいわゆる実行しない限り、データベースで起こっているの取引があるかもしれないとして、バックアップ復旧モデル、T-ログは、使用されている必要がありCOLDますが、データベースをシャットダウンしたときにバックアップを)。データベースがARCHIVELOGモードにある場合、Oracleは同じ概念を使用します。バックアップのシーケンスは次のように要約されます。

  1. バックアップの開始-実際のファイル内のすべてのアクションを一時停止し、t-logsに書き込みます。
  2. バックアップを実行します-すべてのトランザクションは続行されますが、実際のファイルには書き込まれず、tログに書き込まれます
  3. バックアップの終了-データベーストランザクションの実ファイルへの書き込みを再開します。
  4. 必要に応じて、Tログの内容を実際のファイルにフラッシュします。

バックアップフェーズ中のトランザクション継続の重要な部分であるため、tログがデフォルトで切り捨てられたり縮小されたりしない理由です。


1

ログの切り捨てとログの縮小を混同しないでください。

  • TRUNCATEとは、最後のチェックポイントの前にあるログ内のトランザクションを削除することです(チェックポイントとは、トランザクションがデータベース自体にフラッシュされるときです)。これは、BACKUPコマンドを使用して行われます。

  • ログを縮小するには、実際のログファイルサイズを縮小します。これは、DBCCコマンドを使用して行われます。


1

基本的に、トランザクションログは機能するためにスペースが必要なため、毎回トランザクションログを自動的に縮小する必要はありません。

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