Creating a pgAgent Job

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

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

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

pgAgentダイアログの一般タブ

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

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

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

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

  • ホストエージェント フィールドを使用して、pgAgentを実行しているマシンの名前を指定して、そのマシンのみがジョブを実行できることを示します。すべてのマシンがジョブを実行できるように指定するには、フィールドを空白のままにします。

    注釈

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

    SELECT jagstation FROM pgagent.pga_jobagent
    

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

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

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

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

pgAgentダイアログ定義タブ

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

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

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

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

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

    • [ バッチ ]を選択した場合、[ コード ]タブを使用して、ステップ中に実行されるバッチスクリプトを指定します。

注釈

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[ 繰り返し ]タブを選択して、スケジュールを実行する日を定義します。

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

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

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

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

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

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

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

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

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

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

[ 例外 ]タブを選択して、スケジュールを実行 しない 日を指定します。

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

[ Exceptions ]タブのフィールドを使用して、ジョブを実行しない日を指定します。たとえば、祝日にジョブを実行しないようにすることができます。

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

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

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

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

pgAgentダイアログSQLタブ

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

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

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

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