ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PostgreSQL 백업 도구 비교
    PostgreSQL 2019. 10. 11. 13:44

    개요

    PostgreSQL 백업에 대해 관리할 수 있는 도구는 여러 개 존재한다. 

    이 글에서는 Barman, pgBackRest, 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

    기능비교표

    분류 상세 기능

    Barman

    pgbackrest

    WAL-E

    비고

    Backup protocol

    rsync

    pg_receivexlog

    pg_basebackup

    custom

    • pg_start_backup()
    • pg_end_backup()
    pg_basebackup

    rsync 문제점

    • Single-threaded
    • One second timestamp resolution(timestamp 정밀도는 1초)
    • Incremental backups require previous backup to be uncompressed

    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

    • file 단위 병렬 처리

    pgBackRest

    • file들을 압축하여 병렬 처리
     

    Incremental Backup

    O O X  
     

    Differential Backup

    - O X

    Barman

    • WAL continuous archiving으로 가능하다고 하는데 자세한 내용이 없어서 확인해 보지 못함
     

    file level incremental backup

    O O -

     

     

    Block level incremental backup

    X - -

     

      Schedule a Backup O O O

    Barman

    • barman cron 명령어 사용

    pgBackRest, wal-e

    • cron과 같은 툴을 통해 가능하며 사용할 것을 권장
      compression

    O

    O O

    Barman

    • backup_method=postgres(즉,pg_basebackup)이면 network compression를 사용할 수 없음
      Retantion policy O O O

    barman

    • 백업본의 백업 종류(full 또는 incremental backup)를 확인할 수 없음

    wal-e

    • wal-e delete retain [backup_count] 명령어로 백업본을 backup_count만큼 남김
    Restore Point In Time Recovery(PITR) O O O  
      Restore Selected Databases X O X  
      Parallel Restore O O X

    Barman

    • file 단위 병렬 처리

    pgBackRest

    • file들을 압축하여 병렬 처리
    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
    장점  
    • 2ndquadrant 개발
    • HA 툴인 repmgr과 호환 가능
    • 병렬처리로 backup/restore 가능
    • 비동기 WAL archiving 가능
    • 다수의 cloud repository 지원
     
    단점  
    • repository encryption 안됨
    • cloud repository 미지원
    • 백업본 정보 출력 미흡
    • cloud repository 지원 미흡
    • 병렬처리로 backup/restore 안됨
    • Incremental Backup 안됨
     
    • 기능 테스트
      • 기능 비교를 통해 선정된 것을 구축하고, 기능별로 AG와의 호환성을 확인한다.
      • 구축은 VM에 하고 테스트를 진행한다.
    • 메모
      • WAL archiving은 파일이 다 찰 때까지 대기하고, 다 차면 전송한다. 장애시 데이터 손실이 발생한다.

        WAL streaming은 바로 전송한다. 장애시 데이터 손실을 최소화할 수 있다.

        Logical backup: 데이터베이스의 스냅샷을 사용한다.

        Physical backup: 데이터베이스를 저장하는 파일의 복사본을 사용한다.

        pgbackrest

        • 전체복업: 전체 데이터를 복사
        • 차등백업: 마지막 전체 데이터 백업 이후 변경된 데이터만 복사
        • 증분백업: 마지막 데이터 백업(증분백업, 차등백업, 전체백업) 이후 변경된 데이터만 복사

    'PostgreSQL' 카테고리의 다른 글

    pgPool-II 설치  (0) 2019.10.11
    pgBouncer 설치  (0) 2019.10.11
    WAL-E 설치  (0) 2019.10.11
    pgBackRest 설치  (0) 2019.10.11
    Barman 설치  (0) 2019.10.11
Designed by Tistory.