이 페이지에서는 AlloyDB Omni 컨테이너에 포함된 오픈소스 백업 솔루션인 pgBackRest로 만든 백업을 사용하여 AlloyDB Omni 클러스터를 복원하는 방법을 보여줍니다.
AlloyDB Omni는 PostgreSQL과 호환되므로 pgBackRest 매뉴얼에 설명된 데이터 복원 명령어와 기법이 AlloyDB Omni에도 적용됩니다. 이 페이지에서는 일반적인 복구 작업을 선택하여 관련 명령어의 예를 보여줍니다.
AlloyDB Omni에서 작동하도록 pgBackRest를 구성하는 방법에 관한 자세한 내용은 AlloyDB Omni용 pgBackRest 설정을 참고하세요.
Kubernetes 기반 정보는 Kubernetes에서 백업 및 복원을 참고하세요.
시작하기 전에
AlloyDB Omni 클러스터를 복원하기 전에 다음을 확인하세요.
AlloyDB Omni 인스턴스에 pgBackRest를 설정 및 구성합니다.
복원된 AlloyDB Omni 데이터베이스 클러스터를 저장할 수 있을 만큼 대상 파일 시스템에 디스크 공간이 충분합니다.
원래 소스 컨테이너와 동일한 메이저 버전의 AlloyDB Omni이 복원 컨테이너에 사용됩니다.
PostgreSQL 버전을 확인하려면 다음 명령어를 실행합니다.
Docker
docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Docker
docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Podman
podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
Podman
podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
pgBackRest 버전을 확인하려면 다음 명령어를 실행합니다.
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest version
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest version
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest version
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest version
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
대상 컨테이너에 PostgreSQL, pgBackRest 또는 둘 다의 버전이 다른 경우 일치하는 버전으로 새 대상 컨테이너를 만들어야 합니다. 불가능한 경우 PostgreSQL에 포함된
pg_dump
또는pg_dumpall
유틸리티와 같은 대체 방법을 사용하여 버전 간에 데이터베이스를 복사해야 합니다. 자세한 내용은 DMP 파일 내보내기를 참고하세요.
AlloyDB Omni 컨테이너 중지
AlloyDB Omni 데이터베이스 클러스터를 사용할 수 없는 상황을 시뮬레이션하려면 컨테이너를 중지합니다.
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
유휴 AlloyDB Omni 컨테이너 만들기
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest sleep infinity
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest sleep infinity
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest sleep infinity
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest sleep infinity
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.DATA_DIR
: 데이터가 저장된 호스트 디렉터리 경로입니다.BACKUP_DIR
: 백업이 저장되는 외부 디렉터리 경로입니다.HOST_PORT
: 컨테이너가 자체 포트5432
를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면5432
를 지정합니다.
데이터 디렉터리 삭제
AlloyDB Omni 데이터베이스 클러스터를 지우려면 데이터 디렉터리를 삭제합니다.
Docker
docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Docker
docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Podman
podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
Podman
podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
백업이 표시되는지 확인
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ info
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.STANZA_NAME
: 생성한 스탠자의 이름입니다. 예를 들면my-stanza
입니다.
백업 복원
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Docker
docker exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
Podman
podman exec -u postgres CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/backups \ --stanza=STANZA_NAME \ restore
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.STANZA_NAME
: 생성한 스탠자의 이름입니다. 예를 들면my-stanza
입니다.
유휴 AlloyDB Omni 컨테이너 삭제
Docker
docker kill CONTAINER_NAME
docker rm CONTAINER_NAME
Docker
docker kill CONTAINER_NAME
docker rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAME
podman rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAME
podman rm CONTAINER_NAME
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
AlloyDB Omni 컨테이너 만들기
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Docker
docker run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -v DATA_DIR:/var/lib/postgresql/data \ -v BACKUP_DIR:/var/lib/postgresql/backups \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.DATA_DIR
: 데이터가 저장된 호스트 디렉터리 경로입니다.BACKUP_DIR
: 백업이 저장되는 외부 디렉터리 경로입니다.HOST_PORT
: 컨테이너가 자체 포트5432
를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면5432
를 지정합니다.
AlloyDB Omni가 시작되었는지 확인
Docker
docker logs -f CONTAINER_NAME
Docker
docker logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
다음 변수를 바꿉니다.
CONTAINER_NAME
: 컨테이너에 사용한 이름입니다. 예를 들면my-omni-1
입니다.
기타 옵션
pgBackRest restore
명령어는 매우 유연하며 다양한 명령줄 옵션을 전달하여 제어할 수 있는 다양한 옵션과 기능이 있습니다.
복원 실행에 관한 전체 가이드는 복원을 참고하세요.