pgBackRest는 가장 큰 데이터베이스와 워크로드까지 원활하게 확장되는 PostgreSQL용 안정적인 백업 및 복원 솔루션입니다.
pgBackRest v2.54.0은 현재 안정 릴리스입니다. 릴리스 노트는 릴리스 페이지에 있습니다.
pgBackRest가 마음에 드신다면 GitHub에서 저희를 찾아주시고 별표를 남겨주세요!
압축은 일반적으로 백업 작업 중 병목 현상이 발생하므로 pgBackRest는 병렬 처리와 lz4 및 zstd와 같은 보다 효율적인 압축 알고리즘을 사용하여 이 문제를 해결합니다.
사용자 정의 프로토콜을 사용하면 pgBackRest가 최소한의 구성으로 TLS/SSH를 통해 로컬 또는 원격으로 백업, 복원 및 보관할 수 있습니다. PostgreSQL을 쿼리하는 인터페이스도 프로토콜 계층을 통해 제공되므로 PostgreSQL에 대한 원격 액세스가 필요하지 않아 보안이 강화됩니다.
예를 들어, 여러 리포지토리를 사용하면 빠른 복원을 위해 보존을 최소화하는 로컬 리포지토리와 기업 전체의 중복성과 액세스를 위해 더 오래 보존하는 원격 리포지토리를 사용할 수 있습니다.
전체, 차등 및 증분 백업이 지원됩니다. pgBackRest는 rsync의 시간 확인 문제에 영향을 받지 않으므로 각 파일의 체크섬을 요구하지 않고도 차등 및 증분 백업을 안전하게 수행할 수 있습니다. 블록 수준 백업은 파일에서 변경된 부분만 복사하여 공간을 절약합니다.
전체 및 차등 백업에 대해 보존 정책을 설정하여 모든 기간에 대한 적용 범위를 생성할 수 있습니다. WAL 아카이브는 모든 백업에 대해 유지 관리되거나 가장 최근 백업에 대해 엄격하게 유지 관리될 수 있습니다. 후자의 경우 이전 백업의 일관성을 유지하는 데 필요한 WAL이 아카이브에 유지됩니다.
체크섬은 백업의 모든 파일에 대해 계산되며 복원 또는 확인 중에 다시 확인됩니다. 백업은 파일 복사를 마친 후 백업 일관성을 유지하는 데 필요한 모든 WAL 세그먼트가 저장소에 도달할 때까지 기다립니다.
저장소의 백업은 표준 PostgreSQL 클러스터(테이블스페이스 포함)와 동일한 형식으로 저장될 수 있습니다. 압축이 비활성화되고 하드 링크가 활성화된 경우 저장소에서 백업의 스냅샷을 생성하고 스냅샷에서 직접 PostgreSQL 클러스터를 불러올 수 있습니다. 이는 기존 방식으로 복원하는 데 시간이 많이 걸리는 테라바이트 규모 데이터베이스에 유리합니다.
모든 작업은 내구성을 보장하기 위해 파일 및 디렉터리 수준 fsync를 활용합니다.
페이지 체크섬이 활성화되면 pgBackRest는 백업 중에 복사되는 모든 파일에 대한 체크섬의 유효성을 검사합니다. 전체 백업 중에 모든 페이지 체크섬의 유효성이 검사되고, 차등 및 증분 백업 중에 변경된 파일의 체크섬이 유효성이 검사됩니다.
유효성 검사에 실패해도 백업 프로세스가 중단되지는 않지만, 유효성 검사에 실패한 페이지에 대한 세부 정보가 포함된 경고가 콘솔과 파일 로그에 출력됩니다.
이 기능을 사용하면 유효한 데이터 복사본이 포함된 백업이 만료되기 전에 페이지 수준 손상을 조기에 감지할 수 있습니다.
중단된 백업은 중지된 지점부터 다시 시작할 수 있습니다. 이미 복사된 파일은 매니페스트의 체크섬과 비교되어 무결성을 보장합니다. 이 작업은 전적으로 리포지토리 호스트에서 수행될 수 있으므로 PostgreSQL 호스트의 부하가 줄어들고 데이터를 압축하고 재전송하는 것보다 체크섬 계산이 빠르므로 시간이 절약됩니다.
압축 및 체크섬 계산은 저장소가 로컬에 있든 원격에 있든 상관없이 파일이 저장소에 복사되는 동안 스트림에서 수행됩니다.
리포지토리가 리포지토리 호스트에 있는 경우 PostgreSQL 호스트에서 압축이 수행되고 파일은 압축된 형식으로 전송되어 리포지토리 호스트에 저장됩니다. 압축이 비활성화되면 CPU 비용을 최소로 유지하면서 사용 가능한 대역폭을 효율적으로 사용하기 위해 더 낮은 수준의 압축이 활용됩니다.
매니페스트에는 백업의 모든 파일에 대한 체크섬이 포함되어 있으므로 복원 중에 이러한 체크섬을 사용하여 처리 속도를 크게 높일 수 있습니다. 델타 복원에서는 백업에 없는 모든 파일이 먼저 제거된 다음 나머지 파일에 대한 체크섬이 생성됩니다. 백업과 일치하는 파일은 그대로 유지되고 나머지 파일은 평소대로 복원됩니다. 병렬 처리를 사용하면 복원 시간이 크게 단축될 수 있습니다.
WAL을 아카이브에 푸시하고 아카이브에서 WAL을 가져오기 위한 전용 명령이 포함되어 있습니다. 두 명령 모두 병렬 처리를 지원하여 처리 속도를 높이고 비동기식으로 실행되어 PostgreSQL에 가장 빠른 응답 시간을 제공합니다.
WAL 푸시는 여러 번 푸시되는 WAL 세그먼트를 자동으로 감지하고 세그먼트가 동일할 때 중복을 제거합니다. 그렇지 않으면 오류가 발생합니다. 비동기식 WAL 푸시를 사용하면 최대 처리량을 위해 WAL 세그먼트를 병렬로 압축하는 다른 프로세스로 전송을 오프로드할 수 있습니다. 이는 쓰기 볼륨이 매우 높은 데이터베이스에 중요한 기능일 수 있습니다.
비동기식 WAL get은 압축이 해제되어 재생할 준비가 된 WAL 세그먼트의 로컬 큐를 유지합니다. 이렇게 하면 재생 속도를 최대화하는 WAL을 PostgreSQL에 제공하는 데 필요한 시간이 줄어듭니다. 지연 시간이 긴 연결 및 스토리지(예: S3)가 가장 큰 이점을 제공합니다.
push 및 get 명령은 모두 PostgreSQL 버전과 시스템 식별자를 비교하여 데이터베이스와 저장소가 일치하는지 확인합니다. 이는 WAL 아카이브 위치를 잘못 구성할 가능성을 사실상 제거합니다.
테이블스페이스는 완벽하게 지원되며 복원 시 테이블스페이스를 어떤 위치로든 다시 매핑할 수 있습니다. 개발 복원에 유용한 단일 명령을 사용하여 모든 테이블스페이스를 한 위치로 다시 매핑하는 것도 가능합니다.
PostgreSQL 클러스터의 모든 파일 또는 디렉터리에 대해 파일 및 디렉터리 링크가 지원됩니다. 복원 시 모든 링크를 원래 위치로 복원하거나, 일부 또는 전체 링크를 다시 매핑하거나, 일부 또는 전체 링크를 클러스터 디렉터리 내의 일반 파일 또는 디렉터리로 복원할 수 있습니다.
pgBackRest 리포지토리는 S3, Azure 및 GCS 호환 개체 저장소에 위치하여 사실상 무제한의 용량 및 보존을 허용할 수 있습니다.
pgBackRest는 저장소를 암호화하여 저장 위치에 상관없이 백업을 보호할 수 있습니다.
pgBackRest에는 10개 버전의 PostgreSQL, 5개 지원 버전 및 마지막 5개 EOL 버전에 대한 지원이 포함되어 있습니다. 이를 통해 지원되는 버전으로 업그레이드하는 데 충분한 시간을 확보할 수 있습니다.
pgBackRest는 구성 및 작동이 쉽도록 노력합니다.
다양한 운영 체제 및 PostgreSQL 버전에 대한 사용자 가이드입니다.
명령줄 작업에 대한 명령 참조입니다.
pgBackRest 구성 생성을 위한 구성 참조입니다.
v1에 대한 문서는 여기에서 찾을 수 있습니다. v2는 v1 옵션 및 저장소와 이전 버전과 호환되므로 v1에 대한 추가 릴리스는 계획되어 있지 않습니다.
pgBackRest에 대한 기여는 언제나 환영합니다! 기능, 개선 사항 또는 문제를 기여하는 방법에 대한 자세한 내용은 기여 지침을 참조하세요.
pgBackRest는 MIT 라이센스에 따라 완전 무료이며 오픈 소스입니다. 어떠한 제한도 없이 개인적 또는 상업적 목적으로 사용할 수 있습니다. 버그 신고는 매우 심각하게 받아들여지며 최대한 빨리 처리될 것입니다.
적절한 복제 및 백업 전략을 사용하여 강력한 재해 복구 정책을 만드는 것은 매우 복잡하고 어려운 작업일 수 있습니다. 기업이 계속 원활하게 운영될 수 있도록 아키텍처 단계와 지속적인 지원 중에 도움이 필요할 수 있습니다.
Crunchy Data는 주요 운영 체제용 pgBackRest 패키지 버전과 pgBackRest 및 PostgreSQL의 모든 것에 대한 전문가의 전체 수명 주기 상용 지원을 제공합니다. Crunchy Data는 공급업체에 종속되지 않는 오픈 소스 솔루션을 제공하기 위해 최선을 다하고 있으며 pgBackRest의 커뮤니티 버전과의 상호 호환성이 항상 엄격하게 유지되도록 보장합니다.
자세한 내용은 크런치 데이터를 참조하세요.
pgBackRest를 개발하는 동안 귀중한 조언과 비판을 아끼지 않은 Stephen Frost에게 가장 먼저 인정을 받았습니다.
Crunchy Data는 pgBackRest에 상당한 시간과 리소스를 제공했으며 계속해서 개발을 적극적으로 지원하고 있습니다. Resonate는 또한 pgBackRest 개발에 기여했으며 초기(그러나 잘 테스트된) 버전이 기본 PostgreSQL 백업 솔루션으로 설치되도록 허용했습니다.
Sandor Szabo의 안락의자 그래픽.