web-dev-qa-db-ja.com

Ola Hallengrenソリューション、バックアップがクリーンアップしない

私は約30のSQL Server 2005-2014インスタンスを使用しており、すべてのインスタンスが優れたOla Hallengranメンテナンススクリプトを使用して、完全/差分/ログバックアップを作成しています。これは何年もの間、最近まで問題なく機能してきました。

サーバーの1つに2つのインスタンスがあります。そのサーバーのデフォルトのインスタンスの場合、.bakファイルのクリーンアップは行われません。

これはスクリプトとは関係がないと思いますが、クリーンアップが行われると.bakファイルがロックされる可能性があります。バックアップウィンドウが別のプロセスと競合している場合に備えて、バックアップのスケジュールを変更しました。同じボックス上の名前付きインスタンスを含め、他のインスタンスにはこの問題はありません。

インスタンスのエージェントは、物理サーバーRAID 5(残念ながら)の専用共有であるバックアップターゲットボリュームを完全に制御できるドメインアカウントで実行されるため、これは権限の問題ではないことがわかりました。次のようなグループポリシー権限があります。

  • トラバースチェックのバイパス
  • バッチジョブとしてログオン

バックアップサーバーのすべてのイベントログを確認しましたが、トラブルシューティングに役立つものは何もありませんでした。

誰も私がこの問題をトラブルシューティングできるかもしれない方法についてアドバイスを提供できますか?

ありがとう

更新:

  • サーバー上の日付/時刻は、DCおよびワークステーションと一致しています。バックアップサーバーも完全な時刻同期を備えているため、タイムスリップの問題はありません。
  • @cleanupTimeは、私が残したとおりです(72時間)。
  • 私は当初、そのボリュームのテープバックアップが原因であると想定していましたが、ファイルがロックされていないことを確認およびトリプルチェックしました。そのボリュームのVeeamバックアップは、週に1回のみ行われます。

問題なくファイルを手動で削除できます。

コマンドの最後に-oを追加して、コマンドがどのように見えるかを確認しました。原因となる可能性があると私が思う唯一のものは:

日付と時刻:2015-10-20 11:29:58コマンド:DECLARE @ReturnCode int EXECUTE @ReturnCode = [master] .dbo.xp_delete_file 0、N '\ backupServer\Production\SQLInstance01\Reporting_Database\FULL'、 'bak' 、 '2015-10-17T03:29:58' IF @ReturnCode <> 0 RAISERROR( 'Error deleted files。'、16、1)結果:成功した継続時間:00:00:00

そのため、コマンドはバックスラッシュで終了していないUNCパスを使用しているようです。 xp_delete_file SPにはバックスラッシュが必要です。

https://stackoverflow.com/questions/24582996/sql-server-xp-delete-file-parameters

したがって、これはおそらく赤いニシンですが、-oの出力に基づいて、xp_delete_file SPは正しく機能しません。別の出力を確認します比較するためにこの問題を示さないインスタンス。ご提案ありがとうございます。

Update#2:ファイルを正しくクリーンアップする別のインスタンスのコマンドに-oを追加しましたが、この出力も出力ファイルに末尾の\がないため、まだ困っています。

Update#3:コマンドを出力ファイルからSSMSにドロップして、ファイルを削除しようとしました。私が見つけたのは、このコマンドが他のインスタンスでも正しく機能することです。 **「コマンドは正常に完了しました」と表示されますが、ファイルは削除されません。 xp_delete_fileを使用する機能を有効/無効にするインスタンスレベルの設定はありますか?

4
Peter

これは頭​​に浮かぶランダムなもののリストです。問題があるとは保証できません。

  • サーバー上のDateTimeがノックアウトされました
  • バックアップストアのDateTimeがノックアウトされました
  • 誰かがエージェントジョブの@CleanupTimeを変更しました(偶発的に)
  • クリーンアップがファイルのロックを実行しようとしているときにバックアップの場所のバックアップがあります(これは自分で行ったことがあります)

これは最近の問題であり、たまたま起こっただけではないというので、手動でファイルを削除しても、永久に使用されていないことを示していると思います。

たとえば、コマンドの出力をファイルに書き込むには、最後に-oコマンドを実行する価値があります( '-b'が '-b -o C:\ Logs\backuplog.txt'になる可能性があります)。それが何か問題を引き起こしているかどうかについてそれを相談してください

3
Ste Bov