SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法

SQL Serer の メンテナンスプランで、データベースのバックアップをとったり、古くなったバックアップファイルを削除したりすることがあると思います。

ここでは、メンテナンスクリーンアップタスクで、データベースのバックアップファイルを削除するように設定していて、実行結果は成功ステータスなのにファイルは削除されない、という時の原因のひとつと対処方法をご紹介します。

メンテナンスクリーンアップタスクの設定と状況の確認

今回の例では、次のように SQL Server のメンテナンスプランで、1 日一回 12:00 AM にデータベースのフルバックアップを取ってから、メンテナンスクリーンアップタスクで古いバックアップファイルを削除します。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 1


メンテナンスクリーンアップタスクの設定は次のようになっていて、C:\Test\MYSQL\Backup フォルダ内の、一週間より前に作成された bak 拡張子のファイルを削除するように設定しています。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 2


このメンテナンスプランを実行すると以下のように成功しているように見えるのに、bak ファイルは削除されていないというような状況が起こった時の対処方法のひとつを今回はご説明します。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 2-1


メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法

実行が成功しているのに、メンテナンスクリーンアップタスクでファイルが削除されない時には、フォルダの権限が足りていない可能性があります。

解決方法のひとつとして SQL Server のデフォルトの Backup フォルダと同様に、メンテナンスクリーンアップタスクで指定しているフォルダに NT SERVICE⧹MSSQLSERVER のアカウントにフルコントロールのアクセス許可を与えることによって解決されることがあります。

NT SERVICE\MSSQLSERVER はデータベースエンジンサービスの既定のインスタンスの仮想アカウントです。

[SQL Server のデフォルトの backup フォルダの権限]

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 3


メンテナンスクリーンアップタスクで指定しているフォルダを右クリックして、プロパティ画面のセキュリティタブを開きます。

MSSQLSERVER は存在していないので、[編集] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 4


[追加] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 5


場所にローカルのコンピュータを選択し、オブジェクト名に NT SERVICE\MSSQLSERVER と入力し、[名前の確認] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 6


複数の名前が見つかった場合は MSSQLSERVER を選択して、[OK] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 7


MSSQLSERVER が選択されたことを確認して、 [OK] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 8


MSSQLSERVER を選択し、フルコントロールにチェックを入れて、[OK] ボタンをクリックします。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 9


メンテナンスクリーンアップタスクで指定しているフォルダに、NT SERVICE⧹MSSQLSERVER アカウントにフルコントロールのアクセス許可を与えることができました。

SQL Server - メンテナンスクリーンアップタスクでファイルが削除されない時の対処方法 10

これで、再度メンテナンスクリーンアップタスクを実行してみてください。


以上、メンテナンスクリーンアップタスクでファイルが削除されない原因のひとつと対処方法をご紹介しました。

© 2010-2024 SQL Server 入門