none
SQL Server 2008 R2で構築したDBのスケジュールバックアップが実行できない RRS feed

  • 質問


  • SQL Server 2008 R2で構築したDBに対し、SQL Server Management Studioを使用してバックアップのスケジュールタスクを作成しました。
    スケジュールされた時刻を過ぎてから確認したところ、バックアップが作成されませんでした。


    【タスク作成時の状況】
    バックアップのスケジュールタスクは、
    『[データベース] を展開し、 [タスク] から作成( http://technet.microsoft.com/ja-jp/library/ms187510.aspx )』
    ではなく、
    『メンテナンス プランを使用して作成( http://msdn.microsoft.com/ja-jp/library/ms191002%28v=sql.100%29.aspx )』
    しました。


    また、メンテナンス プランを使用してスケジュールタスクを作成についてもイレギュラーな部分がありました。

     ① 最初に、メンテナンス プラン ウィザードを使用してメンテナンス プランを作成した。
        ([プラン全体で単一のスケジュールを使用するか、スケジュールを使用しない]を選択後スケジュールを登録。
       複数のメンテナンスタスクを選択)

     ② ①を削除し、再度メンテナンス プラン ウィザードを使用してメンテナンス プランを作成しようとしたが、①と同じ
           メンテナンス プラン名が使用できなかった。

     ③ ①と別名のメンテナンス プランを作成しようとしたが、[ウィザードの進行状況]の最後でフェイルする。

     ④ 仕方がないので、ウィザードを使用しないで[新しいメンテナンス プラン]で①と別名のメンテナンス プランを作成。

     ※ この時点で、[管理] > メンテナンスプランブ] の下には、④のみ存在する


    【本日確認したオブジェクトエクスプローラの状況】
     ⑤ [SQL Server エージェント]が起動していない

     ⑥ [SQL Server エージェント] > [ジョブ] の下に、①で作成した名称のジョブ、④で作成した名称のジョブ、
           [syspolicy_purge_history]が存在する。

     ⑦ [ジョブの利用状態モニター]を確認したところ、⑥はいずれも実行されていない

     

    PS. レポートとログは、[レポートとログ記録]から作成したパスに作成されていました。
         (上記スケジュール時間とは無関係にSQLサーバを手動再起動した時間に)


    Q.1 タスクが実行されず、バックアップが作成されない件について:
        [SQL Server Agent]サービスを起動し、⑥の[SQL Server エージェント] > [ジョブ] の下の「①で作成した名称のジョブ」を
        無効化ないしは削除すればよいですか?


    Q.2 再度、メンテナンス プラン ウィザードを使用してメンテナンス プランを作成する方法について:
        ④のエントリーを削除し、⑥の[SQL Server エージェント] > [ジョブ] の下の「①で作成した名称のジョブ」、「④で作成した名称
        のジョブ」を削除すればよいですか?

    2011年6月6日 7:26

すべての返信

  • こんにちは。

    >Q.1 タスクが実行されず、バックアップが作成されない件について:

    ④を実行したいならそれで良いはずです。
    ジョブが実行されなかった原因はSQL Server Agentサービスが起動していなかったからだと思います。

    >Q.2 再度、メンテナンス プラン ウィザードを使用してメンテナンス プランを作成する方法について:

    それでOKだと思います。
    通常、メンテナンスプランを削除すればジョブも削除されるはずですが、
    何らかの理由でジョブが削除されなかったのでしょう。
    それで、同名のメンテナンスプランが作成できなかったのではないかと思います。

    以上、よろしくお願い致します。
    2011年6月6日 13:36
  • レスありがとうございます。

     

    >Q.1 タスクが実行されず、バックアップが作成されない件について:

    ④を実行したいならそれで良いはずです。
    ジョブが実行されなかった原因はSQL Server Agentサービスが起動していなかったからだと思います。

     

    これで作成されるようになりました。



    >Q.2 再度、メンテナンス プラン ウィザードを使用してメンテナンス プランを作成する方法について:

    それでOKだと思います。
    通常、メンテナンスプランを削除すればジョブも削除されるはずですが、
    何らかの理由でジョブが削除されなかったのでしょう。
    それで、同名のメンテナンスプランが作成できなかったのではないかと思います。

    以上、よろしくお願い致します。

    やってみたのですが、そもそもジョブを削除することができませんでした。

    以下、ジョブを直接削除しようとしたとき、「ジョブの利用状況」からジョブのエントリーを削除しようとしたときのエラー:

     Job’○○○.subplan_1'の削除に失敗しました。 (Microsoft.SqlServer.Smo)

     Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)

     DELETEステートメントはREFERENCE制約”FK_subplan_job_id”と競合しています。競合が発生したのは、データベース"msdb"、テーブル"dbo.sysmaintplan_subplans"、column’job_id’です。

    ステートメントは終了されました。 (Microsoft SQL Server、エラー:547)

     

     

     

     

     

    2011年6月13日 7:54
  • 当方でも同様の問題(エラーメッセージ)が発生しました。

    運用中のサーバで無かったのであいまいですが、現象としては、下記の流れで作業を行いジョブが削除できなくなっていました。

    1、メンテナンスプランを作成

    2、SQLServerのSP2適用

    3、メンテナンスプランの削除

    対処としては、添付したURLを参考に「sysmaintplan_subplans」テーブルのレコードを削除すると、JOBも削除できるようになりました。

     この作業によるほかへの影響は確認していませんが、参考までに。

    (参考URL)http://wsbs.wordpress.com/2010/08/17/sql-server%e3%81%ae%e3%83%a1%e3%83%b3%e3%83%86%e3%83%8a%e3%83%b3%e3%82%b9%e3%83%97%e3%83%a9%e3%83%b3%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b%e3%81%a8%e2%80%9dreference-%e5%88%b6%e7%b4%84-fk_sub/

    2011年10月11日 3:24