Creating a pgAgent Job

Creating a pgAgent Job#

pgAgentは、ジョブを実行および管理するスケジューリングエージェントです。各ジョブはステップとスケジュールで構成されます。

ジョブを作成または管理するには、 pgAdminツリーコントロールを使用して、pgAgentデータベースオブジェクトが作成されたサーバーを参照します。ツリーコントロールには pgAgent Jobs ノードが表示され、その下に、現在定義されているジョブが表示されます。新しいジョブを追加するには、 pgAgent Jobs ノードを右クリックし、コンテキストメニューから Create pgAgent Job... を選択します。

pgAgentダイアログが開いたら、 pgAgent Job ダイアログのタブを使用して、pgAgentジョブを構成するステップとスケジュールを定義します。

pgAgentダイアログの[全般]タブ

Use the fields on the General tab to provide general information about a job:

  • Name フィールドにジョブの名前を入力します。

  • ジョブを有効にするには * Enabled * スイッチを * Yes* の位置に移動し、ジョブを無効にするには * No* 。

  • Job Class ドロップダウンを使用して、クラスを選択しますジョブ分類用。

  • Host Agent フィールドを使用して、pgAgentを実行しているマシンの名前を指定して、そのマシンのみがジョブを実行できることを示します。 フィールドを空白のままにして、任意のマシンがジョブを実行できることを指定します。

    注釈

    ジョブステップのターゲットを特定のマシンに設定するためにホストエージェントにどの値を指定するかは、必ずしも明らかではありません。必要なマシンでpgAgentを実行し、スケジューラーデータベースに接続すると、次のクエリを使用して、各エージェントによって報告されたホスト名を表示できます。

    SELECT jagstation FROM pgagent.pga_jobagent
    

    [ホストエージェント]フィールドのクエリーで報告されたホスト名を正確に使用します。

  • Comment フィールドを使用して、ジョブに関するメモを保存します。

pgAgentのダイアログステップタブ

Steps タブを使用して、ジョブが実行するステップを定義および管理します。 Addアイコン+をクリックして、新しいステップを追加します。次に、作成アイコンヘッダーの左側にありますをクリックして、ステップ定義ダイアログを開きます。

pgAgentダイアログ定義タブ

ステップ定義ダイアログのフィールドを使用して、ステップを定義します。

  • Name フィールドにステップの名前を入力します。手順は名前の英数字オーダー実行されることに注意してください。

  • Enabled スイッチを使用して、ジョブの実行時にステップを含める True か、ステップを無効にします False 。

  • Kind スイッチを使用して、ジョブステップがSQLコード * SQL* を呼び出すか、バッチスクリプト Batch を呼び出すかを示します。

    • If you select SQL, use the Code tab to provide SQL code for the step.

    • Batch を選択した場合、 Code タブを使用して、ステップ中に実行されるバッチスクリプトを提供します。

注釈

Batch はリモートサーバーで実行できないため、フィールド Connection type 、 Database 、および Connection string は、 * SQL* が選択された場合にのみ適用されます。

  • Connection type スイッチを使用して、ステップがローカルサーバー Local で実行されるか、リモートホスト Remote で実行されるかを示します。 ステップにリモート接続を使用するように指定すると、 接続文字列 フィールドが有効になり、libpqスタイルの接続文字列を提供する必要があります。

  • Server ドロップダウンを使用して、ジョブステップを実行するデータベースを選択します。

  • Connection string フィールドを使用して、ステップが実行されるリモートサーバーへのlibpqスタイルの接続文字列を指定します。接続文字列の書き込みの詳細については、 PostgreSQL documentation を参照してください。

  • On error ドロップダウンを使用して、ステップの実行中にエラーが発生した場合のpgAgentの動作を指定します。 以下から選択してください

    • Fail - このステップの処理中にエラーが発生した場合、ジョブを停止します。

    • Success - ステップを正常に完了したものとしてマークし、続行します。

    • Ignore - エラーを無視して、続行します。

  • Comment フィールドを使用して、ステップに関するコメントを入力します。

pgAgentダイアログステップ定義コードタブ

ステップ定義ダイアログの コード タブの状況依存フィールドを使用して、ステップ中に実行されるSQLコードまたはバッチスクリプトを提供します。

  • ステップがSQLコードを呼び出す場合、 * SQL query* フィールドに1つ以上のSQLステートメントを提供します。

  • ステップがバッチスクリプトを実行する場合、 Script フィールドにスクリプトを提供します。 Windowsサーバーで実行している場合、標準のバッチファイル構文を使用する必要があります。 Linuxサーバーで実行されている場合、最初の行 #!/bin/sh など、適切なインタープリターが指定されている限り、任意のシェルスクリプトを使用できます。

ステップに必要な情報をすべて提供したら、作成アイコンをクリックしてステップ定義ダイアログを閉じます。 追加アイコン+をクリックして各追加ステップを追加するか、 Schedules タブを選択してジョブスケジュールを定義します。

pgAgentダイアログのスケジュールタブ

[追加]アイコン+をクリックして、ジョブのスケジュールを追加します。次に、作成アイコンヘッダーの左側にありますをクリックして、スケジュール定義ダイアログを開きます。

pgAgentダイアログのスケジュール定義タブ

スケジュール定義タブのフィールドを使用して、ジョブを実行する日と時刻を指定します。

  • Name フィールドにスケジュールの名前を入力します。

  • Enabled スイッチを使用して、pgAgentがスケジュールを使用する必要があることを示す Yes か、スケジュールを無効にします No 。

  • Start フィールドのカレンダーセレクターを使用して、スケジュールの開始日時を指定します。

  • End フィールドのカレンダーセレクターを使用して、スケジュールの終了日時を指定します。

  • Comment フィールドを使用して、スケジュールに関するコメントを入力します。

Repeat タブを選択して、スケジュールを実行日を定義します。

pgAgentダイアログのスケジュール繰り返しタブ

[ Repeat ]タブのフィールドを使用して、cronスタイルの形式でスケジュールに関する詳細を指定します。 ジョブは、[ 繰り返し ]タブで選択された各日付または時刻要素に実行されます。

フィールド内をクリックして、そのフィールドの有効な値のリストを開きます。特定の値をクリックして、その値をフィールドで選択した値のリストに追加します。フィールドから値をクリアするには、フィールドの右側にあるXをクリックします。

Days ボックス内のフィールドを使用して、ジョブを実行日を指定します。

  • Week Days フィールドを使用して、ジョブを実行日を選択します。

  • Month Days フィールドを使用して、ジョブを実行する数値日を選択します。 Last Day を指定して、日付に関係なく、月の最終日にジョブを実行する必要があることを示します。

  • Months フィールドを使用して、ジョブを実行する月を選択します。

Times ボックス内のフィールドを使用して、ジョブを実行する時間を指定します。

  • Hours フィールドを使用して、ジョブを実行する時間を選択します。

  • Use the Minutes field to select the minute at which the job will execute.

[ Exceptions ]タブを選択して、スケジュールが not を実行日を指定します。

pgAgentダイアログのスケジュール例外タブ

[ Exceptions ]タブのフィールドを使用して、ジョブを実行しない日を指定します。たとえば、ジョブを祝日に実行したくない場合があります。

Addアイコン+をクリックして例外テーブルに行を追加し、次のことを行います。

  • Date 列内をクリックしてカレンダーセレクターを開き、ジョブを実行しない日付を選択します。 Date 列に <Any> を指定して、選択した日の時間にジョブを実行しないことを示します。

  • Time 列内をクリックして時間セレクターを開き、ジョブを実行しない時間を指定します。 Time 列に <Any> を指定して、選択した日のどの時点でもジョブを実行しないことを示します。

スケジュールの定義が終了したら、[ * SQL* ]タブを使用して、ジョブを作成または変更するコードを確認できます。

pgAgentダイアログSQLタブ

Save ボタンをクリックしてジョブ定義を保存するか、 Close をクリックして保存せずにジョブを終了します。 Reset ボタンを使用して、ダイアログから未保存のエントリを削除します。

ジョブを保存すると、ジョブは、定義されたサーバーのpgAdminツリーコントロールの pgAgent Jobs ノードの下にリストされます。 pgAdminメインウィンドウの プロパティ タブには、選択したジョブの高レベルの概要が表示され、 統計 タブには、ジョブの各実行の詳細が表示されます。

pgAgentオブジェクトプロパティ

既存のジョブを変更するか、ジョブに関する詳細情報を確認するには、ジョブ名を右クリックし、コンテキストメニューから プロパティ を選択します。