Fazer backup e restaurar dados usando o RPM Orchestrator

Selecione uma versão da documentação:

Para proteger seus dados, o AlloyDB Omni oferece backup e recuperação de dados automatizados usando manifestos declarativos. O orquestrador do AlloyDB Omni funciona com alloydbctl e Ansible para aplicar essas configurações de manifesto e automatizar backups no Cloud Storage, em buckets padrão do Amazon S3 ou em softwares compatíveis com S3, como o MinIO.

Para ativar o backup e a recuperação contínuos do AlloyDB Omni, crie um plano de backup para cada cluster de banco de dados. Os backups são feitos com base nas programações de backup definidas no recurso BackupPlan. É possível restaurar usando um recurso de backup ou qualquer carimbo de data/hora na janela de recuperação com uma granularidade de segundos.

O AlloyDB Omni gerencia backups e recuperações automatizados usando manifestos:

  • BackupPlan: cada cluster de banco de dados pode ter um ou mais manifestos BackupPlan com diferentes configurações e programações em todos os níveis de backup.
  • Backup: inicia backups completos, diferenciais ou incrementais com base nos seus manifestos BackupPlan.
  • Restore: inicia uma restauração no local do cluster de banco de dados usando um backup específico ou um ponto no tempo.

Antes de começar

Antes de definir e configurar o plano de backup, verifique se você tem o seguinte:

  • Um local de armazenamento para seus backups: o AlloyDB Omni armazena backups em uma das seguintes opções de armazenamento:

    • Cloud Storage: um bucket do Cloud Storage. Para informações sobre como criar buckets, consulte Criar um bucket.
    • Amazon S3: um bucket do Amazon S3. Para informações sobre como criar buckets do S3, consulte Como criar um bucket.
    • Armazenamento compatível com S3: um bucket em um software compatível com S3, como o MinIO. Para saber como criar buckets do MinIO, consulte a documentação do MinIO.
  • Credenciais de autenticação: se a opção de armazenamento exigir chaves de autenticação, como Amazon S3, MinIO ou Cloud Storage com uma conta de serviço específica, crie um recurso Secret com essas credenciais antes de criar o plano de backup. Para instruções, consulte Criar um recurso Secret para autenticar o armazenamento.

Criar um recurso Secret para autenticar o armazenamento

Se o armazenamento que você usa exigir autenticação, crie um recurso Secret antes de criar o plano de backup.

Criar um recurso Secret para o Cloud Storage

  1. Crie uma conta de serviço para adicionar backups ao bucket.
  2. Conceda o papel roles/storage.objectAdmin do Identity and Access Management à conta de serviço no bucket.
  3. Gere uma chave de conta de serviço no formato JSON.
  4. Codifique o conteúdo do arquivo de chave JSON baixado em base64. Execute base64 -w 0 ou verifique se o texto codificado é uma única linha contínua.
  5. Crie um manifesto de recursos Secret. O nome da chave na seção data precisa ser key.json.

    Secret:
      metadata:
        name: SECRET_NAME
      spec:
        type: Opaque
        data:
          key.json: "BASE64_ENCODED_JSON_KEY"
    

    Substitua:

    • SECRET_NAME: o nome do recurso Secret.
    • BASE64_ENCODED_JSON_KEY: o conteúdo codificado em base64 do arquivo de chave JSON da conta de serviço.

Criar um recurso Secret para o S3 ou armazenamento compatível com S3

  1. Codifique o ID da chave de acesso do S3 em base64.
  2. Codifique sua chave de acesso secreta do S3 em base64.
  3. Crie um manifesto de recurso Secret. Os nomes das chaves na seção data precisam ser access-key-id e 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"
    

    Substitua:

    • SECRET_NAME: o nome do recurso Secret.
    • BASE64_ENCODED_ACCESS_KEY_ID: o ID da chave de acesso do S3 codificado em base64.
    • BASE64_ENCODED_SECRET_ACCESS_KEY: a chave de acesso secreta do S3 codificada em base64.

Aplicar o recurso Secret

Aplique o manifesto de recurso Secret antes de aplicar o manifesto BackupPlan. É possível aplicar o manifesto de recurso Secret usando um dos seguintes métodos:

alloydbctl

Para aplicar o manifesto de recurso Secret usando alloydbctl, execute o seguinte comando:

alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "SECRET_MANIFEST"

Substitua as seguintes variáveis:

  • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.
  • SECRET_MANIFEST: caminho para o manifesto de recursos Secret que você criou.

Ansible

Para aplicar o manifesto de recurso Secret usando o Ansible, faça o seguinte:

  1. Crie um playbook para o manifesto de recursos 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
    

    Substitua as seguintes variáveis:

    • ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos nós do AlloyDB Omni.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.
  2. Aplique o manifesto de recurso Secret:

    ansible-playbook SECRET_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="SECRET_MANIFEST"

    Substitua as seguintes variáveis:

    • SECRET_PLAYBOOK: caminho para o playbook que você criou para o manifesto de recursos Secret.
    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.
    • SECRET_MANIFEST: caminho para o manifesto de recurso Secret que você criou.

Criar um plano de backup

  1. Crie um manifesto BackupPlan usando o formato da sua opção de armazenamento:

    Cloud Storage

    O campo gcsOptions é obrigatório.

    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"
    

    Substitua as seguintes variáveis:

    • BACKUP_PLAN_NAME: nome do manifesto BackupPlan. Por exemplo, my-backup-plan-1.

    • DBCLUSTER_NAME: o nome do cluster de banco de dados que você definiu em Criar um cluster.

    • BUCKET_NAME: nome do bucket do Cloud Storage que você criou.

    • BUCKET_PATH: caminho para o diretório no Cloud Storage em que os backups devem ser gravados. É necessário fornecer um caminho absoluto que comece com /. Por exemplo, /backups.

    • SECRET_NAME (Opcional): nome do recurso Secret que armazena as chaves de autenticação.

    • RETAIN_DAYS (Opcional): número de dias para reter backups antes que eles sejam excluídos automaticamente.

    • FULL_SCHEDULE (Opcional): expressão de programação cron para backups completos. Por exemplo, 0 2 * * *.

    • DIFF_SCHEDULE (opcional): expressão de programação cron para backups diferenciais. Por exemplo, 0 2 * * *.

    • INC_SCHEDULE (Opcional): expressão de programação cron para backups incrementais. Por exemplo, 0 2 * * *.

    Amazon S3 ou compatível com S3

    O campo s3Options é obrigatório.

    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"
    

    Substitua as seguintes variáveis:

    • BACKUP_PLAN_NAME: nome do manifesto BackupPlan. Por exemplo, my-backup-plan-1.

    • DBCLUSTER_NAME: nome do cluster de banco de dados que você definiu em Criar um cluster.

    • BUCKET_NAME: nome do bucket do S3 que você criou.

    • BUCKET_PATH: caminho para o diretório no bucket do S3 em que os backups devem ser gravados. É necessário fornecer um caminho absoluto que comece com /. Por exemplo, /backups.

    • ENDPOINT_URL: URL de endpoint personalizado para conexão com software compatível com S3, como MinIO. Por exemplo, http://minio.example.com:9000. Para buckets do Amazon S3, não é necessário fornecer nenhum URL de endpoint.

    • REGION_ (opcional): região do bucket de armazenamento. Obrigatório ao se conectar a buckets padrão do Amazon S3 ou a softwares compatíveis com S3 em que a validação de região é aplicada.

    • SECRET_NAME: referência a um recurso Secret que você criou anteriormente e que contém ACCESS_KEY_ID e SECRET_ACCESS_KEY.

    • RETAIN_DAYS (opcional): número de dias para reter os backups antes que eles sejam excluídos automaticamente.

    • FULL_SCHEDULE (Opcional): expressão de programação cron para backups completos. Por exemplo, 0 2 * * *.

    • DIFF_SCHEDULE (opcional): expressão de programação cron para backups diferenciais. Por exemplo, 0 2 * * *.

    • INC_SCHEDULE (Opcional): expressão de programação cron para backups incrementais. Por exemplo, 0 2 * * *.

  2. Aplique o plano de backup usando um dos seguintes métodos:

    alloydbctl

    1. Aplique o recurso BackupPlan:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      Substitua as seguintes variáveis:

      • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação criada em Instalar componentes do AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: caminho para o manifesto BackupPlan criado anteriormente.

    2. Confirme se o campo de status, status.phase, do manifesto BackupPlan é Ready. Se o manifesto não estiver pronto, aguarde até que esteja:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. Crie um playbook para seu manifesto 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
      

      Substitua as seguintes variáveis:

      • BACKUP_PLAN_PLAYBOOK_NAME: nome do seu playbook do Ansible. Por exemplo, My BackupPlan. Anote o caminho para o playbook, porque ele é necessário na próxima etapa.

      • ANSIBLE_USER: nome do usuário do SO que o Ansible usa para fazer login nos nós do AlloyDB Omni.

      • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.

    2. Aplique o recurso BackupPlan:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      Substitua as seguintes variáveis:

      • BACKUP_PLAN_PLAYBOOK: caminho para o playbook que você criou para o manifesto BackupPlan anteriormente.

      • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação criada em Instalar componentes do AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: caminho para o manifesto BackupPlan que você criou anteriormente.

    3. Crie um playbook do status.yaml, se ainda não tiver um. Para informações sobre como criar o playbook, consulte Ver o status e listar os recursos de backup.

    4. Confirme se o campo de status, status.phase, do manifesto BackupPlan é Ready. Se o manifesto não estiver pronto, aguarde até que esteja:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

Atualizar um plano de backup

Para atualizar um plano de backup, mudar a programação de backup, modificar o período de armazenamento ou pausar os backups programados, modifique o manifesto BackupPlan e aplique-o novamente.

  1. Abra o manifesto BackupPlan que você criou em Criar um plano de backup.

  2. Os campos que você quer atualizar.

    • Para atualizar as programações de backup, modifique as expressões cron em backupSchedules.
    • Para atualizar o período de armazenamento, modifique backupRetainDays.
    • Para pausar os backups programados, adicione o campo paused à seção spec e defina-o como true. Para retomar os backups, defina o campo como false ou remova-o.

    Por exemplo, o exemplo a seguir atualiza os dias de retenção para 30, modifica as programações full e differential, adiciona uma programação incremental e pausa o plano de backup:

    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
    
  3. Aplique o plano de backup atualizado usando um dos seguintes métodos:

    alloydbctl

    1. Aplique o recurso BackupPlan:

      alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_PLAN_MANIFEST"

      Substitua as seguintes variáveis:

      • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação criada em Instalar componentes do AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: caminho para o manifesto BackupPlan que você modificou.

    2. Confirme se o campo de status, status.phase, do manifesto BackupPlan é Ready. Se o manifesto não estiver pronto, aguarde até que esteja:

      alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME -o yaml

    Ansible

    1. Aplique o recurso BackupPlan atualizado usando o playbook que você criou em Criar um plano de backup:

      ansible-playbook BACKUP_PLAN_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
        -e resource_spec="BACKUP_PLAN_MANIFEST"

      Substitua as seguintes variáveis:

      • BACKUP_PLAN_PLAYBOOK: caminho para o playbook que você criou para o manifesto BackupPlan.

      • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

      • BACKUP_PLAN_MANIFEST: caminho para o manifesto BackupPlan que você modificou.

    2. Crie um playbook de status.yaml, se ainda não tiver feito isso. Para informações sobre como criar o playbook, consulte Ver o status e listar os recursos de backup.

    3. Confirme se o campo de status, status.phase, do manifesto BackupPlan é Ready. Se o manifesto não estiver pronto, aguarde até que esteja antes da verificação:

      ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
        -e resource_name=BACKUP_PLAN_NAME

Excluir um plano de backup

Para excluir um plano de backup, use um dos seguintes métodos:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t BackupPlan -n BACKUP_PLAN_NAME

Substitua as seguintes variáveis:

  • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

  • BACKUP_PLAN_NAME: nome do manifesto BackupPlan a ser excluído.

Ansible

  1. Crie um playbook para excluir o manifesto 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
    

    Substitua as seguintes variáveis:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: nome do seu playbook do Ansible.

    • ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos seus nós do AlloyDB Omni.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.

  2. Execute ansible-playbook para excluir o manifesto BackupPlan.

    ansible-playbook BACKUP_PLAN_DELETE_PLAYBOOK_NAME -i "DEPLOYMENT_SPEC_PATH" -e resource_type=BackupPlan \
      -e resource_name=BACKUP_PLAN_NAME

    Substitua as seguintes variáveis:

    • BACKUP_PLAN_DELETE_PLAYBOOK_NAME: caminho para o playbook que você criou para excluir o manifesto BackupPlan na etapa anterior.

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

    • BACKUP_PLAN_NAME: nome do manifesto do BackupPlan a ser excluído.

Criar backup

Para criar e iniciar um backup, use um dos seguintes métodos:

alloydbctl

  1. Crie um manifesto Backup usando o seguinte formato:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    Substitua as seguintes variáveis:

    • BACKUP_NAME: nome do manifesto Backup. Por exemplo, my-backup-1.

    • BACKUP_PLAN_NAME: nome do manifesto BackupPlan que você criou anteriormente. Por exemplo, my-backup-plan-1.

    • DBCLUSTER_NAME: nome do cluster de banco de dados que você definiu em Criar um cluster.

    • type (opcional): tipo de execução de backup que pode ser definido como full, diff ou incr. O padrão é full.

  2. Aplique o manifesto Backup:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "BACKUP_MANIFEST"

    Substitua as seguintes variáveis:

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

    • BACKUP_MANIFEST: caminho para o manifesto Backup que você criou anteriormente.

  3. Confirme se o campo de status, status.phase, do manifesto Backup é Succeeded. Se o manifesto não tiver sido concluído, aguarde até que ele seja:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME -o yaml
  4. Confirme se os arquivos de backup estão disponíveis no bucket verificando se a pasta /backup/db existe.

Ansible

  1. Crie um manifesto Backup usando o seguinte formato:

    Backup:
      metadata:
        name: BACKUP_NAME
      spec:
        backupPlanRef: BACKUP_PLAN_NAME
        dbclusterRef: DBCLUSTER_NAME
        type: full
    

    Substitua as seguintes variáveis:

    • BACKUP_NAME: nome do manifesto Backup. Por exemplo, my-backup-1.

    • BACKUP_PLAN_NAME: nome do manifesto BackupPlan que você criou antes. Por exemplo, my-backup-plan-1.

    • DBCLUSTER_NAME: o nome do cluster de banco de dados que você definiu em Criar um cluster.

    • type (opcional): tipo de execução de backup que pode ser definido como full, diff ou incr. O padrão é full.

  2. Crie um playbook para o manifesto 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
    

    Substitua as seguintes variáveis:

    • BACKUP_PLAYBOOK_NAME: nome do manual do Ansible. Por exemplo, My Backup.

    • ANSIBLE_USER: nome do usuário do SO que o Ansible usa para fazer login nos seus nós do AlloyDB Omni.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.

  3. Aplique o manifesto Backup:

    ansible-playbook BACKUP_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="BACKUP_MANIFEST"

    Substitua as seguintes variáveis:

    • BACKUP_PLAYBOOK: caminho para o playbook que você criou para o manifesto Backup que você criou anteriormente.

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

    • BACKUP_MANIFEST: caminho para o manifesto Backup criado anteriormente.

  4. Crie um playbook do status.yaml, se ainda não tiver um. Para informações sobre como criar o playbook, consulte Ver status e listar recursos de backup.

  5. Confirme se o campo de status, status.phase, do manifesto Backup é Succeeded. Se o manifesto não tiver sido concluído, aguarde até que isso aconteça antes da verificação:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME
  6. Confirme se os arquivos de backup estão disponíveis no bucket verificando se a pasta /backup/db existe.

Excluir um backup

Para excluir um backup, execute um dos seguintes comandos:

alloydbctl

alloydbctl delete -d "DEPLOYMENT_SPEC_PATH" -t Backup -n BACKUP_NAME

Substitua as seguintes variáveis:

Ansible

  1. Crie um playbook para excluir o manifesto 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
    

    Substitua as seguintes variáveis:

    • BACKUP_DELETE_PLAYBOOK_NAME: nome do playbook do Ansible.

    • ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos nós do AlloyDB Omni.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.

  2. Execute ansible-playbook para excluir o manifesto Backup.

    ansible-playbook BACKUP_DELETE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Backup \
      -e resource_name=BACKUP_NAME

    Substitua as seguintes variáveis:

    • BACKUP_DELETE_PLAYBOOK: caminho para o playbook que você criou para excluir o manifesto Backup na etapa anterior.

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

    • BACKUP_NAME: nome do manifesto Backup a ser excluído.

Restaurar de um backup ou de um momento específico (PITR)

Para restaurar dados de um backup, aplique um manifesto Restore. O orquestrador de RPM realiza a recuperação no local, que modifica diretamente o cluster de banco de dados de destino sem criar um cluster clonado ou exigir a execução manual de scripts.

Para restaurar um backup, use um dos seguintes métodos:

alloydbctl

  1. Crie um manifesto Restore usando o seguinte formato:

    • Para restaurar de um backup nomeado específico, execute:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • Para realizar uma recuperação pontual (PITR, na sigla em inglês):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    Substitua as seguintes variáveis:

    • RESTORE_NAME: nome para este manifesto Restore. Por exemplo, my-restore-1.

    • DBCLUSTER_NAME: nome do cluster de banco de dados de destino para recuperação in loco.

    • BACKUP_NAME: nome do manifesto Backup concluído de onde será feita a restauração.

    • TIMESTAMP: carimbo de data/hora RFC 3339 que identifica o momento exato da recuperação. Por exemplo, 2026-06-19T14:30:00Z.

  2. Aplique o manifesto Restore:

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "RESTORE_MANIFEST"

    Substitua as seguintes variáveis:

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação que você criou em Instalar componentes do AlloyDB Omni.

    • RESTORE_MANIFEST: caminho para o arquivo de especificação do manifesto Restore que você criou na etapa 1.

  3. Confirme se status.phase para seu manifesto Restore faz a transição para Succeeded:

    alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t Restore -n RESTORE_NAME -o yaml

Ansible

  1. Crie um manifesto Restore usando o seguinte formato:

    • Para restaurar de um backup nomeado específico, execute:
    Restore:
      metadata:
        name: RESTORE_NAME
      spec:
        sourceDBCluster: DBCLUSTER_NAME
        backup: BACKUP_NAME
    
    • Para realizar uma recuperação pontual (PITR, na sigla em inglês):

      Restore:
        metadata:
          name: RESTORE_NAME
        spec:
          sourceDBCluster: DBCLUSTER_NAME
          pointInTime: "TIMESTAMP"
      

    Substitua as seguintes variáveis:

    • RESTORE_NAME: nome para este manifesto Restore. Por exemplo, my-restore-1.

    • DBCLUSTER_NAME: nome do cluster de banco de dados de destino para recuperação in loco.

    • BACKUP_NAME: nome do manifesto Backup concluído de onde será feita a restauração.

    • TIMESTAMP: carimbo de data/hora RFC 3339 que identifica o ponto exato no tempo para recuperação. Por exemplo, 2026-06-19T14:30:00Z.

  2. Crie um playbook para o manifesto 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
    

    Substitua as seguintes variáveis:

    • RESTORE_PLAYBOOK_NAME: nome do playbook do Ansible.

    • ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos nós do AlloyDB Omni.

    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós do AlloyDB Omni usando SSH.

  3. Aplique o manifesto Restore:

    ansible-playbook RESTORE_PLAYBOOK -i "DEPLOYMENT_SPEC_PATH" \
      -e resource_spec="RESTORE_MANIFEST"

    Substitua as seguintes variáveis:

    • RESTORE_PLAYBOOK: caminho para o playbook que você criou para o manifesto Restore na etapa 2.

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação.

    • RESTORE_MANIFEST: caminho para o arquivo de especificação do manifesto Restore que você criou na etapa 1.

  4. Crie um playbook do status.yaml, se ainda não tiver um. Para informações sobre como criar o playbook, consulte Ver o status e listar os recursos de backup.

  5. Confirme se o status.phase do manifesto Restore faz a transição para Succeeded:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=Restore \
      -e resource_name=RESTORE_NAME

Ver o status e listar recursos de backup

Para ver o status ou listar os recursos BackupPlan, Backup e Restore, use um dos seguintes métodos:

alloydbctl

Para listar todos os recursos de um tipo específico, execute o comando alloydbctl get:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE

Para conferir o status de um recurso específico, execute o comando alloydbctl get com o nome do recurso e o formato de saída definidos como yaml:

alloydbctl get -d "DEPLOYMENT_SPEC_PATH" -t RESOURCE_TYPE -n RESOURCE_NAME -o yaml

Substitua as seguintes variáveis:

  • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação.
  • RESOURCE_TYPE: o tipo de recurso. Defina como BackupPlan, Backup ou Restore.
  • RESOURCE_NAME: o nome do recurso de que você quer ver o status.

Ansible

Para conferir o status ou listar recursos usando o Ansible, use o papel google.alloydbomni_orchestrator.status.

  1. Crie um playbook, por exemplo, status.yaml, usando o seguinte formato:

    - 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
    

    Substitua as seguintes variáveis:

    • ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos seus nós.
    • ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada que o Ansible usa para se conectar aos nós usando SSH.
  2. Execute o playbook.

    Para listar todos os recursos de um tipo específico, execute o playbook com a variável resource_type:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE

    Para ver o status de um recurso específico, execute o playbook com as variáveis resource_type e resource_name:

    ansible-playbook status.yaml -i "DEPLOYMENT_SPEC_PATH" -e resource_type=RESOURCE_TYPE \
      -e resource_name=RESOURCE_NAME

    Substitua as seguintes variáveis:

    • DEPLOYMENT_SPEC_PATH: caminho para a especificação da implantação.
    • RESOURCE_TYPE: o tipo de recurso. Defina como BackupPlan, Backup ou Restore.
    • RESOURCE_NAME: o nome do recurso de que você quer ver o status.

Limitações

  • Se um status BackupPlan mostrar ConfigurationFailed com failed to create stanza (código de saída 39), você poderá retomar a reconciliação concedendo a função roles/storage.objectAdmin no bucket e reaplicando o manifesto. Não é necessário excluir o BackupPlan.