일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- PostgreSQL Backup and Recovery
- PostgreSQL 기동 정지
- db upgrade
- PostgreSQL 스키마 관리
- PostgreSQL Admin
- 아카이브로그 삭제
- Linux
- pg_dumpall
- psql 복구
- pg_hba.conf
- PostgreSQL Parameter 설정 방법
- PostgreSQL Parameter
- PostgreSQL 아키텍처
- PostgreSQL Database 관리
- PostgreSQL Install
- oracle error
- dblink 삭제
- 다른계정에서 dblink 삭제방법
- 19c tde
- PostgreSQL 테이블스페이스 생성 삭제
- pgcrypto
- multitenant
- table lock 조치 방법
- sql문 전체 출력 방법
- oracle
- PostgreSQL 테이블스페이스 관리
- Database 생성 삭제 조회 변경
- sql문 짤릴 때
- pg_basebackup
- PostgreSQL 외부 접속 방법
- Today
- Total
인성장
[PostgreSQL] 백업 복구 방식 본문
PostgreSQL DB를 Backup and Recovery 하는 방식은 크게 3가지로 분류됩니다.
- SQL 덤프
- 파일시스템
- 아카이브 모드
※ SQL 덤프 기반 백업 복구 관련 명령어, 아카이브 모드 기반 백업 복구 절차 등에 대한 상세 설명과 사용법은 추 후 별도 작성 예정
SQL 덤프 기반
SQL 덤프 방식은 DB서버가 기동되고 있는 상태에서만 백업 및 복구가 가능합니다. 백업 방법은 pg_dump, pg_dumpall 명령어로, 복구는 psql, pg_restore 명령어를 통해 수행합니다. pg_dumpall는 PostgreSQL 클러스터를 구성하는 모든 데이터베이스를 한번에 백업받을 수 있고, 만약 원하는 데이터베이스를 개별로 백업받고 싶거나, 데이터베이스의 필요한 부분만 백업받고 싶다면 pg_dump 명령어를 사용하면 됩니다. 그리고 이와 같이 받은 백업파일들은 텍스트파일 형식일 경우, psql로 복구를 진행하고 그외는 pg_restore 명령어로 복구를 수행합니다. Oracle의 export/import 유틸리티와 비슷합니다.
SQL 덤프 기반 백업 예 (1)
$ pg_dump DATABASE_NAME > pg_bak.dump
SQL 덤프 기반 복구 예 (1)
$ psql DATABASE_NAME < pg_bak.dump
파일시스템 기반
파일시스템 방식은 data 디렉토리를 압축해서 백업 복구를 진행합니다. 백업 전, 반드시 DB를 중지해야 합니다. 복구는 압축된 파일을 풀어주기만 하면 됩니다. data 디렉토리 자체를 압축하여 백업받는 방식이기 때문에 전체백업만 받을 수 있습니다. Cold Backup 방식과 비슷합니다.
파일시스템 기반 백업 예
$ tar -zcvf PG11.tar.gz /postgres/app/postgres/pgsql11/data
파일시스템 기반 복구 예
$ tar -zxvf PG11.tar.gz -C /postgres/app/postgres/pgsql11/data
아카이브 모드 기반
아카이브 모드 방식은 필수적으로 아카이브 모드 활성화해야하며, pg_basebackup을 이용하여 백업을 진행하여야 합니다. 아카이브 모드 방식은 복구 시 사용자가 원하는 특정 시점으로 복구가 가능하며, 이를 위해 전체 백업 이후 아카이브 WAL 파일을 반드시 보존하고 있어야 합니다.
아카이브 모드 기반 사전설정 (설정 후 DB 재기동 필요)
$ cd $PGDATA
$ vi postgresql.conf
...
wal_level = replica
archive_mode = on
archive_command = 'cp %p /arch/%f'
archive_timeout = 120 -- seconds
...
pg_basebackup을 이용한 백업 예
$ pg_basebackup -Ft -D /postgres/app/postgres/pgsql12/backup -v
pg_basebackup을 이용한 복구 예
- 추 후 포스팅 글 별도 작성 예정.
'PostgreSQL > Admin' 카테고리의 다른 글
[PostgreSQL] Backup - pg_basebackup (0) | 2024.03.14 |
---|---|
[PostgreSQL] Backup - pg_dumpall (0) | 2024.03.14 |
[PostgreSQL] Backup - pg_dump (0) | 2024.02.26 |
[PostgreSQL] 주요 파라미터 역할 및 산정방법 (1) | 2024.02.02 |
[PostgreSQL] Parameter 설정 방법 (0) | 2024.02.02 |