none
復旧モデル変更に伴うレコードへの影響 RRS feed

  • 質問

  • 現在運用中であるSQL Server上のDBに対して、下記手順を実施予定です。
    対象DBに関するトランザクションログの取得がされなくなる事以外で、
    動作への影響がないか懸念しております。もし何かございましたらご教授ください。
    例)レコードが消えてしまう等

    ■実施内容
    ① 復旧モデルを「完全」から「単純」へ変更
    ② トランザクションログの圧縮を実施

    ■対象
    ・Windows Server 2012 R2
    ・SQL Server 2014

    ■備考
    ・対象のDBを戻す場合、サーバ全体を復元するため、SQL Server の復旧機能は使用しません。

    2017年6月30日 2:50

回答

  • 特に問題はないと思います。
    以下が参考になると思います。

    完全復旧モデルから単純復旧モデルへの変更は可能でしょうか
    https://social.msdn.microsoft.com/Forums/ja-JP/bf86d86b-5872-4955-a1e5-44edc244444c?forum=sqlserverja

    上記でデッドリンクになっているのはおそらく以下のページに該当すると思われます。

    HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法
    https://blogs.msdn.microsoft.com/jpsql/2013/07/29/howto-management-studio-ldf/


    --- 引用開始 -----------
    バックアップファイルの出力先にバックアップデータを保持できるだけの十分な容量がない場合

    バックアップファイルの出力先にすべてのバックアップデータを保持できるだけの容量がない場合、バックアップは失敗します。この場合、トランザクションログの切り捨ては行われません。バックアップファイルの出力先に十分な容量が確保できない場合は、データベースの復旧モデルを一時的に「完全」や「一括ログ」から「単純」に変更することで、ステップ 2 をスキップしてステップ 3 に進むことができるようになります。
    ステップ 3 に進む前に CHECKPOINT が実行される必要がありますので、復旧モデル変更後は、データベースに対して CHECKPOINT が実行されるだけの量の更新が行われるのをしばらく待つか、明示的に CHECKPOINT を実行する必要があります。
    尚、この方法では、トランザクションログを使用したデータベース復旧はできなくなります。そのため、復旧モデルを「単純」に変更する前に、データベースへの書き込みを行わない状態にし、データベースの完全バックアップを取得することをお勧めします。これにより、一連の作業中に不測の事態が発生したとしても、作業開始前の状態までは確実に戻れるようになります。
    --- 引用終了 -----------


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 加藤祐也 2017年6月30日 5:14
    2017年6月30日 4:29

すべての返信

  • 特に問題はないと思います。
    以下が参考になると思います。

    完全復旧モデルから単純復旧モデルへの変更は可能でしょうか
    https://social.msdn.microsoft.com/Forums/ja-JP/bf86d86b-5872-4955-a1e5-44edc244444c?forum=sqlserverja

    上記でデッドリンクになっているのはおそらく以下のページに該当すると思われます。

    HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法
    https://blogs.msdn.microsoft.com/jpsql/2013/07/29/howto-management-studio-ldf/


    --- 引用開始 -----------
    バックアップファイルの出力先にバックアップデータを保持できるだけの十分な容量がない場合

    バックアップファイルの出力先にすべてのバックアップデータを保持できるだけの容量がない場合、バックアップは失敗します。この場合、トランザクションログの切り捨ては行われません。バックアップファイルの出力先に十分な容量が確保できない場合は、データベースの復旧モデルを一時的に「完全」や「一括ログ」から「単純」に変更することで、ステップ 2 をスキップしてステップ 3 に進むことができるようになります。
    ステップ 3 に進む前に CHECKPOINT が実行される必要がありますので、復旧モデル変更後は、データベースに対して CHECKPOINT が実行されるだけの量の更新が行われるのをしばらく待つか、明示的に CHECKPOINT を実行する必要があります。
    尚、この方法では、トランザクションログを使用したデータベース復旧はできなくなります。そのため、復旧モデルを「単純」に変更する前に、データベースへの書き込みを行わない状態にし、データベースの完全バックアップを取得することをお勧めします。これにより、一連の作業中に不測の事態が発生したとしても、作業開始前の状態までは確実に戻れるようになります。
    --- 引用終了 -----------


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク 加藤祐也 2017年6月30日 5:14
    2017年6月30日 4:29
  • ご回答頂きありがとうございます。

    対象のトランザクションログの容量は肥大しつつありますが、
    まだストレージの空き容量には余裕がございますので、
    本件は、特に影響はないと判断いたしました。
    迅速にご返信頂き、非常に助かりました。

    ありがとうございました。

    2017年6月30日 5:28