Barman을 사용하여 AlloyDB Omni 클러스터 복원

문서 버전을 선택합니다.

이 페이지에서는 오픈소스 데이터베이스 백업 서버인 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 키

  • 복원된 데이터베이스를 저장하기 위한 대상 서버의 충분한 여유 디스크 공간

특정 백업을 사용하여 복구

  1. 대상 서버에서 AlloyDB Omni를 중지합니다.

    Docker

     docker stop CONTAINER_NAME

    CONTAINER_NAME을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름(예: my-omni)으로 바꿉니다.

    Podman

     podman stop CONTAINER_NAME

    CONTAINER_NAME을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름(예: my-omni)으로 바꿉니다.

  2. Barman 서버에서 복원할 백업을 선택합니다. 사용 가능한 백업을 보려면 barman list-backups 명령어를 실행합니다. 특정 백업에 대한 세부정보를 보려면 barman show-backup 명령어를 실행합니다.

  3. 선택한 백업을 대상 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).

  4. AlloyDB Omni 대상 데이터베이스 서버에서 서비스를 시작합니다.

    Docker

    docker start CONTAINER_NAME

    Podman

    podman start CONTAINER_NAME

서비스가 다시 시작되면 AlloyDB Omni 서버에 연결합니다. 복원된 데이터베이스와 데이터가 표시됩니다.

특정 시점으로 복구

PITR(point-in-time recovery)을 수행하려면 이전 섹션에 나열된 것과 동일한 단계를 따르되 한 가지를 수정해야 합니다. barman recover 명령어를 실행할 때 Barman PITR(point-in-time recovery) 중 하나도 지정해야 합니다.

다음 명령어는 PITR(point-in-time recovery) 옵션이 있는 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: 복원할 시간입니다. 날짜와 시간을 모두 지정하는 PostgreSQL timestamp 형식(예: 2024-02-06 00:00:00)을 사용합니다.

  • DATA_PATH: 대상 서버의 데이터 디렉터리에 있는 data 하위 디렉터리의 경로입니다(예: /home/your-username/alloydb-data/data).