pgAdmin 4 pgAgentを利用したジョブのスケジューリング
WindowsでpgAdmin 4を使用してジョブを定期的に実行するには、pgAgentを利用します。pgAgentはPostgreSQL専用のジョブスケジューリングツールで、定期的にSQLスクリプトやシステムコマンドを実行することができます。
以下は、Windows環境でpgAgentをインストールして設定する手順です。
pgAgentのインストール
●Application Stack Builderの利用
「スタート」→「PostgreSQL 16」→「Application Stack Builder」を選択してStack Builderを起動します。「PostgreSQL 16(x64) on port 5432」を選択し、Proxy環境下で使用している場合は、Proxy サーバーを入力して「次へ」ボタンをクリックします。
ダウンロードアプリケーションリストが表示されるので、「pgAgent(64 bit) for PostgreSQL 16 v4.2.2-1」にチェックを入れて「次へ」ボタンをクリックします。
ダウンロードディレクトリ(今回は「C:¥Program Files¥PostgreSQL」としました)を指定し次へボタンをクリックします。
インスト―ルファイルがダウンロードされインストールウィザードが表示されます。「次へ」ボタンをクリックします。
「pgAgent」のセットアップウィザードが表示されるので、「NEXT」ボタンをクリックしてインストールします。
「Upgrade Mode」 ウイザードが表示されますが、そのまま「NEXT」ボタンをクリックします。「Upgrade Mode」は、StackBuilder
を使用して、既にインストールされているソフトウェアやツール(この場合はpgAgent
など)を最新バージョンにアップグレードするモードです
パスワードを入力し、「NEXT」ボタンをクリックします。
再度パスワードを入力して「NEXT」ボタンをクリックします。
「NEXT」ボタンをクリックします。
インストールが開始されます。
「OK」ボタンをクリックします。
「Finish」ボタンをクリックします。
StackBuilder
を終了します。
「pgAgent」をWindowsサービスに登録する
コマンドプロンプトまたはPowerShellを管理者として開き、以下のコマンドを使用してpgAgentサービスを登録します。「pgagent.exe」の場所や、パスワードが正しいか確認し実行して下さい。
"C:\Program Files\PostgreSQL\bin\pgagent.exe" INSTALL pgAgent -u postgres -p xxxxx hostaddr=127.0.0.1 dbname=postgres user=postgres password=xxxxx
Windowsのサービス一覧に、pgAgentが登録されているか確認します。
Windows + Rを押して「ファイル名を指定して実行」を開き、services.mscを入力してサービス管理ツールを起動します。「PostgresSQL Scheduling Agent – pgagent-pg16」の名称で「自動起動」として登録されました。
実行するジョブのpgAgentの設定
ここでは、「test_db」のバックアップジョブのスケジューリングを設定します。左側のツリービューで、pgAgent ジョブを右クリックし、「作成」→「pgAgentジョブ」を選択します。
Generalタブで、「名前」の欄に、ジョブの名称を入力して「ステップ」タブをクリックします。
「ステップ」タブではジョブを実行する為の「ジョブステップ」を設定します。一つのジョブを実行するために複数の「ステップ」を実行する必要がある場合は、ここで「各ステップ」を定義します。今回は「test_db」のバックアップだけなので、「ステップ」の定義は1つだけです。
「ステップ」タブ移行後、右上の「+」(追加ボタン)をクリックします。
①名前は自動入力されます。②の「編集」をクリックすると、「ステップ」を入力する画面が下部に表示されます。下記に従って設定内容を入力します。
■設定内容
- 種別 :バッチ(SQLを実行するかバッチを実行する)
- 接続方式 :ローカル(ジョブステップをローカルのデータベースサーバーで実行)
入力後は、「コード」タブに移ります。
「コード」タブでは、バッチファイルの内容を入力します。
環境変数「PGPASSWORD」に、パスワードを設定し再起動します。
ジョブの手動実行
ジョブをスケジュールする前に、ジョブを手動で実行し、結果を確認します。左側のジョブ名称を右クリックし、「いますぐ実行」をクリックします。
Logと実行結果を確認し、ジョブが正しく実行されている事を確認してください。
ジョブのスケジューリング
ジョブが手動で正しく実行できたら、ジョブのスケジューリングを行います。スケジュールを右クリックして「作成」→「作成」→「スケジュール」を選択します。
スケジュールの「一般(General)」タブでは下記の項目を設定します。
- ジョブ名称
- 有効にするか無効にするか
- スケジュールの開始日時と終了
「繰り返し」タブでは6月の、月/水/金 曜日のように、ジョブを実行する日を細かく指定できます。又、「除外」タブではジョブを実行する日時を指定できます。
これで、pgAdmin 4上でジョブを定期的に実行できるようになりました。もしpgAgentサービスが正しく動作していない場合は、サービスが起動していることや、設定が正しく行われていることを確認してください。