Innovating today, leading tomorrow

OpenSQL_Technical Guide
[OpenSQL] pg_Agent

[OpenSQL] pg_Agent

pgAgent 는 작업을 실행하고 관리하는 스케줄링 에이전트입니다.
각 작업은 하나 이상의 단계와 일정으로 구성됩니다.

두 개 이상의 작업이 동시에 실행되도록 예약된 경우 pg_agent 는 작업을 병렬로 실행합니다.
수행 내용은 SQL 문 또는 운영 체제 배치 또는 쉘 스크립트일 수 있습니다.

Install

1. PostgreSQL v14.2 설치

2.pgAgent 패키지 설치

yum -y install pgagent_14

3. PostgreSQL 서버 기동

pg_ctl start

4. pgAgent Extension 생성

postgres=# CREATE EXTENSION pgagent;
CREATE EXTENSION

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;

6. pgAdmin 접속

접속은 pgAdmin 을 참고

작업 추가 예시

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 을 작성하여 스케줄 동작 시간 중 작업을 실행하지 않을 요일과 시간을 지정합니다.

9.SQL Tab
앞서 적용한 옵션들의 결과 SQL 을 보여줍니다.

지금까지 ‘PostgreSQL의 pg_Agent’에 관해 알아보았습니다

‘PostgreSQL의 pgAdmin4’을 바로 이어서 확인해보세요!

광고성 정보 수신

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다.
내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보
  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
 

개인정보 수집 및 이용

개인정보 수집, 활용 목적 및 기간

(주)티맥스티베로의 개인정보 수집 및 이용 목적은 다음과 같습니다. 내용을 자세히 읽어보신 후 동의 여부를 결정해 주시기 바랍니다.

  • 수집 목적: 티맥스티베로 뉴스레터 발송 및 고객 관리
  • 수집 항목: 성함, 회사명, 회사 이메일, 연락처, 부서명, 직급, 산업, 담당업무, 관계사 여부, 방문 경로
  • 보유 및 이용 기간: 동의 철회 시까지

※ 위 개인정보 수집 및 이용에 대한 동의를 거부할 권리가 있습니다.
※ 필수 수집 항목에 대한 동의를 거부하는 경우 뉴스레터 구독이 제한될 수 있습니다.

개인정보의 처리 위탁 정보

  • 업체명: 스티비 주식회사
  • 위탁 업무 목적 및 범위: 광고가 포함된 뉴스레터 발송 및 수신자 관리
  •