次の方法で共有


作業工程の管理

適用対象:SQL ServerAzure SQL Managed Instance

重要

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。

ジョブ ステップは、ジョブがデータベースまたはサーバーに対して実行するアクションです。 すべてのジョブには、最低 1 つのジョブ ステップを含める必要があります。 ジョブ ステップには次のような種類があります。

  • 実行可能プログラムまたはオペレーティング システムのコマンド。
  • Transact-SQL ステートメント。ストアド プロシージャと拡張ストアド プロシージャを含みます。
  • PowerShell スクリプト。
  • レプリケーション タスク。
  • Analysis Services のタスク。
  • Integration Services パッケージ。

各ジョブ ステップは特定のセキュリティ コンテキストで実行されます。 ジョブ ステップがプロキシを指定している場合、このジョブ ステップは指定されたプロキシの資格情報のセキュリティ コンテキストで実行されます。 ジョブ ステップでプロキシが指定されていない場合、ジョブ ステップは SQL Server エージェント サービス アカウントのコンテキストで実行されます。 sysadmin 固定サーバー ロールのメンバーのみが、プロキシを明示的に指定しないジョブを作成できます。

ジョブ ステップは特定の Windows ユーザーのコンテキストで実行されるため、そのユーザーには、ジョブ ステップを実行するために必要なアクセス許可と構成が必要です。 たとえば、ドライブ文字または UNC (汎用名前付け規則) パスを必要とするジョブを作成した場合、タスクのテスト中に、ジョブ ステップが Windows ユーザー アカウントで実行される可能性があります。 ところが、このジョブ ステップの Windows ユーザーにも、このジョブ ステップを実行するためのアクセス許可、ドライブ文字構成、指定ドライブへのアクセスが必要になります。 そうでなければ、このジョブ ステップは失敗します。 この問題を回避するには、各ジョブ ステップのプロキシに、ジョブ ステップで実行するタスクに対して必要なアクセス許可が設定されていることを確認してください。 詳細については、「 SQL Server データベース エンジンと Azure SQL Database のセキュリティ」を参照してください。

ジョブ ステップ ログ

SQL Server エージェントは、オペレーティング システム ファイルまたは msdb データベースの sysjobstepslogs テーブルに、一部のジョブ ステップからの出力を書き込むことができます。 両方の出力先に出力を書き込めるジョブ ステップの種類は次のとおりです。

  • 実行可能プログラムまたはオペレーティング システムのコマンド。
  • Transact-SQL ステートメント。
  • Analysis Services のタスク。

ジョブ ステップの出力をオペレーティング システム ファイルに書き込むことができるのは、 sysadmin 固定サーバー ロールのメンバーであるユーザーが実行するジョブ ステップだけです。 msdb データベース内の SQLAgentUserRole、SQLAgentReaderRole、または SQLAgentOperatorRole 固定データベース ロールのメンバーであるユーザーがジョブ ステップを実行する場合、これらのジョブ ステップからの出力は sysjobstepslogs テーブルにのみ書き込むことができます。

ジョブ ステップのログは、ジョブまたはジョブ ステップが削除されると自動的に削除されます。

レプリケーション タスクと Integration Services パッケージのジョブ ステップのログ記録は、それぞれのサブシステムによって処理されます。 SQL Server エージェントを使用して、これらの種類のジョブ ステップのジョグ ステップ ログを構成することはできません。

ジョブ ステップとしての実行可能プログラムとオペレーティング システム コマンド

実行可能プログラムとオペレーティング システム コマンドは、ジョブ ステップとして使用できます。 これらのファイルには、.bat、.cmd、.com、または .exe のファイル拡張子が含まれます。

実行可能プログラムまたはオペレーティング システム コマンドをジョブ ステップとして使用する場合は、次の項目を指定する必要があります。

  • コマンドが正常に終了した場合に返されるプロセス終了コード。

  • 実行するコマンド。 オペレーティング システム コマンドを実行する場合、これはコマンド自体を指します。 外部プログラムの場合、これはプログラムの名前とプログラムの引数です。次に例を示します。

    C:\Program Files\Microsoft SQL Server\160\Tools\Binn\sqlcmd.exe -e -q "sp_who"
    

    実行可能ファイルがシステム パスで指定されたディレクトリに存在しない場合、またはジョブ ステップを実行するユーザーのパスに、実行可能ファイルへの完全なパスを指定します。

Transact-SQL ジョブ ステップ

Transact-SQL ジョブ ステップを作成すると、次の操作を行う必要があります。

  1. ジョブを実行するデータベースを特定します。

  2. 実行する Transact-SQL ステートメントを入力します。 このステートメントは、ストアド プロシージャまたは拡張ストアド プロシージャを呼び出す場合があります。

必要に応じて、ジョブ ステップのコマンドとして、既存の Transact-SQL ファイルを開くことができます。

ヒント

SQL Server エージェント ジョブの T-SQL ジョブ ステップは、結果セット内の特定の列の長さを制限するために、 TEXTSIZEの値を変更します。 この動作により、予期しない結果が発生する可能性があります。 たとえば、SQL Server Management Studio で期待どおりに動作するクエリ SELECT 、SQL Server エージェントを使用して実行すると、切り捨てられた列の値を返すことができます。 切り捨てを回避するには、T-SQL ジョブ ステップによって実行されるクエリで TEXTSIZE を設定します。

Transact-SQL ジョブ ステップでは、SQL Server エージェント プロキシは使用されません。 このジョブ ステップはジョブ ステップの所有者として実行されるか、ジョブ ステップの所有者が sysadmin 固定サーバー ロールのメンバーの場合には SQL Server エージェント サービス アカウントとして実行されます。 sysadmin 固定サーバー ロールのメンバーは、 ストアド プロシージャの sp_add_jobstep パラメーターを使用して、Transact-SQL ジョブ ステップを別のユーザーのコンテキストで実行するように指定することもできます。 詳細については、「sp_add_jobstep」 参照してください。

1 つの Transact-SQL ジョブ ステップに、複数のバッチを含めることができます。 Transact-SQL ジョブ ステップには、埋め込み GO コマンドを含めることができます。

PowerShell スクリプティング ジョブ ステップ

PowerShell スクリプト ジョブ ステップを作成するときには、次のいずれかをステップのコマンドとして指定する必要があります。

  • PowerShell スクリプトのテキスト。
  • 開く対象の既存の PowerShell スクリプト ファイル。

SQL Server エージェントの PowerShell サブシステムは、PowerShell セッションを開いて SQL Server PowerShell スナップインを読み込みます。ジョブ ステップ コマンドとして使用される PowerShell スクリプトでは、 SQL Server PowerShell プロバイダーおよびコマンドレットを参照できます。 SQL Server PowerShell スナップインを使用した PowerShell スクリプトの作成の詳細については、「 SQL Server PowerShell」を参照してください。

レプリケーション ジョブ ステップ

レプリケーションを使用してパブリケーションとサブスクリプションを作成した場合、既定でレプリケーション ジョブが作成されます。 作成されるジョブの種類は、レプリケーションの種類 (スナップショット レプリケーション、トランザクション レプリケーション、またはマージ レプリケーション) と使用するオプションによって決まります。

レプリケーション ジョブ ステップでは、次のレプリケーション エージェントのいずれかがアクティブになります。

  • スナップショット エージェント (スナップショット ジョブ)
  • ログ リーダー エージェント (LogReader ジョブ)
  • ディストリビューション エージェント (ディストリビューション ジョブ)
  • マージ エージェント (マージ ジョブ)
  • キュー リーダー エージェント (QueueReader ジョブ)

レプリケーションのセットアップ時には、レプリケーション エージェントを SQL Server エージェント起動後に連続的に実行するか、要求に応じて実行するか、またはスケジュールに従って実行するかを指定できます。 レプリケーション エージェントの詳細については、「 レプリケーション エージェントの概要」を参照してください。

Analysis Services の仕事手順

SQL Server エージェントでは、コマンド ジョブ ステップとクエリ ジョブ ステップという 2 種類の Analysis Services ジョブ ステップがサポートされます。

Analysis Services コマンド ジョブ ステップ

Analysis Services コマンド ジョブ ステップを作成するには、次の操作を行う必要があります。

  1. ジョブ ステップが実行される OLAP サーバーのデータベースを特定します。

  2. 実行するステートメントを入力します。 ステートメントは、Analysis Services Execute メソッドの XML である必要があります。 ステートメントに、完全な SOAP エンベロープまたは Analysis Services Discover メソッド用の XML が含まれていない可能性があります。 SQL Server Management Studio では完全な SOAP エンベロープと Discover メソッドがサポートされていますが、SQL Server エージェントのジョブ ステップではサポートされていません。

Analysis Services クエリ ジョブ ステップ

Analysis Services クエリ ジョブ ステップを作成するには、次の操作を行う必要があります。

  1. ジョブ ステップが実行される OLAP サーバーのデータベースを特定します。

  2. 実行するステートメントを入力します。 このステートメントでは、多次元式 (MDX) クエリを使用する必要があります。

MDX の詳細については、「 MDX ステートメントの基礎 (MDX)」を参照してください。

Integration Services パッケージ

Integration Services パッケージ ジョブ ステップを作成するときは、次の手順を実行する必要があります。

  1. パッケージのソースを特定します。

  2. パッケージの場所を特定します。

  3. パッケージに構成ファイルが必要な場合は、構成ファイルを特定します。

  4. パッケージにコマンド ファイルが必要な場合は、コマンド ファイルを特定します。

  5. パッケージに使用する検証方法を特定します。 たとえば、パッケージに署名や特定のパッケージ ID が必要であることを指定できます。

  6. パッケージのデータ ソースを特定します。

  7. パッケージのログ プロバイダーを特定します。

  8. パッケージを実行する前に、変数と値を指定します。

  9. 実行オプションを特定します。

  10. コマンド ライン オプションを追加または変更します。

パッケージを SSIS カタログに配置し、パッケージ ソースとして SSIS カタログ を指定した場合、この構成情報の多くはパッケージから自動的に取得されます。 [構成] タブでは、環境、パラメーターの値、接続マネージャーの値、プロパティのオーバーライド設定、およびパッケージが 32 ビット ランタイム環境で実行するかどうかを指定できます。

Integration Services パッケージを実行するジョブ ステップの作成に関する詳細については、「 パッケージに対する SQL Server エージェント ジョブ」を参照してください。

説明 [アーティクル]
実行可能プログラムを使用してジョブ ステップを作成する方法について説明します。 CmdExec ジョブ ステップの作成
SQL Server エージェントのアクセス許可をリセットする方法について説明します。 SQL Server エージェント ジョブを作成および管理できるようにユーザーを設定する
Transact-SQL ジョブ ステップを作成する方法について説明します。 Transact-SQL ジョブステップを作成する
Microsoft SQL Server エージェント Transact-SQL ジョブ ステップのオプションを定義する方法について説明します。 Transact-SQL ジョブ ステップ オプションの定義
ActiveX スクリプト ジョブ ステップを作成する方法について説明します。 ActiveX スクリプト ジョブ ステップを作成する
SQL Server Analysis Service のコマンドとクエリを実行する SQL Server エージェント ジョブ ステップを作成し、定義する方法について説明します。 Analysis Services のジョブ ステップを作成する
ジョブの実行中にエラーが発生した場合に SQL Server が実行する必要があるアクションについて説明します。 ジョブ ステップの成功または失敗のフローを設定する
[ジョブ ステップのプロパティ] ダイアログ ボックスにジョブ ステップの詳細を表示する方法について説明します。 ジョブステップ情報を表示
SQL Server エージェントのジョブ ステップのログを削除する方法について説明します。 ジョブステップログを削除