0

これは私を夢中にさせています。私はすべての提案を試しましたが、うまくいきません。

これは絶対にうまくいきません。ファイルはすべてまだそこにあります。

ジョブは正常に実行されますが、ファイルは削除されません。

ここに画像の説明を入力

4

4 に答える 4

2

最近同じ問題に遭遇しましたが、それはフォルダーのアクセス許可が原因でした。簡単に確認できます:

  1. 最近の bak または trn ファイルのプロパティ、セキュリティを確認し、所有者を特定します。
  2. ここで、バックアップ FOLDER のプロパティ、セキュリティを確認し、手順 1 の FILE 所有者がファイルを削除するのに十分な有効なアクセス許可を持っているかどうかを確認します。アカウントには、ファイルを作成および変更するのに十分なだけで、ファイルを削除するのに十分でない場合があります。

奇妙な点は、惨めに失敗したにもかかわらず、計画が常に「成功」​​したことです。これが、教師が生徒に自分のテストを採点させてはならない理由です。(ニヤニヤ)。

于 2012-09-12T15:27:40.023 に答える
1

私が見つけた唯一の解決策は、クリーンアップタスクから生成された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
于 2011-04-14T19:59:06.937 に答える
1

これはどのアカウントで実行されていますか? ドメイン管理者、サービスなど?

バッチ ジョブを作成し、Windows スケジューラを使用して x 週間にわたって .bak ファイルをクリーンアップする方が簡単だといつも思っていました。ジョブ履歴を見て、タスクが失敗したか成功したかを確認できますか。サーバーのイベント ビューアーも確認する価値があるかもしれません。

于 2011-04-14T19:45:29.453 に答える
0

問題なく実行される同様のジョブがあります。SQLServerAgent はどのアカウントで実行されますか。これらのメンテナンス プランは SQLServerAgent として実行されます。SQLServerAgent が実行されるセキュリティ コンテキストに適切な権限がない場合、このジョブは失敗します。いくつかのジョブ履歴があるはずです。それはあなたにもっと教えてくれます。

于 2011-04-14T19:47:08.237 に答える