PostgreSQL
PostgreSQL 백업 도구 비교
남용2
2019. 10. 11. 13:44
개요
PostgreSQL 백업에 대해 관리할 수 있는 도구는 여러 개 존재한다.
이 글에서는 Barman, pgBackRest, WAL-E에 대해 기능을 비교한다.
기능을 비교하기 위해 각 도구의 문서를 참고한다.
- Barman 문서: http://docs.pgbarman.org/release/2.4/
- pgbackrest 문서: https://pgbackrest.org/
- wal-e 문서: https://github.com/wal-e/wal-e
프로젝트 개요
Barman | pgbackrest | WAL-E | |
회사/커뮤니티 | 2ndQuadrand | crunchydata | wal-e |
first release | 11년 9월 v0.1.0 | 14년 9월 v0.10 | 11년 3월 v0.1.0 |
last release | 18년 5월 v2.4 | 18년 9월 v2.05 | 17년 4월 v1.1.0 |
contributors | 18 | 10 | 62 |
github star | 368 | 305 | 2638 |
테스트된 OS | Linux | Linux | Linux |
PostgreSQL 지원 버전 |
PostgreSQL >= 8.3 |
PostgreSQL >= 8.3 | PostgreSQL >= 8.4 |
기능비교표
분류 | 상세 기능 | WAL-E |
비고 |
||
Backup | protocol |
rsync pg_receivexlog pg_basebackup |
custom
|
pg_basebackup |
rsync 문제점
custom은 rsync 문제점을 해결 |
Backup via rsync/SSH | O | - | - | ||
Backup via streaming | O | O | X | ||
WAL archiving |
O | O | O |
|
|
비동기 WAL archiving | X | O | X | ||
WAL streaming |
O | O | X |
|
|
Parallel Backup |
O | O | X |
Barman
pgBackRest
|
|
Incremental Backup |
O | O | X | ||
Differential Backup |
- | O | X |
Barman
|
|
file level incremental backup |
O | O | - |
|
|
Block level incremental backup |
X | - | - |
|
|
Schedule a Backup | O | O | O |
Barman
pgBackRest, wal-e
|
|
compression |
O |
O | O |
Barman
|
|
Retantion policy | O | O | O |
barman
wal-e
|
|
Restore | Point In Time Recovery(PITR) | O | O | O | |
Restore Selected Databases | X | O | X | ||
Parallel Restore | O | O | X |
Barman
pgBackRest
|
|
Repository |
repository |
File System |
File System AWS S3 |
File System AWS S3 Azure Blob Store Google Storage Swift |
|
repository encryption | X | O | O | ||
성능비교 | rsync vs pgBackRest 성능 비교: https://pgbackrest.org/media/slide/pgBackRest-PGConfUS-2016.pdf | ||||
장점 |
|
|
|
||
단점 |
|
|
|
- 기능 테스트
- 기능 비교를 통해 선정된 것을 구축하고, 기능별로 AG와의 호환성을 확인한다.
- 구축은 VM에 하고 테스트를 진행한다.
- 메모
-
WAL archiving은 파일이 다 찰 때까지 대기하고, 다 차면 전송한다. 장애시 데이터 손실이 발생한다.
WAL streaming은 바로 전송한다. 장애시 데이터 손실을 최소화할 수 있다.
Logical backup: 데이터베이스의 스냅샷을 사용한다.
Physical backup: 데이터베이스를 저장하는 파일의 복사본을 사용한다.
pgbackrest
- 전체복업: 전체 데이터를 복사
- 차등백업: 마지막 전체 데이터 백업 이후 변경된 데이터만 복사
- 증분백업: 마지막 데이터 백업(증분백업, 차등백업, 전체백업) 이후 변경된 데이터만 복사
-