Back to blog

PostgreSQL 18 증분 백업 개선: pg_combinebackup --link 옵션의 역할

September 16, 2026

작성자: Robert M. Haas | 2025년 9월 18일

PostgreSQL 17에서 도입된 증분 백업은 전체 백업보다 변경된 블록을 중심으로 백업할 수 있게 했지만, 실제 운영에서는 백업 체인 관리와 복원 스테이징이라는 과제가 남았습니다. PostgreSQL 18은 pg_combinebackup--link 옵션을 추가해 불필요한 파일 복사를 줄일 수 있도록 개선했습니다. 이 글에서는 기존 증분 백업의 관리 문제와 --link 옵션이 복원 과정에 어떤 변화를 주는지 살펴봅니다.


PostgreSQL 증분 백업 관리가 어려운 이유

pg_basebackup은 전체 또는 증분 베이스 백업을 생성할 수 있지만, 백업 보존 정책이나 저장 위치까지 관리하지는 않습니다. 따라서 운영 환경에서는 Barman과 같은 전문 백업 관리 도구가 필요할 수 있습니다.

증분 백업은 기준이 되는 이전 백업과 그 이후의 백업 체인에 의존합니다. 체인에 포함된 이전 백업이 누락되면 해당 증분 백업을 복원할 수 있으므로, 이를 수동으로 관리할 때는 오류 가능성이 커집니다. Barman 3.11.0부터 PostgreSQL의 블록 수준 증분 백업을 지원해 백업 체인을 보다 체계적으로 관리할 수 있게 되었습니다.


증분 백업 복원과 스테이징의 과제

PostgreSQL 증분 백업을 바로 사용할 수 있는 것은 아닙니다. 복원에 사용할 전체 백업을 재구성하려면 pg_combinebackup으로 최종 증분 백업과 해당 백업이 의존하는 이전 백업을 결합해야 합니다.

이 과정에서는 관련 백업을 처리할 수 있는 환경에 준비해야 하므로 데이터 이동이 발생할 수 있습니다. 또한 기존 방식의 pg_combinebackup은 새로운 출력 디렉터리를 만들고 파일을 복사합니다. 입력 또는 출력 디렉터리가 임시 스테이징 용도로 사용된 뒤 삭제될 예정이라면, 이러한 복사는 시간과 저장 공간 측면에서 비효율적일 수 있습니다.


PostgreSQL 18에서는 이러한 문제를 줄이기 위해 pg_combinebackup--link 옵션이 추가되었습니다. 이 옵션은 일반적인 파일 복사 대신 하드 링크를 사용해 합성 전체 백업(synthetic full backup)을 재구성합니다. pg_upgrade에서 사용하는 링크 방식과 유사하게 파일 복사를 줄여 복원 준비 시간과 디스크 공간 사용량을 낮출 수 있습니다.

단, --link를 사용하려면 입력 백업과 출력 디렉터리가 동일한 파일 시스템에 있어야 합니다. 하드 링크로 연결된 출력 디렉터리 또는 입력 디렉터리의 파일을 수정하면 다른 쪽에도 영향을 줄 수 있으므로, 입력 디렉터리가 작업 완료 후 삭제할 복사본일 때 사용하는 것이 적합합니다.

앞으로 Barman 팀은 이 옵션을 활용할 계획입니다. 이를 통해 PostgreSQL 18 이상 환경에서 증분 백업을 복원할 때 발생하는 파일 복사와 스테이징 부담을 줄일 수 있습니다.


PostgreSQL 증분 백업에서 얻은 교훈

이번 개선 과정에서는 두 가지 중요한 교훈을 확인할 수 있습니다.

  1. 새로운 기능을 도입할 때는 실제 운영 과정에서 발생할 마찰 지점을 모두 예측하기 어렵습니다.
  2. PostgreSQL 핵심 개발자와 백업 도구 제작자 간의 협업은 운영 환경의 문제를 해결하는 데 중요합니다.

PostgreSQL 17의 증분 백업 도입 이후 확인된 복원 스테이징 문제는 PostgreSQL 18의 --link 옵션으로 개선되었습니다. 이처럼 핵심 기능과 생태계 도구가 함께 발전하면서 PostgreSQL의 백업 및 복원 운영 경험도 계속 개선될 수 있습니다.


PostgreSQL 17·18 증분 백업 핵심 요약

구분주요 내용
PostgreSQL 17증분 백업 기능 도입
Barman 3.11.0PostgreSQL 블록 수준 증분 백업 지원
PostgreSQL 18pg_combinebackup --link 옵션 추가
기대 효과증분 백업 복원 과정의 파일 복사와 스테이징 부담 감소

PostgreSQL 18 증분 백업 FAQ

PostgreSQL 증분 백업은 무엇인가요?

PostgreSQL 증분 백업은 기준 백업 이후 변경된 데이터 블록을 중심으로 생성하는 백업입니다. PostgreSQL 17부터 pg_basebackup을 사용해 증분 베이스 백업을 만들 수 있습니다.

PostgreSQL 증분 백업을 바로 복원할 수 있나요?

아니요. 증분 백업은 단독으로 바로 사용할 수 없으며, pg_combinebackup을 사용해 기준 전체 백업과 의존하는 증분 백업을 결합해야 합니다. 필요한 백업 체인 중 하나라도 누락되면 올바른 전체 백업을 재구성할 수 없습니다.

pg_combinebackup --link 옵션은 무엇을 하나요?

--link 옵션은 파일을 복사하는 대신 하드 링크를 사용해 합성 전체 백업을 재구성합니다. 이를 통해 파일 복사에 필요한 시간과 디스크 공간을 줄일 수 있습니다.

--link 옵션을 사용할 때 주의할 점은 무엇인가요?

입력 백업과 출력 디렉터리가 동일한 파일 시스템에 있어야 합니다. 또한 하드 링크 특성상 입력이나 출력의 파일을 수정하면 연결된 다른 디렉터리에도 영향을 줄 수 있으므로, 입력 디렉터리가 임시 복사본인 경우에 사용하는 것이 적합합니다.

Barman 3.11.0은 PostgreSQL 증분 백업을 어떻게 지원하나요?

Barman 3.11.0은 PostgreSQL 17 이상에서 제공하는 블록 수준 증분 백업을 지원합니다. 이전 백업을 상위 백업으로 지정하고 백업 체인 정보를 관리할 수 있어 수동 관리 부담을 줄이는 데 도움이 됩니다.


EDB Korea에 문의하기

PostgreSQL 백업 및 복원 운영에 관한 자세한 내용은 EDB Korea에 문의해 주세요.

메일: salesinquiry@enterprisedb.com

Share this