Creating a pgAgent Job

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

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

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

pgAgentダイアログの一般タブ

[ General ]タブのフィールドを使用して、ジョブに関する一般的な情報を提供します。

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

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

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

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

    注釈

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

    SELECT jagstation FROM pgagent.pga_jobagent
    

    HostAgentフィールドのクエリで報告されたとおりにホスト名を使用します。

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

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

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

pgAgentダイアログ定義タブ

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

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

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

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

    • SQL を選択した場合、 コード タブを使用して、ステップのSQLコードを提供します。

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

注釈

接続タイプ 、 データベース 、および 接続文字列 フィールドは、 SQL が選択された場合にのみ適用されます。 バッチ はリモートサーバーで実行できないためです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pgAgentダイアログスケジュールリピートタブ

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

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

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

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

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

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

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

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

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

Exceptions タブを選択して、スケジュールが実行 されない 日を指定します。

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

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

追加アイコン(+)をクリックして行を例外表に追加し、次のことを行います。

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

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

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

pgAgentダイアログSQLタブ

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

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

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

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