alloydbctl 및 Ansible과 함께 작동하여 이러한 매니페스트 구성을 적용하고 Cloud Storage, 표준 Amazon S3 버킷 또는 MinIO와 같은 S3 호환 소프트웨어로의 백업을 자동화합니다.
AlloyDB Omni 지속적 백업 및 복구를 사용 설정하려면 각 데이터베이스 클러스터에 백업 계획을 만들어야 합니다. 백업은 BackupPlan 리소스에 정의된 백업 일정에 따라 실행됩니다. 백업 리소스 또는 복구 기간 내 임의의 타임스탬프에서 초 단위로 상세하게 복원할 수 있습니다.
AlloyDB Omni는 매니페스트를 통해 자동 백업 및 복구를 관리합니다.
BackupPlan: 각 데이터베이스 클러스터에는 백업 등급에 따라 구성과 일정이 다른 하나 이상의BackupPlan매니페스트가 있을 수 있습니다.Backup:BackupPlan매니페스트에 따라 전체, 차등 또는 증분 백업을 시작합니다.Restore: 특정 백업 또는 특정 시점을 사용하여 데이터베이스 클러스터의 인플레이스 복원을 시작합니다.
시작하기 전에
백업 계획을 설정하고 구성하기 전에 다음 사항을 확인하세요.
백업 스토리지 위치: AlloyDB Omni는 다음 스토리지 옵션 중 하나에 백업을 저장합니다.
인증 사용자 인증 정보: 스토리지 옵션에 Amazon S3, MinIO 또는 특정 서비스 계정이 있는 Cloud Storage와 같은 인증 키가 필요한 경우 백업 계획을 만들기 전에 이러한 사용자 인증 정보가 포함된
Secret리소스를 만들어야 합니다. 자세한 내용은 스토리지를 인증하는 보안 비밀 리소스 만들기를 참고하세요.
스토리지 인증을 위한 보안 비밀 리소스 만들기
사용하는 스토리지에 인증이 필요한 경우 백업 계획을 만들기 전에 Secret 리소스를 만들어야 합니다.
Cloud Storage용 보안 비밀 리소스 만들기
- 해당 버킷에 백업을 추가할 서비스 계정을 만듭니다.
- 버킷의 서비스 계정에
roles/storage.objectAdminIdentity and Access Management 역할을 부여합니다. - JSON 형식으로 서비스 계정 키를 생성합니다.
- 다운로드한 JSON 키 파일의 콘텐츠를 base64로 인코딩합니다.
base64 -w 0을 실행하거나 인코딩된 텍스트가 연속된 단일 줄인지 확인합니다. Secret리소스 매니페스트를 만듭니다.data섹션의 키 이름은key.json이어야 합니다.Secret: metadata: name: SECRET_NAME spec: type: Opaque data: key.json: "BASE64_ENCODED_JSON_KEY"다음을 바꿉니다.
SECRET_NAME:Secret리소스의 이름입니다.BASE64_ENCODED_JSON_KEY: 서비스 계정 JSON 키 파일의 base64로 인코딩된 콘텐츠입니다.
S3 또는 S3 규격 스토리지를 위한 보안 비밀 리소스 만들기
- S3 액세스 키 ID를 base64로 인코딩합니다.
- S3 보안 비밀 액세스 키를 base64로 인코딩합니다.
Secret리소스 매니페스트를 만듭니다.data섹션의 키 이름은access-key-id및access-key여야 합니다.Secret: metadata: name: SECRET_NAME spec: type: Opaque data: access-key-id: "BASE64_ENCODED_ACCESS_KEY_ID" access-key: "BASE64_ENCODED_SECRET_ACCESS_KEY"다음을 바꿉니다.
SECRET_NAME:Secret리소스의 이름입니다.BASE64_ENCODED_ACCESS_KEY_ID: base64로 인코딩된 S3 액세스 키 ID입니다.BASE64_ENCODED_SECRET_ACCESS_KEY: base64로 인코딩된 S3 보안 액세스 키입니다.
보안 비밀 리소스 적용
BackupPlan 매니페스트를 적용하기 전에 Secret 리소스 매니페스트를 적용합니다.
다음 방법 중 하나를 사용하여 Secret 리소스 매니페스트를 적용할 수 있습니다.
alloydbctl
alloydbctl를 사용하여 Secret 리소스 매니페스트를 적용하려면 다음 명령어를 실행합니다.
alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "SECRET_MANIFEST"다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.SECRET_MANIFEST: 생성한Secret리소스 매니페스트의 경로입니다.
Ansible
Ansible을 사용하여 Secret 리소스 매니페스트를 적용하려면 다음 단계를 완료하세요.
Secret리소스 매니페스트의 플레이북을 만듭니다.- name: Create Secret hosts: localhost become: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.backup다음 변수를 바꿉니다.
ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
Secret리소스 매니페스트를 적용합니다.ansible-playbook SECRET_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \ -e resource_spec="SECRET_MANIFEST"다음 변수를 바꿉니다.
SECRET_PLAYBOOK:Secret리소스 매니페스트를 위해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.SECRET_MANIFEST: 생성한Secret리소스 매니페스트의 경로입니다.
백업 계획 만들기
스토리지 옵션의 형식을 사용하여
BackupPlan매니페스트를 만듭니다.Cloud Storage
gcsOptions필드는 필수 입력란입니다.BackupPlan: metadata: name: BACKUP_PLAN_NAME spec: dbclusterRef: DBCLUSTER_NAME backupLocation: type: GCS gcsOptions: bucket: BUCKET_NAME key: BUCKET_PATH secretRef: name: SECRET_NAME backupRetainDays: RETAIN_DAYS backupSchedules: full: "FULL_SCHEDULE" differential: "DIFF_SCHEDULE" incremental: "INC_SCHEDULE"다음 변수를 바꿉니다.
BACKUP_PLAN_NAME:BackupPlan매니페스트의 이름입니다. 예를 들면my-backup-plan-1입니다.DBCLUSTER_NAME: 클러스터 만들기에서 정의한 데이터베이스 클러스터의 이름입니다.BUCKET_NAME: 만든 Cloud Storage 버킷의 이름입니다.BUCKET_PATH: 백업이 기록되어야 하는 Cloud Storage의 디렉터리 경로입니다./로 시작하는 절대 경로를 제공해야 합니다. 예를 들면/backups입니다.SECRET_NAME(선택사항): 인증 키를 저장하는Secret리소스의 이름입니다.RETAIN_DAYS(선택사항): 백업이 자동으로 삭제되기 전 백업을 보존할 일수입니다.FULL_SCHEDULE(선택사항): 전체 백업의 크론 일정 표현식입니다. 예를 들면0 2 * * *입니다.DIFF_SCHEDULE(선택사항): 차등 백업의 크론 일정 표현식입니다. 예를 들면0 2 * * *입니다.INC_SCHEDULE(선택사항): 증분 백업의 cron 일정 표현식입니다. 예를 들면0 2 * * *입니다.
Amazon S3 또는 S3 호환
s3Options필드는 필수 입력란입니다.BackupPlan: metadata: name: BACKUP_PLAN_NAME spec: dbclusterRef: DBCLUSTER_NAME backupLocation: type: S3 s3Options: bucket: BUCKET_NAME key: BUCKET_PATH endpoint: ENDPOINT_URL region: REGION secretRef: name: SECRET_NAME backupRetainDays: RETAIN_DAYS backupSchedules: full: "FULL_SCHEDULE" differential: "DIFF_SCHEDULE" incremental: "INC_SCHEDULE"다음 변수를 바꿉니다.
BACKUP_PLAN_NAME:BackupPlan매니페스트의 이름입니다. 예를 들면my-backup-plan-1입니다.DBCLUSTER_NAME: 클러스터 만들기에서 정의한 데이터베이스 클러스터의 이름입니다.BUCKET_NAME: 생성한 S3 버킷의 이름입니다.BUCKET_PATH: 백업이 작성되어야 하는 S3 버킷의 디렉터리 경로입니다./로 시작하는 절대 경로를 제공해야 합니다. 예를 들면/backups입니다.ENDPOINT_URL: MinIO와 같은 S3 호환 소프트웨어에 연결하기 위한 맞춤 엔드포인트 URL입니다. 예를 들면http://minio.example.com:9000입니다. Amazon S3 버킷의 경우 엔드포인트 URL을 제공할 필요가 없습니다.REGION_(선택사항): 스토리지 버킷의 리전입니다. 리전 유효성 검사가 적용되는 표준 Amazon S3 버킷 또는 S3 규격 소프트웨어에 연결할 때 필요합니다.SECRET_NAME: 이전에 만들었고ACCESS_KEY_ID및SECRET_ACCESS_KEY를 포함하는Secret리소스에 대한 참조입니다.RETAIN_DAYS(선택사항): 백업이 자동으로 삭제되기 전 백업을 보존할 일수입니다.FULL_SCHEDULE(선택사항): 전체 백업의 크론 일정 표현식입니다. 예를 들면0 2 * * *입니다.DIFF_SCHEDULE(선택사항): 차등 백업의 크론 일정 표현식입니다. 예를 들면0 2 * * *입니다.INC_SCHEDULE(선택사항): 증분 백업의 cron 일정 표현식입니다. 예를 들면0 2 * * *입니다.
다음 방법 중 하나를 사용하여 백업 계획을 적용합니다.
alloydbctlBackupPlan리소스를 적용합니다.alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_PLAN_MANIFEST: 이전에 만든BackupPlan매니페스트의 경로입니다.
BackupPlan매니페스트의 상태 필드status.phase이Ready인지 확인합니다. 매니페스트가 준비되지 않은 경우 다음을 수행합니다.alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml
Ansible
BackupPlan매니페스트의 플레이북을 만듭니다.- name: BACKUP_PLAN_PLAYBOOK_NAME hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.backup다음 변수를 바꿉니다.
BACKUP_PLAN_PLAYBOOK_NAME: Ansible 플레이북의 이름입니다. 예를 들면My BackupPlan입니다. 다음 단계에서 필요하므로 플레이북의 경로를 기록해 둡니다.ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자의 이름입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
BackupPlan리소스를 적용합니다.ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \ -e resource_spec="BACKUP_PLAN_MANIFEST"다음 변수를 바꿉니다.
BACKUP_PLAN_PLAYBOOK: 이전에BackupPlan매니페스트에 대해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_PLAN_MANIFEST: 이전에 만든BackupPlan매니페스트의 경로입니다.
아직 만들지 않았다면
status.yaml플레이북을 만듭니다. 플레이북을 만드는 방법에 대한 자세한 내용은 상태 보기 및 백업 리소스 나열을 참고하세요.BackupPlan매니페스트의 상태 필드status.phase이Ready인지 확인합니다. 매니페스트가 준비되지 않은 경우 다음을 수행합니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \ -e resource_name=BACKUP_PLAN_NAME
백업 계획 업데이트
백업 일정을 변경하거나, 보관 기간을 수정하거나, 예약 백업을 일시중지하도록 백업 계획을 업데이트하려면 BackupPlan 매니페스트를 수정한 후 다시 적용하세요.
백업 계획 만들기에서 만든
BackupPlan매니페스트를 엽니다.업데이트할 필드를 수정합니다.
- 백업 일정을 업데이트하려면
backupSchedules아래의 cron 표현식을 수정합니다. - 보관 기간을 업데이트하려면
backupRetainDays을 수정합니다. - 예약된 백업을 일시중지하려면
spec섹션에paused필드를 추가하고true로 설정합니다. 백업을 재개하려면 필드를false로 설정하거나 필드를 삭제하세요.
예를 들어 다음 예에서는 보관 기간을
30로 업데이트하고,full및differential일정을 수정하고,incremental일정을 추가하고, 백업 계획을 일시중지합니다.BackupPlan: metadata: name: BACKUP_PLAN_NAME spec: dbclusterRef: DBCLUSTER_NAME backupLocation: type: GCS gcsOptions: bucket: BUCKET_NAME key: BUCKET_PATH secretRef: name: SECRET_NAME backupRetainDays: 30 backupSchedules: full: "0 4 * * *" differential: "0 0 * * 0" incremental: "0 12 * * *" paused: true- 백업 일정을 업데이트하려면
다음 방법 중 하나를 사용하여 업데이트된 백업 계획을 적용합니다.
alloydbctlBackupPlan리소스를 적용합니다.alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_PLAN_MANIFEST: 수정된BackupPlan매니페스트의 경로입니다.
BackupPlan매니페스트의 상태 필드status.phase이Ready인지 확인합니다. 매니페스트가 준비되지 않은 경우 다음을 수행합니다.alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml
Ansible
백업 계획 만들기에서 만든 플레이북을 사용하여 업데이트된
BackupPlan리소스를 적용합니다.ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \ -e resource_spec="BACKUP_PLAN_MANIFEST"다음 변수를 바꿉니다.
BACKUP_PLAN_PLAYBOOK:BackupPlan매니페스트를 위해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_PLAN_MANIFEST: 수정된BackupPlan매니페스트의 경로입니다.
아직 만들지 않았다면
status.yaml플레이북을 만듭니다. 플레이북을 만드는 방법에 대한 자세한 내용은 상태 보기 및 백업 리소스 나열을 참고하세요.BackupPlan매니페스트의 상태 필드status.phase이Ready인지 확인합니다. 매니페스트가 준비되지 않은 경우 준비될 때까지 기다린 후 확인합니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \ -e resource_name=BACKUP_PLAN_NAME
백업 계획 삭제
백업 계획을 삭제하려면 다음 방법 중 하나를 사용하세요.
alloydbctl
alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_PLAN_NAME: 삭제할BackupPlan매니페스트의 이름입니다.
Ansible
BackupPlan매니페스트를 삭제하는 플레이북을 만듭니다.- name: BACKUP_PLAN_DELETE_PLAYBOOK_NAME hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.delete다음 변수를 바꿉니다.
BACKUP_PLAN_DELETE_PLAYBOOK_NAME: Ansible 플레이북의 이름입니다.ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
ansible-playbook를 실행하여BackupPlan매니페스트를 삭제합니다.ansible-playbook BACKUP_PLAN_DELETE_PLAYBOOK_NAME -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \ -e resource_name=BACKUP_PLAN_NAME다음 변수를 바꿉니다.
BACKUP_PLAN_DELETE_PLAYBOOK_NAME: 이전 단계에서BackupPlan매니페스트를 삭제하기 위해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로BACKUP_PLAN_NAME: 삭제할BackupPlan매니페스트의 이름입니다.
백업 만들기
백업을 만들고 시작하려면 다음 방법 중 하나를 사용하세요.
alloydbctl
다음 형식을 사용하여
Backup매니페스트를 만듭니다.Backup: metadata: name: BACKUP_NAME spec: backupPlanRef: BACKUP_PLAN_NAME dbclusterRef: DBCLUSTER_NAME type: full다음 변수를 바꿉니다.
BACKUP_NAME:Backup매니페스트의 이름입니다. 예를 들면my-backup-1입니다.BACKUP_PLAN_NAME: 이전에 만든BackupPlan매니페스트의 이름입니다. 예를 들면my-backup-plan-1입니다.DBCLUSTER_NAME: 클러스터 만들기에서 정의한 데이터베이스 클러스터의 이름입니다.type(선택사항):full,diff또는incr로 설정할 수 있는 백업 실행 유형입니다. 기본값은full입니다.
Backup매니페스트를 적용합니다.alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_MANIFEST"다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로BACKUP_MANIFEST: 이전에 만든Backup매니페스트의 경로입니다.
Backup매니페스트의 상태 필드status.phase이Succeeded인지 확인합니다. 매니페스트가 아직 성공하지 않은 경우 다음을 기다립니다.alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml/backup/db폴더가 있는지 확인하여 버킷에서 백업 파일을 사용할 수 있는지 확인합니다.
Ansible
다음 형식을 사용하여
Backup매니페스트를 만듭니다.Backup: metadata: name: BACKUP_NAME spec: backupPlanRef: BACKUP_PLAN_NAME dbclusterRef: DBCLUSTER_NAME type: full다음 변수를 바꿉니다.
BACKUP_NAME:Backup매니페스트의 이름입니다. 예를 들면my-backup-1입니다.BACKUP_PLAN_NAME: 이전에 만든BackupPlan매니페스트의 이름입니다. 예를 들면my-backup-plan-1입니다.DBCLUSTER_NAME: 클러스터 만들기에서 정의한 데이터베이스 클러스터의 이름입니다.type(선택사항):full,diff또는incr로 설정할 수 있는 백업 실행 유형입니다. 기본값은full입니다.
Backup매니페스트의 플레이북을 만듭니다.- name: BACKUP_PLAYBOOK_NAME hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.backup다음 변수를 바꿉니다.
BACKUP_PLAYBOOK_NAME: Ansible 플레이북의 이름입니다. 예를 들면My Backup입니다.ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자의 이름입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
Backup매니페스트를 적용합니다.ansible-playbook BACKUP_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \ -e resource_spec="BACKUP_MANIFEST"다음 변수를 바꿉니다.
BACKUP_PLAYBOOK: 이전에 만든Backup매니페스트를 위해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_MANIFEST: 이전에 만든Backup매니페스트의 경로입니다.
아직 만들지 않았다면
status.yaml플레이북을 만듭니다. 플레이북을 만드는 방법에 대한 자세한 내용은 상태 보기 및 백업 리소스 나열을 참고하세요.Backup매니페스트의 상태 필드status.phase이Succeeded인지 확인합니다. 매니페스트가 성공하지 못한 경우 확인 전에 성공할 때까지 기다립니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \ -e resource_name=BACKUP_NAME/backup/db폴더가 있는지 확인하여 버킷에서 백업 파일을 사용할 수 있는지 확인합니다.
백업 삭제
백업을 삭제하려면 다음 명령어 중 하나를 실행합니다.
alloydbctl
alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_NAME: 삭제할Backup매니페스트의 이름입니다.
Ansible
Backup매니페스트를 삭제하는 플레이북을 만듭니다.- name: BACKUP_DELETE_PLAYBOOK_NAME hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.delete다음 변수를 바꿉니다.
BACKUP_DELETE_PLAYBOOK_NAME: Ansible 플레이북의 이름입니다.ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
ansible-playbook를 실행하여Backup매니페스트를 삭제합니다.ansible-playbook BACKUP_DELETE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \ -e resource_name=BACKUP_NAME다음 변수를 바꿉니다.
BACKUP_DELETE_PLAYBOOK: 이전 단계에서Backup매니페스트를 삭제하기 위해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.BACKUP_NAME: 삭제할Backup매니페스트의 이름입니다.
백업 또는 특정 시점 (PITR)에서 복원
백업에서 데이터를 복원하려면 Restore 매니페스트를 적용하세요. RPM 오케스트레이터는 복제된 클러스터를 스핀업하거나 수동 스크립트 실행을 요구하지 않고 대상 데이터베이스 클러스터를 직접 수정하는 인플레이스 복구를 실행합니다.
백업에서 복원하려면 다음 방법 중 하나를 사용하세요.
alloydbctl
다음 형식을 사용하여
Restore매니페스트를 만듭니다.- 특정 이름 지정된 백업 실행에서 복원하려면 다음 단계를 따르세요.
Restore: metadata: name: RESTORE_NAME spec: sourceDBCluster: DBCLUSTER_NAME backup: BACKUP_NAME특정 시점 복원 (PITR)을 수행하려면 다음 단계를 따르세요.
Restore: metadata: name: RESTORE_NAME spec: sourceDBCluster: DBCLUSTER_NAME pointInTime: "TIMESTAMP"
다음 변수를 바꿉니다.
RESTORE_NAME: 이Restore매니페스트의 이름입니다. 예를 들면my-restore-1입니다.DBCLUSTER_NAME: 현재 위치에서 복구할 타겟 데이터베이스 클러스터의 이름입니다.BACKUP_NAME: 복원할 완료된Backup매니페스트의 이름입니다.TIMESTAMP: 복구할 정확한 시점을 식별하는 RFC 3339 타임스탬프입니다. 예를 들면2026-06-19T14:30:00Z입니다.
Restore매니페스트를 적용합니다.alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "RESTORE_MANIFEST"다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: AlloyDB Omni 구성요소 설치에서 만든 배포 사양의 경로입니다.RESTORE_MANIFEST: 1단계에서 만든Restore매니페스트 사양 파일의 경로입니다.
Restore매니페스트의status.phase가Succeeded로 전환되는지 확인합니다.alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Restore -n RESTORE_NAME -o yaml
Ansible
다음 형식을 사용하여
Restore매니페스트를 만듭니다.- 특정 이름 지정된 백업 실행에서 복원하려면 다음 단계를 따르세요.
Restore: metadata: name: RESTORE_NAME spec: sourceDBCluster: DBCLUSTER_NAME backup: BACKUP_NAME특정 시점 복원 (PITR)을 수행하려면 다음 단계를 따르세요.
Restore: metadata: name: RESTORE_NAME spec: sourceDBCluster: DBCLUSTER_NAME pointInTime: "TIMESTAMP"
다음 변수를 바꿉니다.
RESTORE_NAME: 이Restore매니페스트의 이름입니다. 예를 들면my-restore-1입니다.DBCLUSTER_NAME: 현재 위치에서 복구할 타겟 데이터베이스 클러스터의 이름입니다.BACKUP_NAME: 복원할 완료된Backup매니페스트의 이름입니다.TIMESTAMP: 복구할 정확한 시점을 식별하는 RFC 3339 타임스탬프입니다. 예를 들면2026-06-19T14:30:00Z입니다.
Restore매니페스트의 플레이북을 만듭니다.- name: RESTORE_PLAYBOOK_NAME hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.restore다음 변수를 바꿉니다.
RESTORE_PLAYBOOK_NAME: Ansible 플레이북의 이름입니다.ANSIBLE_USER: Ansible이 AlloyDB Omni 노드에 로그인하는 데 사용하는 OS 사용자입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 AlloyDB Omni 노드에 연결하는 데 사용하는 비공개 키입니다.
Restore매니페스트를 적용합니다.ansible-playbook RESTORE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \ -e resource_spec="RESTORE_MANIFEST"다음 변수를 바꿉니다.
RESTORE_PLAYBOOK: 2단계에서Restore매니페스트에 대해 만든 플레이북의 경로입니다.DEPLOYMENT_SPEC_PATH: 배포 사양의 경로입니다.RESTORE_MANIFEST: 1단계에서 만든Restore매니페스트 사양 파일의 경로입니다.
아직 만들지 않았다면
status.yaml플레이북을 만듭니다. 플레이북을 만드는 방법에 대한 자세한 내용은 상태 보기 및 백업 리소스 나열을 참고하세요.Restore매니페스트의status.phase가Succeeded로 전환되는지 확인합니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Restore \ -e resource_name=RESTORE_NAME
상태 보기 및 백업 리소스 나열
BackupPlan, Backup, Restore 리소스의 상태를 보거나 리소스를 나열하려면 다음 방법 중 하나를 사용하세요.
alloydbctl
특정 유형의 모든 리소스를 나열하려면 alloydbctl get 명령어를 실행합니다.
alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE특정 리소스의 상태를 보려면 리소스 이름과 출력 형식을 yaml로 설정하여 alloydbctl get 명령어를 실행합니다.
alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE -n RESOURCE_NAME -o yaml다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양의 경로입니다.RESOURCE_TYPE: 리소스 유형입니다.BackupPlan,Backup또는Restore로 설정합니다.RESOURCE_NAME: 상태를 확인하려는 리소스의 이름입니다.
Ansible
Ansible을 사용하여 리소스의 상태를 보거나 리소스를 나열하려면 google.alloydbomni_orchestrator.status 역할을 사용하세요.
다음 형식을 사용하여 플레이북(예:
status.yaml)을 만듭니다.- name: Get resource status hosts: localhost vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.status다음 변수를 바꿉니다.
ANSIBLE_USER: Ansible이 노드에 로그인하는 데 사용하는 OS 사용자입니다.ANSIBLE_SSH_PRIVATE_KEY_FILE: Ansible이 SSH를 사용하여 노드에 연결하는 데 사용하는 비공개 키입니다.
플레이북을 실행합니다.
특정 유형의 모든 리소스를 나열하려면
resource_type변수를 사용하여 플레이북을 실행합니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE특정 리소스의 상태를 보려면
resource_type및resource_name변수를 모두 사용하여 플레이북을 실행합니다.ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE \ -e resource_name=RESOURCE_NAME다음 변수를 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양의 경로입니다.RESOURCE_TYPE: 리소스 유형입니다.BackupPlan,Backup또는Restore로 설정합니다.RESOURCE_NAME: 상태를 확인하려는 리소스의 이름입니다.
제한사항
BackupPlan상태에failed to create stanza(종료 코드39)이 있는ConfigurationFailed이 표시되면 버킷에roles/storage.objectAdmin역할을 부여하고 매니페스트를 다시 적용하여 조정을 재개할 수 있습니다.BackupPlan을 삭제할 필요는 없습니다.