SQLエージェントジョブの詳細な出力を取得する


15

サーバー上のすべてのデータベースのインデックスを再作成するメンテナンスプランを実行するSQL Serverエージェントジョブがあります。最近、これは失敗しましたが、ジョブ履歴は問題を診断するのに十分な情報を提供していません。

ジョブ履歴に「ジョブが失敗しました」と表示されます。ジョブはユーザーfoo \ barによって呼び出されました。実行する最後のステップはステップ1(インデックスの再構築)でした。

詳細ウィンドウには、次の形式の複数のメッセージがあります。

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

実行中のSQLステートメントは切り捨てられており、ステートメントの出力も切り捨てられているため、どの特定のステートメントが失敗したのか、その理由を特定できないと思います。これらのメッセージの全文を抽出する方法はありますか?


1
@kinはあなたの最初の質問に答えるのに良い仕事をしていると思いますが、私の意見では、これはよりデバッグの問題です。インデックスが失敗していることがわかっている場合は、その特定のインデックスが失敗している理由を特定しようとします。使用されているSQLコードを確認できますか?ストアドプロシージャにありますか?それを絞り込むためにいくつかのことができます。そのインデックスのみでジョブを作成します。そのジョブの実行中にSQLトレースを実行します。使用したSQLをキャプチャしてから、問題の再現を試みます。
サーズアロット

回答:


18

これらのメッセージの全文を抽出する方法はありますか?

2つの方法で実現できます-ジョブステップに進み、[詳細設定]タブを選択します。

a。ファイルへの出力(<== My preferred method)

ここに画像の説明を入力してください

b。「テーブルにログ」と「履歴にステップ出力を含める」(<== msdb..sysjobhistoryメッセージはのnvarchar(max)代わりに保存されるため、長期的にトリミングする必要がありますnvarchar(1024)

ここに画像の説明を入力してください

追加のログ情報を表示するには、このストアドプロシージャsp_help_jobsteplogを使用するか、msdb.dbo.sysjobstepslogsテーブルを直接クエリする必要があります。

詳細はこちら


乾杯、これを試してみます。お知らせするために、そのテーブルの正しい名前はmsdb.dbo.sysjobstepslogs(「ログ」ではなく「ログ」)です。回答を編集しようとしましたが、1文字の編集は許可されていません。
トリアン

1
@toryan np。回答を編集しました。私があなたの質問に答えたと感じたら、投票してください/答えとしてマークしてください。
キン・シャー

1
ジョブを再実行しましたが、今回はエラーを1つだけ生成し、説明したようにテーブルに記録しました。残念ながら、クエリのテキストはまだ切り捨てられています-詳細情報を取得する方法はありますか?
トリアン

疑わしい。私の答えで説明したように、出力ファイルの方法1で試すことができます。
キン・シャー

1
@toryan私は同じ問題を抱えていた-ロギングがしてまだでも、テーブルに出力(方法上記(b))と読書で、切り捨てsysjobstepslogs。これは、この問題に関するほとんどのオンラインディスカッションの推奨事項でした。しかし、方法(a)、ファイルへの出力には、この問題はありませんでした。テキストファイルには、すべてのジョブステップロギングが表示され、最終的に切り捨てられません。(私の場合、私のジョブステップはDTEXECコマンドで、SSISパッケージを実行しています。)唯一の欠点:ファイルに追加しない限り、最後の実行のみが表示されます。追加するのではなく、以前の実行では切り捨てを選択します。
-Doug_Ivison

2

全文を取得できます:

  1. 仕事に行く
  2. 右クリック select properties
  3. 仕事のステップに行く
  4. ボタンを選択stepしてクリックしeditます
  5. を選択しadvancedます。ここで、ログパスを確認できます。

今、その単純なパスに従ってください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.