これは私を夢中にさせています。私はすべての提案を試しましたが、うまくいきません。
これは絶対にうまくいきません。ファイルはすべてまだそこにあります。
ジョブは正常に実行されますが、ファイルは削除されません。
これは私を夢中にさせています。私はすべての提案を試しましたが、うまくいきません。
これは絶対にうまくいきません。ファイルはすべてまだそこにあります。
ジョブは正常に実行されますが、ファイルは削除されません。
最近同じ問題に遭遇しましたが、それはフォルダーのアクセス許可が原因でした。簡単に確認できます:
奇妙な点は、惨めに失敗したにもかかわらず、計画が常に「成功」したことです。これが、教師が生徒に自分のテストを採点させてはならない理由です。(ニヤニヤ)。
私が見つけた唯一の解決策は、クリーンアップタスクから生成されたSQLを取得し、代わりにSPで実行することでした。このプランが生成するSQLは、完全に実行されます!!!!!
これは私が実行するために使用しているコードであり、機能します。
ALTER PROCEDURE spUtility_delete_OldBackups
AS
DECLARE @date varchar(28)
SET @date = CONVERT(varchar(28),DATEADD(DAY, -5,GETDATE()))
EXECUTE master.dbo.xp_delete_file 0, 'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\', 'bak', @date,1
EXECUTE master.dbo.xp_delete_file 0,'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\','diff', @date,1
EXECUTE master.dbo.xp_delete_file 0,'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\EEIDW\','trn', @date,1
これはどのアカウントで実行されていますか? ドメイン管理者、サービスなど?
バッチ ジョブを作成し、Windows スケジューラを使用して x 週間にわたって .bak ファイルをクリーンアップする方が簡単だといつも思っていました。ジョブ履歴を見て、タスクが失敗したか成功したかを確認できますか。サーバーのイベント ビューアーも確認する価値があるかもしれません。
問題なく実行される同様のジョブがあります。SQLServerAgent はどのアカウントで実行されますか。これらのメンテナンス プランは SQLServerAgent として実行されます。SQLServerAgent が実行されるセキュリティ コンテキストに適切な権限がない場合、このジョブは失敗します。いくつかのジョブ履歴があるはずです。それはあなたにもっと教えてくれます。