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 서버에 연결합니다. 복원된 데이터베이스와 데이터가 표시됩니다.

특정 시점으로 복구

특정 시점 복원을 수행하려면 이전 섹션에 나열된 단계를 따르되 한 가지 사항을 수정합니다. barman recover 명령어를 실행할 때 Barman 특정 시점 복구 옵션 중 하나도 지정해야 합니다.

다음 명령어는 특정 시점 복구 옵션이 있는 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).