web-dev-qa-db-ja.com

Ola Hallengrenスクリプトは古いバックアップファイルを削除せず、単に時間をかけます

最近、新しいSQL Serverに移行しましたが、SQLサービスはサービスアカウントで実行されています。サービスアカウントにGドライブに対するFULL権限がなく、古いファイルがクリーンアップされていないことがわかりました。

質問:なぜxp_delete_file手順Error outファイルを削除できない場合OR約9.5分待つのではなく、単に次に進みますか?

また、古いバックアップを削除できない場合、ジョブはエラーになりませんか?受け取るまではわかりませんLOW DISK SPACEアラート!!

ログの詳細は次のとおりです。

Date and time: 2017-05-23 02:02:17
Command: BACKUP LOG [DBName] TO DISK = N'G:\SQLBackups\ServerName\DBName\LOG\ServerName_DBName_LOG_20170523_020217.trn' WITH CHECKSUM, COMPRESSION
Processed 17 pages for database 'DBName', file 'DBFileName_Log' on file 1.
BACKUP LOG successfully processed 17 pages in 1.206 seconds (0.110 MB/sec).
Outcome: Succeeded
Duration: 00:00:01
Date and time: 2017-05-23 02:02:18

Date and time: 2017-05-23 02:02:18
Command: RESTORE VERIFYONLY FROM DISK = N'G:\SQLBackups\ServerName\DBName\LOG\ServerName_DBName_LOG_20170523_020217.trn' WITH CHECKSUM
The backup set on file 1 is valid.
Outcome: Succeeded
Duration: 00:00:02
Date and time: 2017-05-23 02:02:20

Date and time: 2017-05-23 02:02:20
Command: DECLARE @ReturnCode int EXECUTE @ReturnCode = [master].dbo.xp_delete_file 0, N'G:\SQLBackups\ServerName\DBName\LOG', 'trn', '2017-05-16T02:02:20' IF @ReturnCode <> 0 RAISERROR('Error deleting files.', 16, 1)
Outcome: Succeeded
Duration: 00:09:28
Date and time: 2017-05-23 02:11:48

追伸サービスアカウントにFULL権限が付与され、古いファイルがクリーンアップされています。

バージョン情報:SQL Server 2012 SP3 CU8/Windows Server 2012

2

xp_delete_fileにディレクトリとチェックするファイル拡張子を提供しています。実行に9.5分かかったときに、削除する必要があるファイルはいくつありましたか。

プロセスが各ファイルを削除しようとし、最終的に各ファイルの削除に失敗することは理にかなっています。削除しようとするファイルが1つある場合、100の場合よりもはるかに速く完了します。

これを確認するために、2017年3月1日付けの1 .bakファイルを(最初に)配置するディレクトリを作成し、それを「読み取り専用」に設定しました(そのため、削除されません)。次のコマンドを実行して、それを削除しようとしました。

EXECUTE master.dbo.xp_delete_file 0,N'H:\Dummy_Backup',N'bak',N'2017-04-27T14:09:10'

1ファイルの場合、コマンドは1秒未満で正常に完了しました(ただし、ファイルは削除されませんでした)。

ファイルのコピーを作成したため、64個のファイルがあり、再度実行しました。今回は1秒かかりました。

同じように続けます:

  • 256ファイル-5秒
  • 512ファイル-15秒
  • 1024ファイル-31秒

そのため、削除しようとした(そして失敗した)ファイルが多数あったようです。

また、明確にするために、上記のすべてのテストでもファイルを削除できませんでした。上記の最後のテストの後で、1024ファイルの「読み取り専用」属性を入力してオフにし、再度実行しました。すべての1024ファイルが(25秒で)正常に削除されました。

したがって、9.5分の待機は、削除しようとしたファイルの数が多かったためと思われます。

1
RDFozz