OS: linux 7.5 DBMS: PostgreSQL 14.9 |
[목차여기]
아카이브 모드 관련 파라미터 변경
postgresql.conf
wal_level = replica -- replica 또는 그 이상 archive_mode = on -- 아카이브 모드 on archive_command = 'test ! -f /home/postgres/arch/%f && cp %p /home/postgres/arch/%f' -- 타겟 경로(/home/postgres/arch/)에 해당파일이 없으면 아카이브 실행 archive_timeout = 60 -- 지정한 시간(초) 동안 아카이브 없으면 강제 아카이브(log switch) 수행, 설정안해도 상관없음 |
파라미터 설정 후 DB 재기동
pg_ctl stop pg_ctl start |
WAL 파일 경로의 archive_status 디렉토리를 보면
사용이 끝난 WAL 파일(아카이브 대상)은 ready 상태로 표시해 둔 것이 확인됩니다.
[postgres@svr1:/var/lib/pgsql/14/data/pg_wal/archive_status]$ pwd
/var/lib/pgsql/14/data/pg_wal/archive_status
[postgres@svr1:/var/lib/pgsql/14/data/pg_wal/archive_status]$ ls -lrt
total 0
-rw------- 1 postgres postgres 0 Nov 18 20:12 000000010000000000000001.ready
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000002.ready
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000003.ready
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000004.ready
아키이브가 완료되면 done 상태로 변경됩니다.
그리고 내부적으로 체크를 거친 후 해당 표시 파일들은 없어집니다.
[postgres@svr1:/var/lib/pgsql/14/data/pg_wal/archive_status]$ ls -lrt
total 0
-rw------- 1 postgres postgres 0 Nov 18 20:12 000000010000000000000001.done
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000002.done
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000003.done
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000004.done
-rw------- 1 postgres postgres 0 Nov 18 20:13 000000010000000000000005.done
아카아브 로그 삭제 스크립트 예시
-- 매일 새벽1시에 /archive 디렉토리에 저장된 아카이브 WAL 파일 중에서 최근 14일 로그 남기고 삭제하는 crontab의 예
00 01 * * * find /home/postgres/arch/* -mtime +14 | xargs rm -f
'DBMS > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] SQL 실행계획 관리(pg_store_plans) (2) | 2023.12.05 |
---|---|
[PostgreSQL] pg_basebackup 사용 백업/복구 테스트 (2) | 2023.11.24 |
[PostgreSQL] pg_hint_plan 설치하여 SQL hint 사용 (0) | 2023.11.16 |
[PostgreSQL] timescaledb extension 설치 (0) | 2023.11.15 |
PostgreSQL 외부 접속 허용 설정 (0) | 2023.11.08 |
댓글