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 stop OMNI_CONTAINER_NAME

    OMNI_CONTAINER_NAME을 AlloyDB 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 start OMNI_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).