bboks.net™

pg_rman을 이용한 증분백업 본문

Database/Postgres

pg_rman을 이용한 증분백업

bboks.net 2022. 7. 15. 15:46

Rocky Linux 8 기준

1. postgresql repo 설치

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

2. 기본 postgresql 비활성화

dnf -qy module disable postgresql

 

3. postgresql 설치

dnf install postgresql13 postgresql13-server

 

4. pg_rman 설치

해당 링크로 들어가 설치한 postgresql 버전과 맞는 버전의 pg_rman 설치

rpm -ivh https://github.com/ossc-db/pg_rman/releases/download/V1.3.14/pg_rman-1.3.14-1.pg13.rhel8.x86_64.rpm

 

5. pg_rman 명령어 전역에서 사용가능하도록 설정

/usr/bin 으로 이동 후 심볼릭 링크 추가

ln -s /usr/pgsql-13/bin/pg_rman pg_rman

 

6. 백업 디렉토리 생성

mkdir pg_rman_backup
chown postgres:postgres pg_rman_backup

 

7. postgresql.conf 수정

archive_mode = on

archive_command = 'cp %p /var/lib/pgsql/13/archive/%f'

 

8. archive 디렉토리 생성 및 권한 변경

mkdir archive
chown postgres:postgres archive

 

9. BACKUP_PATH 설정

여기서부터 postgres 계정으로 진행

export BACKUP_PATH=/pg_rman_backup

 

10. 백업 디렉토리 초기화

pg_rman init -B /pg_rman_backup -D /var/lib/pgsql/13/data

 

11. full backup 실행

pg_rman backup --backup-mode=full -B /pg_rman_backup -D /var/lib/pgsql/13/data --progress

 

12. pg_rman validate

validate를 하지 않으면 복구에 사용하지  못함

pg_rman validate

validate 전

validate 후

 

13. 증분(incremental) 백업 실행 및 validate

pg_rman backup -b incremental --progress
pg_rman validate

 

14. 복구

pg_rman restore -B /pg_rman_backup -D /var/lib/pgsql/13/data --recovery-target-time='복구하고자 하는 시점'

pg_rman restore -B /pg_rman_backup -D /var/lib/pgsql/13/data --recovery-target-time='2022-07-15 15:36:19'