[PostgreSQL] pgAgent Job 등록 생성 및 등록 방법
- Database(데이터베이스)
- 2022. 6. 22. 20:44
참고
- https://karatejb.blogspot.com/2020/04/postgresql-pgagent-scheduling-agent.html
- https://dailycoding-diary.tistory.com/47
목적
- pgAgent 를 이용하여 Job Scheduler 를 생성하고 등록할 수 있습니다.
- 설치가 완료 되었으니, 실제로 Job 이 등록되어 Scheduler 가 정상적으로 실행 되는지 확인 합니다.
Job 생성하기
- pgAdmin 을 통해 pgAgent Job 을 손쉽게 등록할 수 있습니다.
pgAgent -> Create -> pgAgent Job
메뉴를 순서대로 실행하여 선택 줍니다.
Job 탭 목록
- Job 생성을 하게 되면 4가지 탭 목록이 보입니다.
- General : job 의 기본 정보를 입력합니다.
- Steps : 실행할 작업에 대한 정보를 입력합니다. 어느 db 에 접속 할 지 접속정보와 실행할 코드 또는 쿼리를 등록합니다.
- Schedules : 작업의 시작 일자와 끝 일자를 설정하고, 반복 주기와 예외 설정을 합니다.
- SQL : 지금까지 설정한 작업을 SQL 문으로 보여줍니다. 신규 등록일 경우 전체 SQL 문을 출력하고, 수정 작업일 경우 수정하는 SQL문만 출력해 줍니다.
General
- 제일 먼저 General 탭 항목에서 Job 의 기본 정보를 입력합니다.
Steps
- 다음으로 Steps 항목입니다.
- Stpes 정보를 입력 후, 펜 아이콘을 선택하여 세부 설정 진행합니다.
- 여기서 중요한 부분은 Connection Type 을 Remote 라고 설정 후, Connection string 으로 접속 정보를 추가해 준 것입니다.
- 위와 같이 설정해 주지 않으면, Job 이 생성되도 정상 실행이 되지 않는 이슈가 있었습니다.
- 다음으로, Code 항목에 가서 실제 Job 에서 등록할 SQL 구문을 작성해 주면 됩니다.
- 저는 테스트 용으로
Student
테이블을 생성 후,Stduent
테이블에 있는 데이터를 삭제하는 SQL 구문을 추가해 주었습니다.
Schedules
- Step 등록이 완료 되었으면, Schedules 기능을 설정합니다.
- 먼저 Schedules 하나를 생성하고, Scheduler 시작 날짜와 끝 날짜를 설정해 줍니다.
- 다음으로 Repeat 탭을 선택하여 Job 의 주기를 설정해 줍니다. (주, 달, 월, 시간, 분 etc..)
- 여기까지 진행하였다면, Save 버튼을 통하여 Job 을 저장해 줍니다.
생성된 Job 확인
- SampleScheduler_3m 이름을 가진 Job Scheduler 가 하나 생성된 것을 확인할 수 있습니다.
동작 확인
- Job Scheduler 를 생성 하였다면, 정상적으로 동작하는지 테스트를 진행합니다.
- 마냥 시간을 기다릴 수 없기 떄문에, pgAdmin 에서 Run Now 메뉴를 눌러서 Job 을 실행시킵니다.
- 실행 하게 되면, pgAgdmin 에서 Statistics 탭을 통해서 Job 실행 유무를 확인할 수 있습니다.
- Status 는 's', 'f' 가 기록 되고 success, fail 의 앞 글자를 나타냅니다.
- pgAdmin 이 아닌, pqsl 명령어를 통하여 확인할 수도 있습니다.
SELECT * FROM pgagent.pga_joblog;
SQL 구문을 통해서도 조회할 수 있습니다.
postgres=# SELECT * FROM pgagent.pga_joblog;
jlgid | jlgjobid | jlgstatus | jlgstart | jlgduration
-------+----------+-----------+-------------------------------+-----------------
1 | 1 | s | 2022-06-16 02:15:03.956112+00 | 00:00:00.167103
2 | 1 | s | 2022-06-16 02:24:29.305385+00 | 00:00:00.158382
3 | 1 | s | 2022-06-16 02:32:04.434195+00 | 00:00:00.158039
4 | 1 | s | 2022-06-16 02:39:09.58223+00 | 00:00:00.215688
5 | 1 | s | 2022-06-16 03:01:04.976286+00 | 00:00:00.365389
6 | 1 | s | 2022-06-16 04:01:00.912358+00 | 00:00:00.186751
7 | 1 | s | 2022-06-16 05:01:02.097755+00 | 00:00:00.157999
(7 rows)
- 위와 같이, 수동으로 실행한 것과 매 시간의 1분마다 Job 이 실행된 것을 확인할 수 있습니다.
728x90
'Database(데이터베이스)' 카테고리의 다른 글
[PostgreSQL] Autovacuum 최적화 (0) | 2022.06.23 |
---|---|
[PostgreSQL] VACUUM 작업 (0) | 2022.06.22 |
[PostgreSQL] Vacuum 이란? (0) | 2022.06.19 |
[PostgreSQL] PostgreSQL Data Directory 구조 (0) | 2022.06.18 |
[PostgreSQL] PostgreSQL pgAgent 설치 방법 (0) | 2022.06.17 |
이 글을 공유하기