이 페이지에서는 AlloyDB Omni Docker 컨테이너에 포함된 오픈소스 백업 솔루션인 pgBackRest로 만든 백업을 사용하여 AlloyDB Omni 클러스터를 복원하는 방법을 보여줍니다.
AlloyDB Omni는 PostgreSQL과 호환되므로 pgBackRest 매뉴얼에 설명된 데이터 복원 명령어와 기법이 AlloyDB Omni에도 적용됩니다. 이 페이지에서는 일반적인 복구 작업 중 일부를 관련 명령어의 예시와 함께 보여줍니다.
AlloyDB Omni에서 작동하도록 pgBackRest를 구성하는 방법에 관한 자세한 내용은 AlloyDB Omni용 pgBackRest 설정을 참고하세요.
Kubernetes 기반 정보는 Kubernetes에서 백업 및 복원을 참고하세요.
시작하기 전에
pgBackrest와 호환되도록 AlloyDB Omni를 구성하려면 관리하는 서버에 AlloyDB Omni가 설치되어 실행되어 있어야 합니다.
복원하려는 백업과 동일한 메이저 버전의 AlloyDB Omni를 실행하는 대상 데이터베이스 서버입니다. AlloyDB Omni 설치에 관한 자세한 내용은 AlloyDB Omni 설치를 참고하세요.
소스 AlloyDB Omni 데이터베이스의 백업 1개 이상이 포함된 pgBackRest 백업 저장소입니다.
복원된 데이터베이스를 보관할 수 있을 만큼 대상 서버에 여유 디스크 공간이 있습니다.
개요
pgBackRest를 사용하여 AlloyDB Omni 복원을 실행하려면 pgbackrest restore
명령어를 실행합니다. 명령어에 제공하는 매개변수는 상황에 따라 다릅니다.
일반적으로 다음 정보를 제공하는 플래그를 사용하여 pgbackrest restore
명령어를 실행합니다.
pgbackrest.conf
파일의 위치입니다.- 복원할 pgBackRest 백업 저장소의 이름입니다. 이러한 저장소는
pgbackrest.conf
파일에서 이름이 지정되고 정의됩니다. - 복원된 데이터를 쓸 로컬 파일 시스템의 위치입니다.
- 복원하려는 특정 백업 또는 시점의 식별자입니다.
컨테이너화된 pgbackrest restore
명령어를 실행할 때는 컨테이너 관점에서 파일 시스템 경로를 사용해야 합니다. 예를 들어 AlloyDB Omni 데이터 디렉터리의 경로는 호스트 서버의 위치와 관계없이 항상 /var/lib/postgresql/data
입니다. 자세한 내용은 파일 시스템 경로에 관한 참고사항을 참고하세요.
특정 시점 복원 수행
이 예에서는 pgBackRest 저장소에서 데이터를 복원하여 복원할 특정 시점을 지정합니다. 대상 환경의 pgbackrest.conf
파일에 저장소를 여러 개 정의한 경우 pgBackRest는 가용성, 예상 속도, 기타 요소를 기반으로 복원할 저장소를 선택합니다.
이 예에서는 다음을 가정합니다.
타겟 AlloyDB Omni 데이터 디렉터리의 최상위에
pgbackrest.conf
파일이 있습니다. 이렇게 하면 컨테이너화된pgbackrest
에서/var/lib/postgresql/data
로 파일을 사용할 수 있습니다.pgBackRest 구성으로 지속 백업을 사용 설정했습니다.
대상 환경에서 복원할 타임스탬프를 지정하여 PITR 복원을 실행합니다.
docker exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restore
다음을 바꿉니다.
CONTAINER_NAME
: AlloyDB Omni 컨테이너를 설치할 때 할당한 이름입니다(예:my-omni
).STANZA
: 이 복원에 적용할pgbackrest.conf
파일에서 정의된 구성 스탠자(예:omni
)입니다.TIMESTAMP
: 복원할 시간입니다(예:2024-02-22 19:50:00
).
대상 환경에서 다음 명령어를 사용하여 컨테이너를 중지합니다.
docker container stop CONTAINER_NAME
안전을 위해 데이터 디렉터리의
data
하위 디렉터리 이름을 바꿉니다.cd DATA_DIR
sudo mv data data-OLD
DATA_DIR
를 AlloyDB Omni 데이터 디렉터리의 파일 시스템 경로로 바꿉니다.복원된 데이터를 제자리로 옮기고
postgresql.auto.conf
를 정리합니다.sudo mv data-RESTORED data
sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
데이터베이스 서버로 AlloyDB Omni 컨테이너를 시작합니다.
docker container start CONTAINER_NAME
이제 psql
를 사용하여 데이터베이스에 연결하고 데이터가 예상대로 복원되었는지 확인할 수 있습니다. 이 경우 앞에서 만든 data
하위 디렉터리의 data-OLD
사본을 삭제할 수 있습니다.
pgBackRest의 PITR에 관한 자세한 내용은 PITR(point-in-time recovery)을 참고하세요.
AlloyDB Omni에서 사용할 pgbackrest.conf
파일을 준비하는 방법에 관한 자세한 내용은 AlloyDB Omni용 pgBackRest 설정을 참고하세요.
기타 옵션
pgbackrest restore
명령어는 매우 유연하며 다양한 명령줄 옵션을 전달하여 제어할 수 있는 다양한 옵션과 기능이 있습니다. 예를 들면 다음과 같습니다.
- 변경된 파일로만 복원을 제한합니다.
- 선택한 데이터베이스만 복원합니다.
pgBackRest에서 복원을 실행하는 방법에 관한 전체 가이드는 복원을 참고하세요.