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