Fazer backup e restaurar dados

Nesta página, descrevemos como usar o recurso de backups programados do Firestore com compatibilidade com o MongoDB. Use backups para proteger seus dados contra corrupção de dados no nível do aplicativo ou contra exclusão acidental.

Com os backups, você pode configurar programações de backup para fazer backups diários ou semanais do banco de dados especificado. É possível usar esses backups para restaurar dados em um novo banco de dados.

Sobre backups

Um backup é uma cópia consistente do banco de dados em um determinado momento. O backup contém todos os dados e configurações de índice naquele momento. Um backup não contém políticas de tempo de vida do banco de dados. Um backup reside no mesmo local que o banco de dados de origem.

Os backups têm um período de retenção configurável e são armazenados até que o período de armazenamento expire ou até que você exclua o backup. A exclusão do banco de dados de origem não exclui automaticamente os backups relacionados.

O Firestore com compatibilidade com o MongoDB armazena metadados relacionados a backups e programações de backup relacionados a um banco de dados. O Firestore com compatibilidade com o MongoDB retém esses metadados até que todos os backups do banco de dados expirem ou sejam excluídos.

Criar ou manter backups não afeta o desempenho das leituras ou gravações no banco de dados ativo.

Custos

Quando você usa backups, os seguintes itens são cobrados:

  • A quantidade de armazenamento usada por cada backup.
  • Para uma operação de restauração, a cobrança é feita com base no tamanho do backup.

Para mais detalhes e tarifas exatas, consulte a página de preços.

Antes de começar

Verifique se o faturamento foi ativado para o projeto Google Cloud . Saiba como verificar se o faturamento está ativado em um projeto.

Funções exigidas

Para receber as permissões necessárias para gerenciar backups e programações de backup, peça ao administrador para conceder a você um ou mais dos seguintes papéis do Identity and Access Management:

  • roles/datastore.owner: acesso total ao banco de dados do Firestore
  • roles/datastore.backupsAdmin: acesso de leitura e gravação aos backups
  • roles/datastore.backupsViewer: acesso de leitura aos backups
  • roles/datastore.backupSchedulesAdmin: acesso de leitura e gravação às programações de backup
  • roles/datastore.backupSchedulesViewer: acesso de leitura a programações de backup
  • roles/datastore.restoreAdmin: permissões para iniciar operações de restauração.

Criar e gerenciar programações de backup

Os exemplos desta seção demonstram como configurar uma programação de backup. Para cada banco de dados, é possível configurar até uma programação de backup diária e uma semanal. Não é possível configurar várias programações de backups semanais para diferentes dias da semana.

Não é possível configurar a hora exata do backup. Os backups são feitos em horários diferentes todos os dias. Para programações de backup semanais, configure o dia da semana para fazer um backup.

Criar uma programação de backup

Use uma das ferramentas a seguir para criar uma programação de backup.

Criar uma programação de backup diária

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. Clique em Editar para editar as configurações de recuperação de desastres.
  4. Marque a caixa de seleção Diário, defina o período de retenção e clique em Salvar.
CLI da gcloud
Para criar uma programação de backup para um banco de dados, use o comando gcloud firestore backups schedules create, Para criar uma programação de backup diária, defina a flag --recurrence como daily:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

Substitua:

  • DATABASE_ID: o ID do banco de dados para fazer backup. Defina como '(default)' para o banco de dados padrão.
  • RETENTION_PERIOD: defina um valor de até 14 semanas (14w).

Criar uma programação de backup semanal

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. Clique em Editar para editar as configurações de recuperação de desastres.
  4. Marque a caixa de seleção Semanal, selecione um dia de backup, defina o período de retenção e clique em Salvar.
CLI da gcloud
Para criar uma programação de backup semanal, defina a flag --recurrence como weekly:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=weekly \
--retention=RETENTION_PERIOD \
--day-of-week=DAY
Substitua:
  • DATABASE_ID: o ID do banco de dados para fazer backup. Defina como '(default)' para o banco de dados padrão.
  • RETENTION_PERIOD: defina um valor de até 14 semanas (14w).
  • DAY: o dia da semana em que o backup será feito. Defina como um dos seguintes:
    • SUN para domingo
    • MON para segunda-feira
    • TUE para terça-feira
    • WED para quarta-feira
    • THU para quinta-feira
    • FRI para sexta-feira
    • SAT para sábado

Listar programações de backup

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. A página Recuperação de desastres é aberta. Esta página descreve as programações de backup e lista os backups disponíveis.
CLI da gcloud
Use o comando gcloud firestore backups schedules list.
gcloud firestore backups schedules list \
--database='DATABASE_ID'
Substitua DATABASE_ID pelo ID do banco de dados. Use '(default)' para o banco de dados padrão.

Descrever a programação de backup

Para recuperar informações sobre uma programação de backup, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. A página Recuperação de desastres é aberta. Esta página descreve as programações de backup e lista os backups disponíveis.
CLI da gcloud
Use o comando gcloud firestore backups schedules describe:
gcloud firestore backups schedules describe \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Substitua o seguinte:
  • DATABASE_ID: o ID do banco de dados para fazer backup. Defina como '(default)' para o banco de dados padrão.
  • BACKUP_SCHEDULE_ID: o ID de uma programação de backup. É possível conferir o ID de cada programação de backup ao listar todas as programações de backup.

Atualizar uma programação de backup

Para atualizar o período de armazenamento de uma programação de backup, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações.
  3. Clique em Editar para editar as configurações de recuperação de desastres.
  4. Edite as configurações da programação de backup e clique em Salvar.
CLI da gcloud
Use o comando gcloud firestore backups schedules update:
gcloud firestore backups schedules update \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID \
--retention=RETENTION_PERIOD
Substitua o seguinte:
  • DATABASE_ID: o ID do banco de dados para fazer backup. Defina como '(default)' para o banco de dados padrão.
  • BACKUP_SCHEDULE_ID: o ID de uma programação de backup. É possível conferir o ID de cada programação de backup ao listar todas as programações de backup.
  • RETENTION_PERIOD: defina um valor de até 14 semanas (14w).

Você pode atualizar o período de armazenamento de uma programação de backup, mas não é possível atualizar a recorrência dela. Se você precisar de uma programação de backup com uma recorrência diferente, exclua a programação antiga se ela não for mais necessária e crie uma nova com a recorrência escolhida.

Excluir uma programação de backup

Para excluir uma programação de backup, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. Clique em Editar para editar as configurações de recuperação de desastres.
  4. Edite as configurações da programação de backup e clique em Salvar.
CLI da gcloud
Use o comando gcloud firestore backups schedules delete:
gcloud firestore backups schedules delete \
--database='DATABASE_ID' \
--backup-schedule=BACKUP_SCHEDULE_ID
Substitua o seguinte:
  • DATABASE_ID: o ID do banco de dados para fazer backup. Defina como '(default)' para o banco de dados padrão.
  • BACKUP_SCHEDULE_ID: o ID de uma programação de backup. É possível conferir o ID de cada programação de backup ao listar todas as programações de backup.

A exclusão de uma programação de backup não remove os backups já criados por ela. É possível aguardar até que eles expirem após o período de armazenamento ou excluir um backup manualmente. Consulte Excluir backup.

Gerenciamento de backups

Esta seção descreve como gerenciar backups.

Listar backups

Para listar os backups disponíveis, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. Clique em Editar para editar as configurações de recuperação de desastres.
  4. Edite as configurações da programação de backup e clique em Salvar.
CLI da gcloud
Use o comando gcloud firestore backups list:
gcloud firestore backups list \
--format="table(name, database, state)"
A flag --format="table(name, database, state)" formata a saída em um formato mais legível. Para listar apenas os backups de um local específico, use a flag --location:
gcloud firestore backups list \
--location=LOCATION \
--format="table(name, database, state)"
Substitua LOCATION pelo nome de um local do Firestore com compatibilidade com o MongoDB.

Descrever um backup

Para visualizar detalhes sobre um backup, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe.
  3. A página Recuperação de desastres é aberta. Esta página descreve as programações de backup e lista os backups disponíveis.
CLI da gcloud
Use o comando gcloud firestore backups describe:
gcloud firestore backups describe \
--location=LOCATION \
--backup=BACKUP_ID
Substitua o seguinte:
  • LOCATION: o local do banco de dados.
  • BACKUP_ID: o ID de um backup. É possível conferir o ID de cada backup ao listar todos os backups.

Excluir backup

Para excluir um backup, use um dos métodos a seguir.

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe. A página Recuperação de desastres é aberta. Esta página descreve as programações de backup e lista os backups disponíveis.
  3. Na tabela Backups, encontre a linha de um backup e, na coluna Ações, clique em Ver mais(). Clique em Excluir.
  4. Confirme a ação usando o campo de texto e clique em Excluir.
CLI da gcloud
Use o comando gcloud firestore backups delete:
gcloud firestore backups delete \
--location=LOCATION \
--backup=BACKUP_ID
Substitua o seguinte:
  • LOCATION: o local do banco de dados.
  • BACKUP_ID: o ID de um backup. É possível conferir o ID de cada backup ao listar todos os backups.

Restaurar dados de um backup de banco de dados

Uma operação de restauração grava os dados de um backup em um novo banco de dados do Firestore.

Para iniciar uma operação de restauração, use um dos seguintes métodos:

Console doGoogle Cloud
  1. No Google Cloud console, acesse a página Bancos de dados.

    Acessar "Bancos de dados"

  2. Na lista de bancos de dados, encontre a linha do banco de dados. Na coluna Backups programados, clique em Ver backups ou Editar configurações, dependendo se uma programação de backup existe. A página Recuperação de desastres é aberta. Esta página descreve as programações de backup e lista os backups disponíveis.
  3. Na tabela Backups, encontre a linha de um backup e, na coluna Ações, clique em Ver mais(). Clique em Restaurar com o Cloud Shell.
  4. O painel do Cloud Shell é aberto com um comando da CLI gcloud para restaurar o backup selecionado. Substitua ID_OF_NEW_DATABASE por um ID do banco de dados e execute o comando.

    A execução do comando retorna uma resposta com mais informações sobre a operação. O banco de dados vai aparecer na sua lista de bancos de dados. A operação de restauração leva algum tempo e precisa ser concluída antes que o banco de dados fique acessível.

CLI da gcloud
Use o comando gcloud firestore databases restore:
gcloud firestore databases restore \
--source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
--destination-database='DATABASE_ID'
Substitua o seguinte:
  • PROJECT_ID: o ID do projeto.
  • LOCATION: o local do backup do banco de dados e o local do novo banco de dados criado para os dados restaurados.
  • BACKUP_ID: o ID de um backup. É possível conferir o ID de cada backup ao listar todos os backups.
  • DATABASE_ID: um ID do novo banco de dados. Não é possível usar um ID de banco de dados que já está em uso.
O modo do banco de dados vai corresponder ao do backup. A saída vai incluir os componentes metadata, name e response:
metadata:
  '@type': type.googleapis.com/google.firestore.admin.v1.RestoreDatabaseMetadata
  backup: projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
  database: projects/PROJECT_ID/databases/DATABASE_ID
  operationState: PROCESSING
  progressPercentage:
    completedWork: '20'
    estimatedWork: '100'
  startTime: '2023-12-06T14:20:17.398325Z'
name: projects/PROJECT_ID/databases/DATABASE_ID/operations/operation_uuid
response:
  '@type': type.googleapis.com/google.firestore.admin.v1.Database
  createTime: '2023-12-06T14:20:17.398325Z'
  name: projects/PROJECT_ID/databases/DATABASE_ID
  ...
O campo metadata inclui um componente progressPercentage, detalhando o progresso estimado da restauração até o momento e um operationState especificando o estado geral da restauração. Para recuperar essas informações novamente, use gcloud firestore operations list:
gcloud firestore operations list --database=DATABASE_ID
ou usando o campo name da saída, com gcloud firestore operations describe:
gcloud firestore operations describe OPERATION_NAME