最近、新しい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
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秒かかりました。
同じように続けます:
そのため、削除しようとした(そして失敗した)ファイルが多数あったようです。
また、明確にするために、上記のすべてのテストでもファイルを削除できませんでした。上記の最後のテストの後で、1024ファイルの「読み取り専用」属性を入力してオフにし、再度実行しました。すべての1024ファイルが(25秒で)正常に削除されました。
したがって、9.5分の待機は、削除しようとしたファイルの数が多かったためと思われます。