AlloyDB Omni는 PostgreSQL과 호환되므로 pgBackRest 매뉴얼에 설명된 데이터 복원 명령어와 기법도 AlloyDB Omni에 적용됩니다. 이 페이지에서는 관련 명령어 예시를 통해 일반적인 복구 태스크를 보여줍니다.
pgBackRest가 AlloyDB Omni와 함께 작동하도록 구성하는 방법에 대한 자세한 내용은 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
유틸리티와 같은 대체 방법을 사용하여 버전 간에 데이터베이스를 복사해야 합니다.
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
명령어는 다양한 명령줄 옵션을 전달하여 제어할 수 있는 옵션과 기능이 있어 매우 유연합니다.
복원 실행에 대한 전체 가이드는 복원을 참조하세요.