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유틸리티와 같은 대체 방법을 사용하여 버전 간에 데이터베이스를 복사해야 합니다.
AlloyDB Omni 컨테이너 중지
AlloyDB Omni 데이터베이스 클러스터를 사용할 수 없는 상황을 시뮬레이션하려면 컨테이너를 중지합니다.
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAME
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAMEpodman 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_NAMEdocker rm CONTAINER_NAME
Docker
docker kill CONTAINER_NAMEdocker rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAMEpodman rm CONTAINER_NAME
Podman
podman kill CONTAINER_NAMEpodman 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 명령어는 다양한 명령줄 옵션을 전달하여 제어할 수 있는 옵션과 기능이 있어 매우 유연합니다.
복원 실행에 관한 전체 가이드는 복원을 참고하세요.