none
SQLServer2008R2のメンテナンスプランでクリーンアップがうまく動かない事がある RRS feed

  • 質問

  • SQLServer2008R2のメンテナンスプランで、クリーンアップを設定し、自動運転にて「1日経過」後に削除する設定を行っています。

    この設定により、普段は問題なく動いているのですが、たまに、クリーンアップされない事象が発生します。

    そのクリーンアップタスクは、メンテナンスプランウィザードで作成した後、最後にクリーンアップを手動で追加しています。

    ちなみに、クリーンアップまでのジョブは問題なく正常に完了している模様です。(SQLServerのログにもエラーは出力されていません。)

    意図としては、毎日のクリーンアップ実行により、前日のSQLServerバックアップを削除したく、今回の現象は、当日のバックアップ後、前日のバックアップファイルが削除できなかった現象についての質問です。

    尚、SQLServer2008R2に、サービスパックは適用していません。

    こういった現象は起こりえるのでしょうか?
    2011年11月18日 11:00

回答

  • あくまで私の実体験としてですが、出力先がNASだったりするとすごい動作をするケースがあり得ます。

    例)出力先がNASで、NASのシステム日付が狂っている時。

        ※実際の日付が2011/11/20日なのに、NASの日付が2011/10/20だった場合等

     

    上記のケースでは、バックアップファイルの保持期間を1日としても、1ヶ月と1日立たないと消えません。

    ちなみに私が経験したのは、NASの日付が未来日になっていて、保持期間1週間なのに出力と同時に消されるという現象でした(笑

     

    同様の現象かは解りませんが、参考になればと思います。

    • 回答の候補に設定 山本春海 2011年11月30日 8:54
    • 回答としてマーク 山本春海 2011年12月1日 9:12
    2011年11月20日 7:29
  • そのケースまず、そのケースで一昨日以前のデータは必ず消えているという確証はありますか?

    ※クリーンアップタスクの削除対象ファイル拡張子が一致してなくて一切消えてないとかは無いですよね?

    もしもクリーンアップタスクの時分秒まで見ているとしたら、①を必ず消すというのは難しいかもしれませんね。

     

    代替案として、毎回同一ファイルで上書きするというのは検討されましたか?

    バックアップ自体がエラーになったらアレですが・・・

    • 編集済み aviator__ 2011年11月22日 9:24 ※部分を追記
    • 回答の候補に設定 山本春海 2011年11月30日 8:54
    • 回答としてマーク 山本春海 2011年12月1日 9:12
    2011年11月22日 9:22

すべての返信

  • あくまで私の実体験としてですが、出力先がNASだったりするとすごい動作をするケースがあり得ます。

    例)出力先がNASで、NASのシステム日付が狂っている時。

        ※実際の日付が2011/11/20日なのに、NASの日付が2011/10/20だった場合等

     

    上記のケースでは、バックアップファイルの保持期間を1日としても、1ヶ月と1日立たないと消えません。

    ちなみに私が経験したのは、NASの日付が未来日になっていて、保持期間1週間なのに出力と同時に消されるという現象でした(笑

     

    同様の現象かは解りませんが、参考になればと思います。

    • 回答の候補に設定 山本春海 2011年11月30日 8:54
    • 回答としてマーク 山本春海 2011年12月1日 9:12
    2011年11月20日 7:29
  • ご回答ありがとうございます。

    なるほど、良くも悪くも、タイムスタンプで判断しているということですね。

    今回の件、全てローカルとなっているので、タイムスタンプは関係ないのかな?と思っていたのですが、

    ひょっとして、前日のバックアップが例えば「23時05分00秒」で、実行されようとしているクリーンアップタスクが、今日は「23時04分30秒」に動いた

    場合、削除されないということになるのでしょうか?

    例)例えば、11/10→11/11と2日間のジョブで見た時

      (1)11/10のジョブ

       ①SQLServerバックアップ 23時05分00秒 完了

       ②クリーンアップタスク     23時05分05秒 完了

      (2)11/11のジョブ

       ③SQLServerバックアップ 23時04分30秒 完了

       ④クリーンアップタスク     23時04分35秒     ←このタイミングで実行すると、①のバックアップ完了時間よりも早い時間のため、削除されない?

    もし、削除されない場合、時間が逆転した場合にも、①のバックアップデータを削除する方法はありませんでしょうか?

    重ねての質問で申し訳ありません。

     

     

     

     

     

     

     

    2011年11月21日 0:27
  • そのケースまず、そのケースで一昨日以前のデータは必ず消えているという確証はありますか?

    ※クリーンアップタスクの削除対象ファイル拡張子が一致してなくて一切消えてないとかは無いですよね?

    もしもクリーンアップタスクの時分秒まで見ているとしたら、①を必ず消すというのは難しいかもしれませんね。

     

    代替案として、毎回同一ファイルで上書きするというのは検討されましたか?

    バックアップ自体がエラーになったらアレですが・・・

    • 編集済み aviator__ 2011年11月22日 9:24 ※部分を追記
    • 回答の候補に設定 山本春海 2011年11月30日 8:54
    • 回答としてマーク 山本春海 2011年12月1日 9:12
    2011年11月22日 9:22
  • ご回答ありがとうございます。

    一昨日以前は、問題なく削除されています。

    代替案としては、クリーンアップタスクをメンテナンスプランとは切り離し、必ずバックアップまで完了するであろう時間以降に

    クリーンアップタスクが実行される様にスケジューリングする方向で検討してみます。

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

     

     

    2011年11月28日 1:37