본문 바로가기
IT개발/postgresql

pg_basebackup

by xground 2023. 5. 18.
반응형

postgresql의 클러스터 전체를 백업하는 경우에 사용한다.

클러스터 전체 디렉토리를 가져와서 덮어쓰는 형태라고 보면 좋을 것 같다.

basebackup과 함께 이후 replication의 사전 작업으로도 사용된다.

 

주요 설명

  • 개별 데이터베이스 또는 데이터베이스 개체를 백업하는 것은 불가능하다. (pg_dump 사용)
  • 권한(role)이 SUPERUSER, REPLICATION LOGIN 권한을 가진 사용자여야 한다.
  • max_wal_senders 를 충분히 사용하여 하나 이상의 세션을 백업에, 하나는 WAL 스트리밍(사용하는 경우)에 사용할 수 있도록 구성해야 한다.
  • standby 서버에서도 백업을 만들 수 있다.
  • standby 서버의 제한 사항
    • 백업된 데이터베이스 클러스터에는 백업 히스토리 파일이 생성되지 않는다.
    • 온라인 백업 중 standby 서버가 master로 승격되면 백업이 실패한다.

 

주요 옵션

-D direcotry (--pgdata=directory)

standby 서버에 사용할 데이터 디렉터리. 디렉터리가 없으면 만든다. 비어 있지 않는 경우 오류가 발생.

 

-F format (--format=format)

출력 형식을 선택

  • p (plain) : 현재 데이터 디렉터리 및 테이블스페이스와 동일한 레이아웃을 사용하여 출력 (마스터 클러스터와 동일하게 생성)
  • t (tar) : 출력 대상 디렉터리에 tar 파일로 쓴다. 클러스터에 추가 테이블 스페이스가 없고 WAL 스트리밍이 사용되지 않는 경우에만 사용 가능

-r rate (--max-rate=rate)

데이터의 최대 전송 속도.  디펄트는 초당 킬로바이트. M 접미사를 사용해서 초당 메가바이트 단위도 가능.

유효한 값을 32KB ~ 1024MB

wal 파일의 전송은 수집방법이 fecth인 경우에만 영향을 받는다.

 

-R (--write-recovery-conf)

출력 디렉터리에 recovery.conf 를 작성하여 설정을 쉽게한다.

 

-X method (--wal-method=method)

백업에 필요한 WAL 파일을 포함한다. 백업 중에 생성된 모든 WAL 파일이 포함된다. none 으로 지정하지 않으면, 로그 아카이브를 참조할 필요 없이 추출된 디렉터리에서 직접 시작할 수 있으므로 완전히 독립형 백업이 된다.

  • n (none) : 백업에 write-ahead log(WAL)를 포함하지 않는다.
  • f (fetch) : write-ahead log(WAL)은 백업이 끝날 때 수집된다. 따라서 wal_keep_segments 변수는 끝나기 전에 로그가 제거되지 않도록 충분히 높게 설정해야 한다. (WAL이 전송되는 시간에 WAL이 순환된 경우(한도가 넘으면 처음 것으로 덮어쓰기 된다) 백업이 실패하고 사용할 수 없게 된다.)
    tar 형식을 사용하면 WAL이 base.tar에 기록된다.
  • s (stream) : 기본값이며, 백업이 생성되는 동안 WAL을 스트리밍한다. 이렇게 하면 서버에 대한 두 번째 연결이 열리고 백업을 실행하는 동안 WAL 스트리밍이 병렬로 시작된다. 따라서 max_wal_senders 변수로 구성된 두 개의 연결을 사용하게 된다. 클라이언트가 수신한 WAL을 유지할 수 있는 한 이 모드를 사용하면 추가 WAL을 마스터에 저장할 필요가 없다.

-P (--progress)

콘솔에서 진행률을 표시한다.

 

-v (--verbose)

상세 모드를 활성화한다. 시작 및 종료 중에 몇 가지 추가 단계를 출력하고 진행 상황 보고도 활성화된 경우 현재 처리 중인 정확안 파일 이름을 표시한다.

 

 

예제

pg_basebackup -h [IP] -D [data location] -U [user] -v -P -X stream

 

 

 

 

https://www.postgresql.org/docs/10/app-pgbasebackup.html

 

pg_basebackup

pg_basebackup pg_basebackup — take a base backup of a PostgreSQL cluster Synopsis pg_basebackup [option...] Description pg_basebackup is used to take …

www.postgresql.org

 

반응형

'IT개발 > postgresql' 카테고리의 다른 글

pg_dump  (1) 2023.05.17

댓글