이 페이지에서는 오픈소스 데이터베이스 백업 서버인 Barman으로 만든 백업을 사용하여 AlloyDB Omni 클러스터를 복원하는 방법을 설명합니다.
AlloyDB Omni는 PostgreSQL과 호환되므로 Barman 설명서에 설명된 데이터 복원 명령어와 기법이 AlloyDB Omni에도 적용됩니다. 이 페이지에서는 일반적인 복구 작업을 선택하고 관련 명령어의 예를 보여줍니다.
AlloyDB Omni에서 작동하도록 Barman을 구성하는 방법에 관한 자세한 내용은 AlloyDB Omni용 Barman 설정을 참고하세요.
시작하기 전에
AlloyDB Omni 데이터를 복원하기 전에 다음이 필요합니다.
소스 데이터베이스 서버와 동일한 AlloyDB Omni 메이저 버전을 실행하는 대상 데이터베이스 서버입니다. AlloyDB Omni 설치에 관한 자세한 내용은 AlloyDB Omni 설치를 참고하세요.
대상 서버는 소스 서버와 동일한 머신일 수 있습니다.
대상 서버에 설치된
rsync
유틸리티소스 AlloyDB Omni 데이터베이스의 유효한 Barman 백업이 하나 이상 있는 Barman 백업 서버
Barman 백업 서버와 대상 서버 간의 SSH 연결
Barman 서버의
barman
사용자가 비밀번호 없이 타겟 서버에postgres
사용자로 인증할 수 있도록 설정된 SSH 키입니다.복원된 데이터베이스를 보관할 수 있을 만큼 대상 서버에 여유 디스크 공간이 있습니다.
특정 백업을 사용하여 복구
대상 서버에서 AlloyDB Omni를 중지합니다.
Docker
docker stop CONTAINER_NAME
CONTAINER_NAME
을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름(예:my-omni
)으로 바꿉니다.Podman
podman stop CONTAINER_NAME
CONTAINER_NAME
을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름(예:my-omni
)으로 바꿉니다.Barman 서버에서 복원할 백업을 선택합니다. 사용 가능한 백업을 보려면
barman list-backups
명령어를 실행합니다. 특정 백업에 대한 세부정보를 보려면barman show-backup
명령어를 실행합니다.선택한 백업을 대상 AlloyDB Omni 서버로 복구하려면
barman recover
명령어를 실행합니다.명령어를 실행할 때 다음을 포함합니다.
- 원격 복구 옵션을 사용합니다.
- 대상 서버의 데이터 디렉터리를 대상 디렉터리로 지정합니다.
다음 명령어는 AlloyDB Omni에서
barman recover
를 사용하는 예를 보여줍니다.barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID DATA_PATH
다음을 바꿉니다.
TARGET_IP
: 대상 서버의 IP 주소입니다.TARGET_LABEL
: Barman 구성 파일에서 서버에 할당한 라벨입니다.BACKUP_ID
: 이전 단계에서 식별한 복원할 백업의 ID입니다(예:20230810T210200
).DATA_PATH
: 대상 서버의 데이터 디렉터리에 있는data
하위 디렉터리의 경로입니다(예:/home/your-username/alloydb-data/data
).
AlloyDB Omni 타겟 데이터베이스 서버에서 서비스를 시작합니다.
Docker
docker start CONTAINER_NAME
Podman
podman start CONTAINER_NAME
서비스가 다시 시작되면 AlloyDB Omni 서버에 연결합니다. 복원된 데이터베이스와 데이터가 표시됩니다.
특정 시점으로 복구
특정 시점 복원을 수행하려면 이전 섹션에 나열된 단계를 따르되 한 가지 사항을 수정합니다. barman recover
명령어를 실행할 때 Barman 특정 시점 복구 옵션 중 하나도 지정해야 합니다.
다음 명령어는 특정 시점 복구 옵션이 있는 AlloyDB Omni에서 barman recover
를 사용하는 예를 보여줍니다.
barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID --target-time="RESTORE_TIMESTAMP" DATA_PATH
다음을 바꿉니다.
TARGET_IP
: 대상 서버의 IP 주소입니다.TARGET_LABEL
: Barman 구성 파일에서 서버에 할당한 라벨입니다.BACKUP_ID
: 이전 단계에서 식별한 복원할 백업의 ID입니다(예:20230810T210200
).TARGET_TIMESTAMP
: 날짜와 시간을 모두 지정하는 PostgreSQLtimestamp
형식(예:2024-02-06 00:00:00
)으로 복원할 시간입니다.DATA_PATH
: 대상 서버의 데이터 디렉터리에 있는data
하위 디렉터리의 경로입니다(예:/home/your-username/alloydb-data/data
).