Creating a pgAgent Job¶
pgAgentは、ジョブを実行および管理するスケジューリングエージェントです。各ジョブはステップとスケジュールで構成されています。
ジョブを作成または管理するには、pgAdminツリーコントロールを使用して、pgAgentデータベースオブジェクトが作成されたサーバーを参照します。ツリーコントロールには pgAgentJobs ノードが表示され、現在定義されているジョブが表示されます。新しいジョブを追加するには、 pgAgentJobs ノードを右クリックし、コンテキストメニューから CreatepgAgentJob... を選択します。
pgAgentダイアログが開いたら、 pgAgentJob ダイアログのタブを使用して、pgAgentジョブを構成するステップとスケジュールを定義します。
[ General ]タブのフィールドを使用して、ジョブに関する一般的な情報を提供します。
Name フィールドにジョブの名前を入力します。
Enabled スイッチを Yes の位置に動かしてジョブを有効にするか、 No を動かしてジョブを無効にします。
ジョブクラス ドロップダウンを使用して、クラスを選択します(ジョブ分類用)。
HostAgent フィールドを使用して、pgAgentを実行しているマシンの名前を指定し、そのマシンのみがジョブを実行できることを示します。フィールドを空白のままにして、任意のマシンがジョブを実行できることを指定します。
注釈
ジョブステップを特定のマシンにターゲット設定するためにホストエージェントに指定する値は、必ずしも明らかではありません。必要なマシンでpgAgentを実行し、スケジューラデータベースに接続したら、次のクエリを使用して、各エージェントによって報告されたホスト名を表示できます。
SELECT jagstation FROM pgagent.pga_jobagent
HostAgentフィールドのクエリで報告されたとおりにホスト名を使用します。
Comment フィールドを使用して、ジョブに関するメモを保存します。
[ ステップ ]タブを使用して、ジョブが実行するステップを定義および管理します。追加アイコン(+)をクリックして、新しいステップを追加します。次に、(ヘッダーの左側にある)作成アイコンをクリックして、ステップ定義ダイアログを開きます。
ステップ定義ダイアログのフィールドを使用して、ステップを定義します。
Name フィールドにステップの名前を入力します。ステップは名前の英数字順に実行されることに注意してください。
Enabled スイッチを使用して、ジョブの実行時にステップを含める( True )か、ステップを無効にします( False )。
Kind スイッチを使用して、ジョブステップがSQLコード( SQL )を呼び出すか、バッチスクリプト( Batch )を呼び出すかを示します。
SQL を選択した場合、 コード タブを使用して、ステップのSQLコードを提供します。
Batch を選択した場合、 Code タブを使用して、ステップ中に実行されるバッチスクリプトを提供します。
注釈
接続タイプ 、 データベース 、および 接続文字列 フィールドは、 SQL が選択された場合にのみ適用されます。 バッチ はリモートサーバーで実行できないためです。
接続タイプ スイッチを使用して、ステップがローカルサーバー( ローカル )で実行されるか、リモートホスト( リモート )で実行されるかを示します。ステップにリモート接続を使用するように指定した場合、 接続文字列 フィールドが有効になり、libpqスタイルの接続文字列を提供する必要があります。
データベース ドロップダウンを使用して、ジョブステップを実行するデータベースを選択します。
接続文字列 フィールドを使用して、ステップが実行されるリモートサーバーへのlibpqスタイルの接続文字列を指定します。接続文字列の書き込みの詳細については、 PostgreSQL documentation を参照してください。
Onerror ドロップダウンを使用して、ステップの実行中にエラーが発生した場合のpgAgentの動作を指定します。以下から選択してください:
Fail -このステップの処理中にエラーが発生した場合、ジョブを停止します。
Success -ステップを正常に完了したものとしてマークし、続行します。
Ignore -エラーを無視して続行します。
Comment フィールドを使用して、ステップに関するコメントを入力します。
ステップ定義ダイアログの コード タブの状況依存フィールドを使用して、ステップ中に実行されるSQLコードまたはバッチスクリプトを提供します。
ステップがSQLコードを呼び出す場合は、 SQLquery フィールドに1つ以上のSQLステートメントを入力します。
ステップでバッチスクリプトを実行する場合は、 Script フィールドにスクリプトを入力します。Windowsサーバーで実行している場合、標準のバッチファイル構文を使用する必要があります。Linuxサーバーで実行する場合、適切なインタープリターが最初の行で指定されている限り、任意のシェルスクリプトを使用できます(例: #!/bin/sh )。
ステップに必要な情報をすべて提供したら、作成アイコンをクリックしてステップ定義ダイアログを閉じます。追加アイコン(+)をクリックして各ステップを追加するか、[ スケジュール ]タブを選択してジョブスケジュールを定義します。
追加アイコン(+)をクリックして、ジョブのスケジュールを追加します。次に、(ヘッダーの左側にある)作成アイコンをクリックして、スケジュール定義ダイアログを開きます。
スケジュール定義タブのフィールドを使用して、ジョブを実行する日時を指定します。
Name フィールドにスケジュールの名前を入力します。
Enabled スイッチを使用して、pgAgentがスケジュールを使用する必要があることを示す( Yes )か、スケジュールを無効にします( No )。
Start フィールドのカレンダーセレクターを使用して、スケジュールの開始日時を指定します。
End フィールドのカレンダーセレクターを使用して、スケジュールの終了日時を指定します。
Comment フィールドを使用して、スケジュールに関するコメントを入力します。
Repeat タブを選択して、スケジュールを実行する日を定義します。
[ Repeat ]タブのフィールドを使用して、スケジュールに関する詳細をcronスタイルの形式で指定します。ジョブは、[ 繰り返し ]タブで選択された各日付または時刻要素に実行されます。
フィールド内をクリックして、そのフィールドの有効な値のリストを開きます。特定の値をクリックして、その値をフィールドで選択した値のリストに追加します。フィールドから値をクリアするには、フィールドの右側にあるXをクリックします。
Days ボックス内のフィールドを使用して、ジョブを実行する日を指定します。
WeekDays フィールドを使用して、ジョブを実行する日を選択します。
MonthDays フィールドを使用して、ジョブを実行する数値の日数を選択します。 LastDay を指定して、日付に関係なく、月の最終日にジョブを実行することを示します。
Months フィールドを使用して、ジョブを実行する月を選択します。
Times ボックス内のフィールドを使用して、ジョブを実行する時刻を指定します。
Hours フィールドを使用して、ジョブを実行する時間を選択します。
Minutes フィールドを使用して、ジョブを実行する分を選択します。
Exceptions タブを選択して、スケジュールが実行 されない 日を指定します。
Exceptions タブのフィールドを使用して、ジョブを実行しない日を指定します。たとえば、祝日にジョブを実行しないようにしたい場合があります。
追加アイコン(+)をクリックして行を例外表に追加し、次のことを行います。
日付 列内をクリックしてカレンダーセレクターを開き、ジョブを実行しない日付を選択します。 Date 列に <Any> を指定して、選択した時刻にジョブを実行しないことを示します。
Time 列内をクリックして時間セレクターを開き、ジョブを実行しない時刻を指定します。 Time 列に <Any> を指定して、選択した日のどの時間にもジョブを実行しないことを示します。
スケジュールの定義が終了したら、 SQL タブを使用して、ジョブを作成または変更するコードを確認できます。
Save ボタンをクリックしてジョブ定義を保存するか、 Close をクリックして保存せずにジョブを終了します。 リセット ボタンを使用して、ダイアログから未保存のエントリを削除します。
ジョブを保存すると、ジョブはそれが定義されたサーバーのpgAdminツリーコントロールの pgAgentJobs ノードの下にリストされます。メインpgAdminウィンドウの プロパティ タブには、選択したジョブの高レベルの概要が表示され、 統計 タブにはジョブの各実行の詳細が表示されます。
既存のジョブを変更したり、ジョブに関する詳細情報を確認したりするには、ジョブ名を右クリックし、コンテキストメニューから プロパティ を選択します。