[PostgreSQL] 아카이브 모드 백업

개요

  • PostgreSQL 에서는 아카이브 모드 백업을 하여 데이터를 복원할 수 있습니다.
  • postgresql.conf 파일을 이용하여 아카이브 모드 백업을 진행하는 방법을 정리 합니다.

postgresql.conf 파일 옵션 설정

  • postgresql.conf 파일에서 Archiving 태그를 찾고 여기서 archive_mode, archive_command 2개의 옵션을 설정해 줍니다.
    • archive_command : WAL 파일을 아카이브 시키는 명령어 (%p : WAL 파일의 절대 경로, %f : 저장할 로그 파일의 이름)
      • archive_command = 'cp %p 아카이브 파일을 저장할 곳%f'
    • archive_mode : on - WAL 파일이 archive_command 설정에 따라 아카이브를 저장하는 저장소로 전달, off 설정 - archive_mode 를 on 으로 설정하려면 wal_level 을 archive 로 설정해야 합니다.
  • 저는 다음과 같이 옵션을 주었습니다.
wal_level = replica
archive_command = 'cp %p /var/lib/postgresql/data/archive/%f'
archive_mode = on
archive_timeout = 1 #minute

PostgreSQL Container 재실행

  • postgresql.conf 를 수정하였다면, PostgreSQL Container 를 재 시작 합니다.

아카이브 설정 확인

  • 앞서 PostgreSQL Container 를 재 시작 하였습니다.
  • 다음 명령어를 통해 postgres 컨테이너의 bash 로 접속합니다.
> docker exec -it postgres bash
  • 접속 하였다면, psql 명령어를 통해 실제 Postgresql 데이터베이스로 접속합니다.
> psql -d postgres -h localhost -p 5432 -U mirero
  • 다음으로, show archive_mode;, show archive_command; 명령어를 통해 앞서 postgresql.conf 파일에서 설정했던 옵션이 정상적으로 설정 되었는지 확인합니다.
postgres=# show archive_mode;
 archive_mode
--------------
 on
(1 row)

postgres=# show archive_command;
           archive_command
--------------------------------------
 cp %p /var/lib/postgresql/archive/%f
(1 row)
  • 확인 결과, 모두 정상적으로 옵션이 설정된 것을 확인할 수 있습니다.

백업 확인

  • 정상적으로 wal 파일이 백업 되는 것을 확인할 수 있습니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY