Criar e gerenciar backups automáticos e sob demanda

Nesta página, descrevemos como programar e desativar backups automáticos, criar e gerenciar backups sob demanda e visualizar backups para sua instância do Cloud SQL.

Para mais informações sobre como os backups funcionam, consulte Visão geral dos backups.

Criar um backup sob demanda

Para criar um backup sob demanda:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Clique em Criar backup.
  5. Na página Criar backup, adicione uma descrição, se necessário, e clique em Criar.

gcloud

Crie o backup:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME

Para fornecer uma descrição do backup, use o parâmetro --description.

Para criar um backup em um local personalizado:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME \
--location=BACKUP_LOCATION

REST v1

Antes de usar os dados da solicitação, faça as seguintes substituições:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Antes de usar os dados da solicitação, faça as seguintes substituições:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Programar backups automatizados

Para programar backups automáticos de uma instância:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Clique em Editar, ao lado de Configurações.
  5. Escolha uma janela de tempo para fazer o backup automático dos dados.
  6. Clique em Salvar.

gcloud

  1. Edite a instância para especificar o horário de início do backup:
    gcloud sql instances patch INSTANCE_NAME --backup-start-time=HH:MM
    O parâmetro backup-start-time é especificado no formato de 24 horas, no fuso horário UTC±00 e especifica o início de uma janela de backup de quatro horas. Os backups podem começar a qualquer momento durante a janela de backup.
  2. Confirme as alterações:
    gcloud sql instances describe INSTANCE_NAME
    Na seção backupConfiguration, confirme se você vê enabled: true e a hora especificada.

Terraform

Para criar um backup para um banco de dados, use um recurso do Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-backup"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled    = true
      start_time = "20:55"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Aplique as alterações

Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

Antes de usar os dados da solicitação, faça as seguintes substituições:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
  • INSTANCE_NAME: o nome da instância primária ou de réplica de leitura que você está configurando para alta disponibilidade
  • START_TIME: a hora (em horas e minutos)

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corpo JSON da solicitação:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "binaryLogEnabled": true
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Definir um local personalizado para backups

Use um local de backup personalizado somente se exigido pela regulamentação. Se não for necessário, use o local padrão de backup multirregional.

É possível usar um local personalizado para backups automáticos e sob demanda. Para uma lista completa de valores de local válidos, consulte Locais de instância.

Para atualizar uma instância com um local personalizado:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. No menu de navegação SQL, selecione Backups.
  4. Ao lado de Configurações, clique em Editar.
  5. Na seção Backups automatizados, expanda Opções avançadas.
  6. Clique em Multirregião (padrão) ou Região.
  7. Selecione o local no menu suspenso Local.
  8. Clique em Salvar.

gcloud

Para informações de referência, consulte gcloud sql instances patch.

gcloud sql instances patch INSTANCE_NAME \
--backup-location=BACKUP_LOCATION
  

Terraform

Para especificar um local personalizado para um backup de instância de banco de dados, use um recurso do Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-backup-location"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled  = true
      location = "us-central1"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1

Use o parâmetro settings.backupConfiguration.location da instância para o local do backup.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • region: a região do projeto
  • backup-region: a região de backup
  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corpo JSON da solicitação:

{
  "region": "region"
  "settings":
  {
    "backupConfiguration":
    {
      "location": "backup-region",
      "enabled": true,
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Use o parâmetro settings.backupConfiguration.location da instância para o local do backup.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • region: a região do projeto
  • backup-region: a região de backup
  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corpo JSON da solicitação:

{
  "region": "region"
  "settings":
  {
    "backupConfiguration":
    {
      "location": "backup-region",
      "enabled": true,
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Visualizar uma lista de backups

Para visualizar uma lista de backups e detalhes sobre um backup, use as seguintes opções.

O console do Google Cloud não exibe backups ignorados ou com falha no histórico de backup. Para ver os backups ignorados, use gcloud ou a API.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL para ver os backups recentes, o horário de criação e o tipo de backup.

gcloud

  • Liste os backups da instância:
    gcloud sql backups list \
    --instance INSTANCE_NAME

    Você pode filtrar e controlar os resultados usando os parâmetros padrão da lista. Para uma lista completa, consulte a página de referência do comando gcloud sql backups list.

  • Visualize os detalhes de um backup especificando o backup ID na saída do comando backups list.
    gcloud sql backups describe BACKUP_ID \
    --instance INSTANCE_NAME
        

REST v1

É possível também usar o APIs Explorer na página BackupRuns:list para enviar a solicitação da API REST.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

É possível também usar o APIs Explorer na página BackupRuns:list para enviar a solicitação da API REST.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Visualizar uma lista de backups durante uma interrupção

Quando uma instância está em uma região com interrupção, só é possível ver os backups dela usando um caractere curinga (-) com a API backupRuns.list. O caractere curinga retorna todos os backups no projeto. Consulte Como restaurar para uma instância diferente.

Quando há uma interrupção em uma região em que uma instância tem chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) ativadas, não é possível restaurar os backups dessa instância para uma região diferente. O motivo é que o Cloud SQL usa chaves regionais do Cloud KMS para criptografia quando a CMEK está ativada na instância. Para restaurar backups de uma instância da CMEK, o Cloud SQL precisa ter acesso à chave CMEK. Em uma interrupção regional, não há acesso às chaves do Cloud KMS nessa região.

gcloud

  1. Liste os backups de cada instância em um projeto:
    gcloud sql backups list --instance -

    O comando retorna informações semelhantes às seguintes:

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
          "backupKind": "SNAPSHOT"
        }
  2. Encontre o backup da instância que você precisa. Para restaurar esse backup, consulte Como restaurar para uma instância diferente.

REST v1

  1. Liste todos os backups em um projeto:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância ou - para uma lista de todos os backups no projeto

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/-/backupRuns

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Encontre o backup da instância que você precisa. Para restaurar esse backup, consulte Como restaurar para uma instância diferente.

REST v1beta4

  1. Liste todos os backups em um projeto:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância ou - para uma lista de todos os backups no projeto

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/-/backupRuns

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Encontre o backup da instância que você precisa. Para restaurar esse backup, consulte Como restaurar para uma instância diferente.

Ver os locais de backup

Para ver os locais dos backups feitos para uma instância, use backupRuns:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Na lista de backups, a coluna Local lista o tipo de local (multirregião ou região) e a multirregião ou região específica de cada backup.

gcloud

Para informações de referência, consulte gcloud sql instances describe.

  1. Liste os backups da instância:
    gcloud sql backups list \
    --instance INSTANCE_NAME

    Você pode filtrar e controlar os resultados usando os parâmetros padrão da lista. Para uma lista completa, consulte a página de referência do comando gcloud sql backups list.

  2. Para listar os detalhes de um backup, use o ID na saída do comando backups list.
    gcloud sql backups describe BACKUP_ID \
    --instance INSTANCE_NAME

REST v1

Antes de usar os dados da solicitação, faça as seguintes substituições:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Nos exemplos anteriores:
  • REGION é a região da instância original.
  • BACKUP_LOCATION é o local em que o Cloud SQL armazenará o backup.

REST v1beta4

Antes de usar os dados da solicitação, faça as seguintes substituições:

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Nos exemplos anteriores:
  • REGION é a região da instância original.
  • BACKUP_LOCATION é o local em que o Cloud SQL armazenará o backup.

Definir retenção de backups automatizados

Para definir o número de backups automáticos que serão mantidos:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Clique em Editar.
  5. Na seção Automatizar backups, expanda Opções avançadas.
  6. Informe o Número de backups a serem armazenados por vez.

    O número não pode ser menor que o padrão (sete).

  7. Clique em Salvar.

gcloud

Edite a instância para definir o número de backups automáticos a serem mantidos: O número não pode ser menor que o padrão (sete).

gcloud sql instances patch INSTANCE_NAME \
--retained-backups-count=NUM_TO_RETAIN

Terraform

Para especificar o número de backups automatizados que serão retidos para uma instância de banco de dados, use um recurso do Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-backup-retention"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled = true
      backup_retention_settings {
        retained_backups = 365
        retention_unit   = "COUNT"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1beta4

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • unit: opcional: a unidade de retenção pode ser um número inteiro ou uma string. Os valores compatíveis (e padrão) atualmente são 1 ou "COUNT".
  • num-to-retain: O número de backups automáticos a serem mantidos. O número não pode ser menor que o padrão (sete).
  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Corpo JSON da solicitação:

{
  "settings":
  {
    "backupConfiguration":
    {
      "backupRetentionSettings":
      {
        "retentionUnit": unit,
        "retainedBackups": "num-to-retain"
      }
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Excluir um backup

Você pode excluir backups automáticos e sob demanda.

A exclusão de um backup pode não liberar um espaço igual ao tamanho do backup. Isso ocorre porque os backups são incrementais. Portanto, a exclusão de um backup anterior pode transferir uma parte do conteúdo para um backup mais recente a fim de preservar a integridade do novo backup.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Clique em "Mais ações" Ícone mais ações. no backup que você quer excluir.
  5. Selecione Excluir.
  6. Na janela "Excluir backup", digite Delete no campo e clique em Excluir.

gcloud

Para excluir um backup de uma instância do Cloud SQL:

gcloud beta sql backups delete BACKUP_ID \
--instance INSTANCE_NAME
      

Para uma lista completa de parâmetros, consulte a página de referência do comando gcloud beta sql backups delete.

REST v1

  1. Liste os backups para receber o código do que você quer excluir:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Exclua o backup:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • backup-id: o ID do backup

    Método HTTP e URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

  1. Liste os backups para receber o código do que você quer excluir:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Exclua o backup:

    Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • backup-id: o ID do backup

    Método HTTP e URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id

    Para enviar a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

Desativar backups automatizados

Para desativar backups automáticos de uma instância:

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Selecione Backups no menu de navegação do SQL.
  4. Clique em Gerenciar backups automáticos
  5. Desmarque Automatizar backups.
  6. Clique em Salvar.

gcloud

Edite a instância para desativar os backups:

gcloud sql instances patch INSTANCE_NAME \
--no-backup

REST v1

REST v1beta4

A seguir