トップ回答者
SQLServer2008R2のメンテナンスプランでクリーンアップがうまく動かない事がある

質問
-
SQLServer2008R2のメンテナンスプランで、クリーンアップを設定し、自動運転にて「1日経過」後に削除する設定を行っています。
この設定により、普段は問題なく動いているのですが、たまに、クリーンアップされない事象が発生します。
そのクリーンアップタスクは、メンテナンスプランウィザードで作成した後、最後にクリーンアップを手動で追加しています。
ちなみに、クリーンアップまでのジョブは問題なく正常に完了している模様です。(SQLServerのログにもエラーは出力されていません。)
意図としては、毎日のクリーンアップ実行により、前日のSQLServerバックアップを削除したく、今回の現象は、当日のバックアップ後、前日のバックアップファイルが削除できなかった現象についての質問です。
尚、SQLServer2008R2に、サービスパックは適用していません。
こういった現象は起こりえるのでしょうか?- 編集済み あゆむくん 2011年11月18日 11:12
回答
-
あくまで私の実体験としてですが、出力先がNASだったりするとすごい動作をするケースがあり得ます。
例)出力先がNASで、NASのシステム日付が狂っている時。
※実際の日付が2011/11/20日なのに、NASの日付が2011/10/20だった場合等
上記のケースでは、バックアップファイルの保持期間を1日としても、1ヶ月と1日立たないと消えません。
ちなみに私が経験したのは、NASの日付が未来日になっていて、保持期間1週間なのに出力と同時に消されるという現象でした(笑
同様の現象かは解りませんが、参考になればと思います。
-
そのケースまず、そのケースで一昨日以前のデータは必ず消えているという確証はありますか?
※クリーンアップタスクの削除対象ファイル拡張子が一致してなくて一切消えてないとかは無いですよね?
もしもクリーンアップタスクの時分秒まで見ているとしたら、①を必ず消すというのは難しいかもしれませんね。
代替案として、毎回同一ファイルで上書きするというのは検討されましたか?
バックアップ自体がエラーになったらアレですが・・・
すべての返信
-
あくまで私の実体験としてですが、出力先がNASだったりするとすごい動作をするケースがあり得ます。
例)出力先がNASで、NASのシステム日付が狂っている時。
※実際の日付が2011/11/20日なのに、NASの日付が2011/10/20だった場合等
上記のケースでは、バックアップファイルの保持期間を1日としても、1ヶ月と1日立たないと消えません。
ちなみに私が経験したのは、NASの日付が未来日になっていて、保持期間1週間なのに出力と同時に消されるという現象でした(笑
同様の現象かは解りませんが、参考になればと思います。
-
ご回答ありがとうございます。
なるほど、良くも悪くも、タイムスタンプで判断しているということですね。
今回の件、全てローカルとなっているので、タイムスタンプは関係ないのかな?と思っていたのですが、
ひょっとして、前日のバックアップが例えば「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秒 ←このタイミングで実行すると、①のバックアップ完了時間よりも早い時間のため、削除されない?
もし、削除されない場合、時間が逆転した場合にも、①のバックアップデータを削除する方法はありませんでしょうか?
重ねての質問で申し訳ありません。
-
そのケースまず、そのケースで一昨日以前のデータは必ず消えているという確証はありますか?
※クリーンアップタスクの削除対象ファイル拡張子が一致してなくて一切消えてないとかは無いですよね?
もしもクリーンアップタスクの時分秒まで見ているとしたら、①を必ず消すというのは難しいかもしれませんね。
代替案として、毎回同一ファイルで上書きするというのは検討されましたか?
バックアップ自体がエラーになったらアレですが・・・