問題タブ [sql-agent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
57 参照

sql-server - 失敗した SQL エージェント ジョブのレポート

過去 XX 分/日などに失敗したジョブを返す SQL Server クエリを作成しようとしています。

基本的に、失敗したジョブごとに、各ステップのメッセージを連結した 1 つのレコードが必要です。以下のクエリを作成しましたが、グループ化により、この特定のインスタンスだけでなく、ジョブ全体に対して 1 つの連結されたメッセージが表示され、解決できません。任意の支援をいただければ幸いです:)

0 投票する
1 に答える
1091 参照

configuration - エージェント サービスは 2012 Standard Edition で開始されず、サポートされていないエディションを主張します

これは、SQL Server 2012 Standard Edition の既定のインスタンスからメールが届かない理由を突き止めようとしたことから始まりました。エージェント ジョブは正常に実行されていますが、最後にサーバーで電子メールを送信しようとして成功したのは 2016 年 2 月 2 日で、次に電子メールを送信しようとしたのは 2016 年 3 月 8 日でした (それ以降のすべての電子メールには NULL sent_account_id があり、 sent_status 0)。

現在の電子メール構成を削除し、デフォルト インスタンスで最初から再構成することにしました。これには、エージェント サービスを再起動して、電子メールで通知を送信できるようにする必要があります。エージェント サービスの再起動に失敗しました。SQLAGENT.OUT は次を示します。

一番興味深いのは下から 3 行目です。「このサービスをインストールした SQL Server のエディションは、SQL Server エージェントをサポートしていません。」私の知る限り、このサーバーには Express Edition インスタンスはありませんでした。このサーバーには 2 つの Standard Edition インスタンスがあり、どちらも同じ電子メールの問題を抱えており、いずれかのインスタンスで「SELECT @@VERSION」を実行すると、次の結果が返されます。

Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 2015 年 10 月 20 日 15:36:27 Copyright (c) Microsoft Corporation Standard Edition (64 ビット) on Windows NT 6.1 (Build 7601: Service Pack 1) (ハイパーバイザー)

2016 年 2 月 8 日に SP3 がインストールされた後にサービスが新しく開始されたため、エージェントにいくつかの問題が発生するように、その後何かが変更されたに違いありません。別のサーバー (同じプロジェクトのテスト インスタンス) を見つけたところ、同じ問題が見つかりました。これは、2015 年 7 月 27 日から 2015 年 9 月 5 日の間に始まり、その期間 (またはそれ以降) に SQL Server の更新は適用されませんでした。

メールの問題を修正することが私をこの道に追いやったのですが、エージェントを再び実行することがより優先されます (そして、メールの問題を修正する可能性があります)。

明らかに Standard Edition であり、Agent サービスがサービスの再起動の数分前にジョブを実行していた場合に、Agent がこれを Express Edition インスタンスであると混乱させる原因は何ですか?

このサーバーの 2 番目のインスタンスでエージェント サービスを再起動していません。このインスタンスは常に正常にジョブを実行していました (サービスの再起動が試行されるまで、デフォルト インスタンスのサービスと同様でした)。

[追記] Agent サービスを Local Service アカウントで実行するように変更しようとすると、「指定されたファイルが見つかりません。[0x80070002]」という結果になりました。

SQLエラーログでこれを見つけました:

キュー 'msdb.dbo.ExternalMailQueue' で実行されているアクティブ化された proc '[dbo].[sp_sysmail_activate]' は、次の出力を出力しました: 'DatabaseMail.exe プロセスを作成できませんでした。API 'CreateProcess' の実行がエラー番号 2 で失敗しました。

0 投票する
0 に答える
1291 参照

sql-server - SQL エージェントが朝に実行されるまで、式をデータ型 nvarchar に変換する算術オーバーフロー エラー 8115

午前 9 時 15 分から午後 6 時まで 15 分ごとに実行される SQL エージェント ジョブがあります。

結果があれば、自分宛てにメールします。なんらかの理由で、過去 2、3 週間、SQL エージェントがジョブを開始する午前 9 時 15 分より前にそのクエリを実行できず、件名のエラー メッセージで失敗しました。次の試行はすべて問題なく機能します。手動で実行しようとすると、午前 9 時 15 分以前にのみ失敗します。本当に困惑し、ここで何が起こっているのかわかりません。

datereq フィールドは datetime、db_name は nchar です。チェックする11番目のデータベースで失敗しますが、テーブルをチェックしましたが、他のテーブルとまったく同じです。

何か案は?:)

0 投票する
1 に答える
269 参照

sql-server - msdb.dbo.sysjobhistory からのデータの集計

エージェント ジョブを実行するたびに、データがログに記録されます。これらのデータには、次のように T-SQL 経由でアクセスできますSELECT * FROM msdb.dbo.sysjobhistory WHERE step_id = 0。ジョブに関する概要情報が表示されます。

問題は、失敗したステップがあったが、「失敗時のアクション」が「次のステップに進む」だった場合、run_status成功が表示されることです。

データを集計しようとしましたstep_id <> 0が、ジョブの各実行を区別する方法がわかりません。

その問題を手伝ってくれませんか?最良の結果は、最初のクエリで示されたジョブに表示されたステータスの個別のリストを含む追加の列です。

私が達成したいのは、最終日に実行されたジョブ (そのうちのいくつかは 1 日に複数回) の毎日のレポートです。

0 投票する
0 に答える
38 参照

sql - SSIS パッケージを実行しようとしたときの SQL エージェント ジョブ エラー

VSで実行すると正常に動作するSSISパッケージがあります。に変更しprotection levelましたDont Save Sensitive。また、SQL エージェント ジョブ アカウントによって上書きされるファイル関連のアクセス許可も与えました。

私が得ているエラーは次のとおりです。

これまでのところ、コードを変更する必要があるという印象を受けましたが、コードが本当に問題である場合、パッケージは最初から実行されませんでした。これは明らかにそうではありません。

どうすれば解決できますか?

0 投票する
3 に答える
530 参照

wmi - 一部の SQL 2016 可用性グループ インスタンスで WMI SQLSERVERAGENT_SQLAgentJobs クエリがデータを返さない

SQL Server エージェントには、ジョブを監視するためのパフォーマンス オブジェクトとカウンターがあります。Windows Performance Monitor アプリケーションを使用すると、いつでもデータを確認できます。

パフォーマンスモン

しかし、gwmi Win32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobs一部のサーバーで PowerShell を使用しようとすると、インスタンスが返されません。WBEMTest と wmic.exe でテストした場合と同じ結果です。

実行するtypeperf -qxと \SQLAgent:Jobs(_Total)* メトリックが多数表示されますが、WMI クエリを使用してWin32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobsまたはWin32_PerfRawData_SQLSERVERAGENT_SQLAgentJobsクラスから結果を取得するにはどうすればよいですか?

更新:うーん...これは、SQL Server 2016 CU1 または SP1 CU2 可用性グループ インスタンスをクエリするときに問題になる可能性がありますが、一部のサーバーでは機能しますが、他のサーバーでは機能しません。更新を適用した後に動作を停止したように見え、システムを再起動した後でも、カウンターはインスタンスを返しません。スタンドアロン インスタンスでは常に期待どおりのデータが返されるため、この問題をまだ再現できていません。

また、これらのカウンターはsys.dm_os_performance_countersビューでは利用できないことに注意してください。

0 投票する
0 に答える
1419 参照

sql-server - 「EXECUTE master.dbo.xp_sqlagent_is_starting @retval OUTPUT」が原因の SSIS エラー

SQLエージェントジョブを開始するために、sql2012用に開発されたssisパッケージ(および構成ファイル)があります。次のコマンドは、パッケージ全体で使用されます。

そして、ステップレベルでSQLエージェントジョブを開始する権限を持つユーザーとして実行すると、以下のエラーメッセージが表示されます。

コード: 0xC0202009 ソース: データ収集 OLE DB ソース [20]
説明: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 説明: "プロシージャ 'sp_is_sqlagent_starting' のステートメント 'EXECUTE master.dbo.xp_sqlagent_is_starting @retval OUTPUT' が拡張ストアド プロシージャを呼び出すため、メタデータを特定できませんでした。

私は次のことを試しました:

  • DBA に grant execute パーミッションを付与してもらいました master.dbo.xp_sqlagent_is_startingが、それでも問題は解決しませんでした。sysadmin としてパッケージを実行します。これはうまくいきます
  • オフにして、OLEDB 接続用のパッケージ構成ファイルの 1 つのオプション。これは問題に影響を与えていないようでした。
  • どこを見ても、問題はopenrowset パッケージで使用していないものに関連しているようです。

これに対する解決策はありますか (sysadmin として実行する以外に)?

ありがとう

0 投票する
0 に答える
300 参照

visual-studio - SQL Server、新しいジョブが失敗する

私は SQL Server 2012 を使用しており、テーブル内のデータを upsert するための SSIS パッケージを作成しています。これを Visual Studio 2012 で実行すると機能します。

新しいジョブを作成しようとすると (これは初めてです)、ジョブを開始すると失敗し、ジョブの履歴に次のエラーが表示されます。

ユーザーとして実行: NTCH01_SQLAgent2012。Microsoft (R) SQL Server Execute Package Utility バージョン 11.0.5583.0 for 32 ビット Copyright (C) Microsoft Corporation. 全著作権所有。

開始: 16:21:24 エラー: 2016-08-24 16:21:24.85
コード: 0xC0202009
ソース: データをステージング テーブル OLE DB 宛先 [132] に読み込みます
説明: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。
OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 説明: "キャスト仕様の無効な文字値".
OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 説明: "キャスト仕様の無効な文字値".
終了エラー

エラー: 2016-08-24 16:21:24.85
コード: 0xC020901C
ソース: データをステージング テーブル OLE DB 宛先にロードします [132]

説明: OLE DB Destination の OLE DB Destination.Inputs[OLE DB Destination Input].Columns[BANK_GUARANTEE_EXPIRY_DATE] でエラーが発生しました。
[OLE DB宛先入力]を入力します。返された列のステータスは、「データが失われる可能性があるため、値を変換できませんでした。」でした。
終了エラー

エラー: 2016-08-24 16:21:24.85
コード: 0xC0209029
ソース: データをステージング テーブル OLE DB 宛先 [132] にロードします
説明: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラー コード 0xC0209077 が発生したため、"OLE DB Destination.Inputs[OLE DB Destination Input]" が失敗し、"OLE DB Destination.Inputs[OLE DB Destination Input]" のエラー行の処理でエラーの失敗が指定されています。指定されたコンポーネントの指定されたオブジェクトでエラーが発生しました。
これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。
終了エラー

エラー: 2016-08-24 16:21:24.85
コード: 0xC0047022
ソース: データをステージング テーブル SSIS にロードします。パイプライン
説明: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。
コンポーネント "OLE DB Destination" (132) の ProcessInput メソッドは、入力 "OLE DB Destination Input" (145) の処理中にエラー コード 0xC0209029 で失敗しました。

識別されたコンポーネントが ProcessInput メソッドからエラーを返しました。エラーはコンポーネントに固有のものですが、エラーは致命的であり、データ フロー タスクの実行が停止します。
これより前に、失敗に関する詳細情報を含むエラー メッセージが投稿される場合があります。
終了エラー

DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。

開始: 16:21:24 終了: 16:21:24 経過: 0.842 秒。
パッケージの実行に失敗しました。ステップは失敗しました。

エラーの意味がわかりません

私を手伝ってくれますか ?