none
SQL Server 2012 SP2 メンテナンスクリーンアップタスクにてバックアップファイルが削除されない。 RRS feed

  • 質問

  • いつも大変お世話になっております。

    対象機器情報

    Windows Server 2012 R2

    SQLServer 2012 Sp2

    メンテナンスプランにてバックアップジョブから削除ジョブまでタスクで設定しておりますが、

    バックアップジョブは正常実行されますが、削除ジョブが実行されません。

    テストした内容

    1.バックアップファイルをローカルフォルダに作成し、削除ジョブ実行⇒削除されず。

    2.バックアップファイルと同じフォルダ内にあるレポートファイルはメンテナンスプラン テキストレポートを実行すると正常に削除される。

    3.試しにバックアップ拡張子を変更し、試しましたが失敗。

    4.バックアップ拡張子をTXTに変更しましたが、失敗。

    結果、メンテナンスクリーンアップタスクのバックアップファイルの削除が正常に動作せず。メンテナンスプランテキストレポートは正常に動作していると認識しております。

    ご回答の程、よろしくお願い致します。


    2015年6月3日 23:42

回答

  • 2012のメンテナンスプランの動作では今回のファイルは消えなかったと思います。

    バックアップ情報の中に出力先パスを持っている様で、
    後処理などで消そうとした場合に別パスのファイルは削除されませんでした。

    下記の内容を試すと検証できます。
    1.メンテナンスプランで別の場所に出力されたバックアップファイルをコピーする。
    2.上記と同じ場所にメンテナンスプランの出力先を変更する。
    3.メンテナンスプランを実行する。
    この結果として、3.で出力されたファイルは後々削除されますが、1.のファイルは削除されません。



    • 編集済み aviator__ 2015年6月4日 9:36
    • 回答の候補に設定 星 睦美 2015年6月10日 7:27
    • 回答としてマーク 星 睦美 2015年6月30日 4:45
    2015年6月4日 9:25

すべての返信

  • そのクリーンアップタスクをダブルクリックし、「T-SQLの表示」ボタンを押すとT-SQLが表示されますので、それを見せていただけないでしょうか? もちろん、公開してまずい部分は伏字にして下さい。
    あとは、そのジョブを実行しているアカウントのアクセス権がどうなっているかでしょうか・・・?

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年6月4日 2:07
  • いつも大変お世話になっております。

    ご回答頂きましてありがとうございます。

    以下、T-SQL文と保存先ファイル情報となります。

    EXECUTE master.dbo.xp_delete_file 0,N'保存先',N'bak',N'2015-06-03T11:34:20'

    保存先ファイル名:backup_201505270212.bak 更新日付:5/27

    特記事項として、

    別のSQLServer2012 SP2にて上記T-SQLを実行すると、削除されます。

    >あとは、そのジョブを実行しているアカウントのアクセス権がどうなっているかでしょうか・・・?

    アカウントは管理者権限です。また、保存先フォルダは削除・作成・変更等はフル権限となっております。

    気になる点としては、

    ・SQLServer2008 R2 ExpressEdtionが別途インストールされていること

    ・バックアップファイルの作成とバックアップファイルの削除ではサービスアカウントが影響しているということはありますか?

    以上となります。

    ご確認の程、よろしくお願い致します。

    2015年6月4日 2:42
  • いろいろ了解いたしました。一つ気になったことは、

    EXECUTE master.dbo.xp_delete_file 0,N'保存先',N'bak',N'2015-06-03T11:34:20'

    の最後に「,1」が無いことです。つまり、サブフォルダーが削除対象になっていません。
    ただ、この辺りはメンテナンスプランのデザイナ画面でも確認できますので、見逃していることはないと思いますが、一応ご確認下さい。もちろん、サブフォルダーを作成してバックアップを取っていなければ全く問題ない話なのですが・・・。
    よくあるのが、bakの前にピリオドがあることなんですが、これも無いようですし・・・

    あと、上記のクエリを手動で実行した際にどうなるかでしょうか? パラメーターの日時は、その日時より前(以前?)の日時のファイルが削除されるということです。


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年6月4日 3:07
  • あと、バックアップ先がNTFS圧縮等、特殊な設定になっていないでしょうか? この場合はうまく行かないかもしれません。

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年6月4日 6:35
  • trapemiya様

    ご回答頂きまして、誠に有難うございます。

    1.保存先フォルダ直下にBAKファイルは存在します。

    2.念のため、サブフォルダも含めるにチェックしましたが、ダメでした。

    3.クエリを手動にて行った場合も、同じく削除されません。

    4.バックアップ先の設定に問題がある場合、他のSQLServerから削除できることは無いと考えております。

      また、バックアップ先のファイルは削除等が出来ていること、

      メンテナンスプラン テキストレポートは正常に実行されていることから、問題無いと考えます。

    以上となります。

    ご確認の程、よろしくお願い致します。


    • 編集済み AIS-WD 2015年6月4日 7:03
    2015年6月4日 6:50
  • 2012のメンテナンスプランの動作では今回のファイルは消えなかったと思います。

    バックアップ情報の中に出力先パスを持っている様で、
    後処理などで消そうとした場合に別パスのファイルは削除されませんでした。

    下記の内容を試すと検証できます。
    1.メンテナンスプランで別の場所に出力されたバックアップファイルをコピーする。
    2.上記と同じ場所にメンテナンスプランの出力先を変更する。
    3.メンテナンスプランを実行する。
    この結果として、3.で出力されたファイルは後々削除されますが、1.のファイルは削除されません。



    • 編集済み aviator__ 2015年6月4日 9:36
    • 回答の候補に設定 星 睦美 2015年6月10日 7:27
    • 回答としてマーク 星 睦美 2015年6月30日 4:45
    2015年6月4日 9:25