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 |
---|
댓글