pgAgent 는 작업을 실행하고 관리하는 스케줄링 에이전트입니다.
각 작업은 하나 이상의 단계와 일정으로 구성됩니다.
두 개 이상의 작업이 동시에 실행되도록 예약된 경우 pg_agent 는 작업을 병렬로 실행합니다.
수행 내용은 SQL 문 또는 운영 체제 배치 또는 쉘 스크립트일 수 있습니다.
Install
1.
PostgreSQL v14.2 설치
2.
pgAgent 패키지 설치
yum -y install pgagent_14
SQL
복사
3.
PostgreSQL 서버 기동
pg_ctl start
SQL
복사
4.
pgAgent Extension 생성
postgres=# CREATE EXTENSION pgagent;
CREATE EXTENSION
SQL
복사
5.
pgAgent 테스트 롤 생성
CREATE USER "pgagent_user" WITH
LOGIN
SUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
encrypted password 'pgagent';
GRANT USAGE ON SCHEMA pgagent TO pgagent_user;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA pgagent TO pgagent_user;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA pgagent TO pgagent_user;
SQL
복사
6.
pgAdmin 접속
접속은 pgAdmin 을 참고
SQL
복사
작업 추가 예시
1.
pgAgent Jobs 하위 폴더 확인
2.
pgAgent Jobs 우클릭 → Create → pgAgent Job …
3.
General Tab
•
NAME : 작업 이름을 입력합니다.
•
Enabled : 스위치를 YES / NO 로 이동 하여 작업을 활성화 및 비활성화 합니다.
•
Job Class : 작업 분류용 클래스를 선택합니다.
•
Host Agent : 필드를 사용하여 pgAgent를 실행하는 시스템의 이름을 지정하여 해당 시스템만 작업을 실행할 수 있음을 나타냅니다. 모든 서버가 작업을 수행할 수 있도록 지정하려면 필드를 비워 둡니다.
4.
Steps Tab (General)
작업이 수행할 단계를 정의하고 관리합니다.
•
NAME : Step 의 이름을 입력합니다.
•
Enabled : 스위치를 이동 하여 작업을 실행할 때 Step 을 포함하거나 미포함 합니다.
•
Kind : 스위치를 이동 하여 작업을 실행할 때 SQL 코드 또는 배치 스크립트 호출 여부를 나타냅니다.
◦
SQL 을 선택하는 경우 Code Tab 을 사용하여 각 Step 에 대한 SQL 코드 작성
◦
Batch 를 선택하는 경우 Code Tab 을 사용하여 각 Step 에 실행될 배치 스크립트 작성
•
Connection Type : 스위치를 사용 하여 단계가 Local 서버 또는 Remote 호스트에서 수행되는지 여부를 나타냅니다.
◦
Step 에 Remote 연결을 사용하도록 지정하면 Connection string 필드가 활성화되고 libpq 형식 커넥션 정보를 작성해야 합니다.
•
Database : Step 이 수행될 데이터베이스를 선택합니다.
•
Connection string : 필드를 사용 하여 단계가 수행될 원격 서버에 대한 libpq libpq 형식 커넥션 정보를 지정합니다.
•
On Error : Step 을 실행하는 동안 오류가 발생하는 경우 pgAgent의 동작을 지정합니다.
◦
Fail : 해당 Step 을 수행하는 동안 오류가 발생하면 작업을 중지합니다.
◦
Success : Step 을 성공적으로 완료한 것으로 표시합니다.
◦
Ignore : 오류를 무시하고 계속합니다.
5.
Steps Tab ( Code )
Steps( Code ) 탭을 사용하여 상황에 맞는 필드를 사용하여 Step 중에 실행될 SQL 코드 또는 배치 스크립트를 작성해야 합니다.
•
Step 에서 SQL 코드를 호출하는 경우 SQL 쿼리 필드에 하나 이상의 SQL 문을 작성합니다.
•
Step 에서 배치 스크립트를 수행하는 경우 필드에 스크립트를 작성합니다.
Windows 서버에서 실행 중인 경우 표준 배치 파일 구문을 사용해야 합니다. Linux 서버에서 실행할 때 적절한 인터프리터가 첫 번째 줄(예: #!/bin/sh )에 지정되어 있으면 모든 셸 스크립트를 사용할 수 있습니다.
6.
Schedules ( General )
•
NAME : 필드에 스케줄 이름을 입력합니다.
•
Enabled : 스위치를 사용 하여 pgAgent가 스케줄을 활성하거나 비활성화 함을 나타냅니다.
•
Start : 달력을 선택하여 스케줄의 시작 날짜와 시간을 지정합니다.
•
End : 달력을 선택하여 스케줄의 종료 날짜와 시간을 지정합니다.
7.
Schedules ( Repeat )
Repeat Tab 을 적용하여 cron 형식으로 스케쥴에 대한 수행 규칙을 지정합니다.
8.
Schedules ( Exceptions )
Exceptions Tab 을 작성하여 스케줄 동작 시간 중 작업을 실행하지 않을 요일과 시간을 지정합니다.