pgAdmin / pgAgent スケジュール設定 シーケンス図

バッチジョブ登録手順 ― 画面イメージ付き

シーケンス図 SEQUENCE DIAGRAM
運用担当者 Operator pgAdmin DB管理UIツール pgAgent スケジューラ PostgreSQL Database ■ 画面参照 SCR-1 ブラウザツリー SCR-2 Generalタブ SCR-3 Stepsタブ SCR-4 Schedulesタブ SCR-5 スケジュール詳細 SCR-6 実行ログ確認 STEP 1 pgAdmin 起動・ログイン ブラウザで開く / ログイン 認証完了・ダッシュボード表示 STEP 2 ブラウザツリー展開 → 新規ジョブ作成 SCR-1 pgAgent Jobs を右クリック Create > pgAgent Job を選択 ジョブ作成ダイアログを表示 STEP 3 General タブ入力 SCR-2 Name: ETC_DAILY_BATCH 入力 Enabled: ON / Comment 入力 STEP 4 Steps タブ入力(実行するSQLを定義) SCR-3 Steps タブ → + 追加 Kind: SQL / Connection / Code 入力 接続テスト(DB確認) 接続OK STEP 5 Schedules タブ入力(実行スケジュール定義) SCR-4 SCR-5 Schedules タブ → + 追加 Name / Start / Repeat 設定 曜日・時刻・月チェックボックス設定 Save ボタンクリック STEP 6 DB へジョブ・スケジュール INSERT INSERT pga_job / pga_schedule INSERT 成功 pgAgent がジョブ定義を取得 ジョブ登録完了表示 STEP 7 スケジュール時刻に自動実行 ⏰ 設定時刻 02:00 到達 バッチ SQL を実行 実行結果(成功/失敗) pga_joblog INSERT STEP 8 pgAdmin でジョブ実行ログを確認 SCR-6 ジョブ選択 → Statistics タブ SELECT * FROM pga_joblog 実行ログ表示(成功/失敗・時刻)
画面イメージ SCREEN MOCKUPS
SCR-1 ブラウザツリー ― 右クリックメニュー STEP 2
FileObjectToolsHelp
🖧Servers (1)
🐘PostgreSQL 15
🗄Databases
👤Login/Group Roles
pgAgent Jobs
ETC_DAILY_BATCH
📋REPORT_BATCH
pgAgent Jobs
📋 Create ▶
✏️ Properties...
🗑 Delete/Drop
🔄 Refresh
⚡ pgAgent Job
pgAgent Jobs - Properties
Job Count2
Enabled Jobs2
Last Executed2025-04-14 02:00:01
Server: PostgreSQL 15 ● Connected pgAgent: Running
SCR-2 Create pgAgent Job ― General タブ STEP 3
🖧Servers (1)
🐘PostgreSQL 15
pgAgent Jobs
Create - pgAgent Job
General
Steps
Schedules
Statistics
SQL
Name
Enabled?
Job Class
Comment
Host Agent
SCR-3 Create pgAgent Job ― Steps タブ STEP 4
🐘PostgreSQL 15
pgAgent Jobs
Create - pgAgent Job
General
Steps
Schedules
Statistics
SQL
NameEnabledKindOn Error
step1_load_params ✔ Yes SQL Fail
step2_main_process ✔ Yes SQL Fail
step3_update_status ✔ Yes SQL Fail
▼ ステップ詳細 (step1_load_params)
Connection: dbname=etc_db user=batch_user host=localhost
SCR-4 Create pgAgent Job ― Schedules タブ STEP 5
🐘PostgreSQL 15
pgAgent Jobs
Create - pgAgent Job
General
Steps
Schedules
Statistics
SQL
NameEnabledStartEnd
daily_02h00 ✔ Yes 2025-04-01 02:00 (未設定)
▼ スケジュール詳細 (daily_02h00)
Start
End
Enabled
✅ 繰り返し設定は「SCR-5 スケジュール詳細」タブで行います
SCR-5 スケジュール繰り返し設定(曜日・時刻・月) STEP 5
🐘PostgreSQL 15
pgAgent Jobs
Schedule: daily_02h00
General
Repeat
Exceptions
曜日 (Days of Week)
※ すべてON = 毎日実行
時刻 (Hours)
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
分 (Minutes)
00
05
10
15
20
25
30
35
40
45
50
55
月 (Months)
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
SCR-6 ジョブ実行ログ確認(Statistics タブ) STEP 8
🐘PostgreSQL 15
pgAgent Jobs
ETC_DAILY_BATCH
 ▼ Steps
 ▼ Schedules
ETC_DAILY_BATCH
General
Steps
Schedules
Statistics
SQL
Run TimeStatusDurationMessage
2025-04-14 02:00:01 ✔ Success 00:04:23 3 steps completed
2025-04-13 02:00:01 ✔ Success 00:03:58 3 steps completed
2025-04-12 02:00:01 ✗ Failed 00:00:12 step2: connection refused
2025-04-12 02:15:00 ✔ Success 00:04:05 手動再実行 - 正常終了
2025-04-11 02:00:01 ✔ Success 00:04:11 3 steps completed
▶ [2025-04-14 02:00:01] Job ETC_DAILY_BATCH started
[02:00:01] Step 1 (step1_load_params) running...
[02:00:02] Step 1 completed successfully
[02:00:02] Step 2 (step2_main_process) running...
[02:04:18] Step 2 completed successfully (246 rows)
[02:04:18] Step 3 (step3_update_status) running...
[02:04:24] Step 3 completed successfully
▶ [02:04:24] Job completed. Status: SUCCESS
ETC_DAILY_BATCH ● Last Run: Success Next Run: 2025-04-15 02:00:00
💾 pgAgent が使用する DB テーブル(参考)
保存時に以下のテーブルへ自動的に INSERT されます。pgAdmin の画面操作だけで直接 SQL を書く必要はありません。

-- ジョブ定義
SELECT jid, jjobname, jlenabled, jlreason FROM pgagent.pga_job;

-- スケジュール定義(曜日・時刻・月 は boolean配列で格納)
SELECT jsscid, jsjobid, jsname, jsenabled, jsstart,
jsdow, jshours, jsminutes, jsmonths
FROM pgagent.pga_schedule;

-- 実行ログ(SCR-6 の Statistics タブがこのテーブルを参照)
SELECT jlid, jljobid, jlstart, jlend, jlsuccess, jlreason
FROM pgagent.pga_joblog ORDER BY jlstart DESC LIMIT 20;