Nesta página, descrevemos como fazer backup de instâncias do Cloud SQL em um backup vault, que oferece imutabilidade e retenção obrigatória.
No console do Google Cloud , é possível fazer backup de instâncias do Cloud SQL em um backup vault aplicando planos de backup. É possível fazer backup de uma das duas maneiras a seguir. Os dois métodos permitem armazenar os backups com segurança em um backup vault, oferecendo uma maneira confiável de recuperar as instâncias do Cloud SQL em caso de perda de dados ou outros eventos inesperados.
- Backups programados: faça backup automático de instâncias do Cloud SQL em intervalos específicos, como diários, semanais, mensais ou anuais.
- Backups sob demanda. É possível criar backups sob demanda sempre que necessário. Os backups sob demanda são úteis para criar backups antes de fazer mudanças significativas nos bancos de dados ou para proteção de dados ad hoc.
Antes de começar
Ative a API Backup e DR onde as instâncias do Cloud SQL estão localizadas.
Configure a Análise de Observabilidade no bucket para monitorar os jobs de backup do Backup e DR.
Para instâncias com CMEK: se a instância de origem do Cloud SQL estiver protegida com uma chave de criptografia gerenciada pelo cliente (CMEK), você precisará conceder o papel
roles/cloudkms.cryptoKeyEncrypterDecrypterdo Identity and Access Management ao agente de serviço de backup e DR. Essa permissão é necessária na chave do Cloud Key Management Service usada pela instância de origem do Cloud SQL.O agente de serviço de Backup e DR está no projeto em que o backup vault está localizado. Conceda esse papel à conta de serviço antes de tentar proteger as instâncias do Cloud SQL ativadas para CMEK.
Papéis e permissões do IAM para o usuário de backup
Para receber as permissões necessárias para configurar backups programados ou executar backups sob demanda, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto do backup vault:
- Usuário de backup e DR (
roles/backupdr.backupUser) - Leitor (
roles/viewer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para configurar backups programados ou executar backups sob demanda. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para configurar backups programados ou executar backups sob demanda:
-
backupdr.backupPlans.list -
backupdr.backupPlanAssociations.createForCloudSqlInstance -
backupdr.backupPlanAssociations.fetchForCloudSqlInstance -
backupdr.backupPlanAssociations.updateForCloudSqlInstance -
backupdr.backupPlanAssociations.list -
backupdr.backupPlanAssociations.getForCloudSqlInstance -
backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance -
backupdr.backupPlanAssociations.deleteForCloudSqlInstance -
backupdr.backupPlans.useForCloudSqlInstance -
backupdr.locations.list -
backupdr.operations.get -
cloudasset.assets.searchAllResources
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Permissões dinâmicas necessárias para cada chamada de API
A tabela a seguir lista as permissões dinâmicas necessárias para cada chamada de API:
| Recurso | Ação a ser realizada no recurso | Permissões necessárias para cada chamada de API | Projeto ao qual atribuir permissão |
|---|---|---|---|
| Backup vault | Criar backup vault | backupdr.backupVaults.create |
Projeto do administrador |
| Excluir backup vault | backupdr.backupVaults.delete |
Projeto do administrador | |
| Atualizar backup vault | backupdr.backupVaults.update |
Projeto do administrador | |
| Listar backup vaults | backupdr.backupVaults.list |
Projeto do administrador | |
| Acessar backup vault | backupdr.backupVaults.get |
Projeto do administrador | |
| Plano de backup | Criar plano de backup | backupdr.backupPlans.create |
Projeto do administrador |
| Excluir plano de backup | backupdr.backupPlans.delete |
Projeto do administrador | |
| Receber plano de backup | backupdr.backupPlans.get |
Projeto do administrador | |
| Listar planos de backup | backupdr.backupPlans.list |
Projeto do administrador | |
| Atualizar plano de backup | backupdr.backupPlans.update |
Projeto do administrador | |
| Receber revisão do plano de backup | backupdr.backupPlanRevisions.get |
Projeto do administrador | |
| Listar revisões do plano de backup | backupdr.backupPlanRevisions.list |
Projeto do administrador | |
| Criar revisão do plano de backup | backupdrproducer.backupPlanRevisions.create |
Projeto do administrador | |
| Excluir revisão do plano de backup | backupdrproducer.backupPlanRevisions.delete |
Projeto do administrador | |
| Associações de planos de backup | Criar associação do plano de backup | cloudsql.instances.updateBackupDrConfigbackupdr.backupPlanAssociations.createForCloudSqlInstancebackupdr.backupPlans.useForCloudSqlInstance |
Projeto de carga de trabalho Projeto de carga de trabalho Projeto de administrador |
| Excluir associação do plano de backup | backupdr.backupPlanAssociations.deleteForCloudSqlInstancecloudsql.instances.updateBackupDrConfig |
Projeto de carga de trabalho Projeto de carga de trabalho |
|
| Acionar um backup on demand na associação do plano de backup | backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance |
Projeto de carga de trabalho | |
| Receber associação do plano de backup | backupdr.backupPlanAssociations.getForCloudSqlInstance |
Projeto de carga de trabalho | |
| Listar associações de planos de backup | backupdr.backupPlanAssociations.list |
Projeto de carga de trabalho | |
| Buscar associações de planos de backup | backupdr.backupPlanAssociations.fetchForCloudSqlInstance |
Projeto de carga de trabalho | |
| Mudar associações de planos de backup | backupdr.backupPlanAssociations.updateForCloudSqlInstance |
Projeto de carga de trabalho | |
| Fonte de dados | Receber fonte de dados | backupdr.bvdataSources.get |
Projeto do administrador |
| Listar fonte de dados | backupdr.backupPlanAssociations.list |
Projeto do administrador | |
| Restauração de recuperação pontual | backupdr.bvdataSources.useReadOnlyForCloudSqlInstance |
Projeto do administrador | |
| Backups | Acessar backup | backupdr.bvbackups.get |
Projeto do administrador |
| Listar backups | backupdr.bvbackups.list |
Projeto do administrador | |
| Buscar backups | backupdr.bvbackups.fetchForCloudSqlInstance |
Projeto do administrador | |
| Excluir backup | backupdr.bvbackups.delete |
Projeto do administrador | |
| Restaurar backup | backupdr.bvbackups.useReadOnlyForCloudSqlInstance |
Projeto do administrador | |
| Referências de fontes de dados | Receber referência da fonte de dados | backupdr.dataSourceReferences.getForCloudSqlInstance |
Projeto de carga de trabalho |
| Listar referências de fontes de dados | backupdr.dataSourceReferences.list |
Projeto de carga de trabalho | |
| Buscar referências de fontes de dados | backupdr.dataSourceReferences.fetchForCloudSqlInstance |
Projeto de carga de trabalho | |
| Operações | Listar operações | backupdr.operations.list |
Projeto respectivo |
| Acessar operações | backupdr.operations.get |
Projeto respectivo |
Conceder acesso ao backup vault no projeto do Cloud SQL
Para fazer backup de uma instância do Cloud SQL em um projeto diferente daquele em que o
backup vault foi criado, é necessário conceder o papel do IAM de
Operador de backup e DR do Cloud SQL (roles/backupdr.cloudSqlOperator)
ao agente de serviço do backup vault no
projeto do Cloud SQL. Se o projeto do backup vault em que os backups serão armazenados for diferente do projeto do Cloud SQL, atribua o papel ao agente de serviço do backup vault no projeto do Cloud SQL.
Para fazer backup de uma instância do Cloud SQL no mesmo projeto em que o backup vault foi criado, não é necessário conceder papéis.
Para saber como conceder papéis ao agente de serviço do backup vault no projeto que você quer incluir no backup, consulte Conceder um papel ao agente de serviço.
Configurar um backup programado
Use as instruções a seguir para configurar um backup programado para instâncias do Cloud SQL.
Console
No console do Google Cloud , acesse a página Backups protegidos.
Clique em Programar backup.
Na lista Tipo de recurso, selecione Cloud SQL.
Na lista Projeto, selecione um projeto em que a instância do Cloud SQL está localizada.
Na lista Região, selecione a região em que as instâncias estão localizadas.
Na lista Recursos, clique em Procurar. Escolha a instância do Cloud SQL que você quer salvar em backup e clique em Concluído.
Clique em Continuar.
Na lista Plano de backup, clique em Selecionar.
Escolha um plano de backup para proteger as instâncias do Cloud SQL.
Clique em Concluído.
Revise os detalhes do backup e clique em Programar.
gcloud
Crie um plano de backup e uma instância do Cloud SQL.
Configure um backup programado usando o comando
gcloud backup-dr backup-plan-associations create:gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \ --location=CSQL_REGION \ --project=CSQL_PROJECT_ID \ --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \ --resource-type=sqladmin.googleapis.com/Instance \ --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLANSubstitua:
BACKUP_PLAN_ASSOCIATION_NAME: o nome da associação do plano de backup.CSQL_REGION: a região em que as instâncias do Cloud SQL estão localizadas.CSQL_PROJECT_ID: o nome do projeto em que as instâncias do Cloud SQL estão localizadas.CSQL_INSTANCE_ID: o ID da instância do Cloud SQL.PROJECT_ID: o nome do projeto em que os planos de backup existem.LOCATION: o local da instância.BACKUP_PLAN: o nome do plano de backup.
Terraform
É possível usar um recurso do Terraform para configurar um backup programado.
Mudar o plano de backup associado a uma instância do Cloud SQL
É possível trocar o plano de backup aplicado a uma instância do Cloud SQL por outro plano de backup. O plano de backup que você quer usar precisa atender aos seguintes critérios:
O plano de backup está no mesmo backup vault.
O plano de backup está na mesma região que a instância do Cloud SQL.
Use as instruções a seguir para mudar o plano de backup associado a uma instância do Cloud SQL.
Console
No console do Google Cloud , acesse a página Backups protegidos do Backup e DR.
A página Backups em vault lista apenas as instâncias que têm (ou tinham) planos de backup aplicados ou os backups armazenados em um backup vault em um projeto.
Selecione a fonte de dados que vai receber um plano diferente. Na página de detalhes do backup ou no menu , selecione Alterar plano de backup. A janela Selecionar um plano de backup lista apenas os planos de backup válidos para essa instância.
Selecione um plano de backup e clique em Aplicar.
gcloud
Mudar o plano de backup atribuído.
gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \ --workload-project=INSTANCE_PROJECT_ID \ --location=INSTANCE_REGION \ --backup-plan=BACKUP_PLAN \ --project=SELECTED_BACKUP_PLAN_PROJECT_IDSubstitua:
BACKUP_PLAN_ASSOCIATION_NAME: o nome do recurso de associação do plano de backup.INSTANCE_PROJECT_ID: o ID do projeto da instância do Cloud SQL.INSTANCE_REGION: o local da instância do Cloud SQL.BACKUP_PLAN: o nome do plano de backup para o qual você está mudando.SELECTED_BACKUP_PLAN_PROJECT_ID: o ID do projeto do plano de backup selecionado.
Listar instâncias com backups programados
Use as instruções a seguir para listar as instâncias do Cloud SQL que têm backups programados.
Console
No console do Google Cloud , acesse a página Backups protegidos.
Na parte de cima da tabela, selecione Filtrar tabela > Tipo de recurso. Selecione Cloud SQL. Isso limita a exibição apenas às instâncias do Cloud SQL com planos de backup aplicados e backups armazenados em um backup vault em um projeto.
gcloud
Liste as instâncias do Cloud SQL que têm backups programados usando o comando
gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type:
gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
--location=LOCATION \
--project=PROJECT_ID
Substitua:
LOCATION: o local dos backups programados.
PROJECT_ID: o nome do projeto em que as instâncias do Cloud SQL estão localizadas.
Backups sob demanda
É possível iniciar um backup on demand para uma instância do Cloud SQL com um plano de backup acionando a regra de backup de sua escolha para ser executada imediatamente. Os backups sob demanda geralmente capturam apenas os dados alterados desde o último backup incremental.
Ao criar um backup sob demanda, é possível escolher uma regra do plano de backup associado à instância do Cloud SQL. Essa regra determina quando o backup on demand é excluído. Verifique o status do job de backup na página Jobs. Para mais informações, consulte Monitorar jobs de backup e restauração no console do Google Cloud .
Criar um backup on demand
Use as instruções a seguir para criar um backup on demand.
Console
No console do Google Cloud , acesse a página Backups protegidos.
A página Backups em vault lista apenas os recursos de dados que têm planos de backup aplicados e os backups armazenados em um backup vault em um projeto.
Selecione o recurso para fazer backup. No menu ou na página de detalhes do recurso, selecione Criar backup sob demanda.
Na janela Criar um backup sob demanda, selecione uma regra de backup para usar e clique em Criar.
Para conferir o status do job de backup sob demanda, clique em Notificações.
gcloud
Criar um backup on demand. Inicie um backup on demand usando uma associação de plano de backup atual. Especifique um ID de regra para determinar o período de validade desse backup único e sob demanda:
gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \ --backup-rule-id=RULE_ID \ --project=PROJECT_ID \ --location=LOCATION \ [--no-async]Substitua:
BACKUP_PLAN_ASSOCIATION_NAME: o nome da associação do plano de backup.
.RULE_ID: o nome da regra de backup que você quer associar para executar backups on demand.
PROJECT_ID: o nome do projeto.
LOCATION: o local dos backups programados.
Remover a proteção de uma instância do Cloud SQL
Para remover a proteção de uma instância do Cloud SQL, remova o plano de backup aplicado a ela. A remoção de um plano de backup de uma instância do Cloud SQL não exclui os backups criados enquanto o plano estava em uso. Você ainda pode acessar e gerenciar esses backups até que eles expirem.
Use as instruções a seguir para remover a proteção de uma instância do Cloud SQL:
Console
No console do Google Cloud , acesse a página Backups protegidos.
Clique no nome do banco de dados de que você quer remover um plano de backup.
Selecione Remover plano de backup.
gcloud
Desproteger uma instância do Cloud SQL.
gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
--project=PROJECT_ID \
--location=LOCATION
Substitua:
BACKUP_PLAN_ASSOCIATION_NAME: o nome da associação do plano de backup que você quer excluir.
PROJECT_ID: o nome do projeto.
LOCATION: o local do backup programado.
Limitações
Para instâncias do Cloud SQL criptografadas com CMEK, o Backup e DR valida as permissões de forma proativa. Se o agente de serviço do Backup e DR do projeto do backup vault não tiver o papel roles/cloudkms.cryptoKeyEncrypterDecrypter necessário na chave do KMS da instância de origem, a criação da associação do plano de backup vai falhar. Verifique se as permissões do IAM necessárias estão em vigor antes de associar um plano de backup.