Faça uma cópia de segurança e restaure dados

Esta página descreve como usar a funcionalidade de cópias de segurança agendadas do modo Datastore. Use cópias de segurança para proteger os seus dados contra a danificação de dados ao nível da aplicação ou a eliminação acidental de dados.

As cópias de segurança permitem-lhe configurar agendamentos de cópias de segurança para fazer cópias de segurança diárias ou semanais da base de dados especificada. Em seguida, pode usar estas cópias de segurança para restaurar dados numa nova base de dados.

Acerca das cópias de segurança

Uma cópia de segurança é uma cópia consistente da base de dados num determinado momento. A cópia de segurança contém todos os dados e configurações de índice nesse momento.

Uma cópia de segurança não contém políticas de tempo de vida da base de dados. Uma cópia de segurança reside na mesma localização que a base de dados de origem.

As cópias de segurança têm um período de retenção configurável e são armazenadas até o período de retenção expirar ou até eliminar a cópia de segurança. A eliminação da base de dados de origem não elimina automaticamente as cópias de segurança relacionadas.

O Firestore armazena metadados relacionados com cópias de segurança e agendamentos de cópias de segurança relacionados com uma base de dados. O Firestore retém estes metadados até que todas as cópias de segurança da base de dados expirem ou sejam eliminadas.

A criação ou a retenção de cópias de segurança não afeta o desempenho das leituras nem das escritas na sua base de dados em direto.

Custos

Quando usa cópias de segurança, são-lhe cobrados os seguintes itens:

  • A quantidade de armazenamento usado por cada cópia de segurança.
  • Para uma operação de restauro, a cobrança é feita com base no tamanho da cópia de segurança.

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

Antes de começar

Certifique-se de que a faturação está ativada para o seu Google Cloud projeto. Saiba como verificar se a faturação está ativada num projeto.

Funções necessárias

Para receber as autorizações de que precisa para gerir cópias de segurança e agendamentos de cópias de segurança, peça ao seu administrador que lhe conceda um ou mais dos seguintes papéis de gestão de identidades e acessos:

  • roles/datastore.owner: acesso total à base de dados do Firestore
  • roles/datastore.backupsAdmin: acesso de leitura e escrita a cópias de segurança
  • roles/datastore.backupsViewer: acesso de leitura às cópias de segurança
  • roles/datastore.backupSchedulesAdmin: acesso de leitura e escrita a agendamentos de cópias de segurança
  • roles/datastore.backupSchedulesViewer: acesso de leitura aos agendamentos de cópias de segurança
  • roles/datastore.restoreAdmin: autorizações para iniciar operações de restauro

Crie e faça a gestão de agendamentos de cópias de segurança

Os exemplos seguintes demonstram como configurar um agendamento de cópia de segurança. Para cada base de dados, pode configurar até um agendamento de cópia de segurança diário e até um agendamento de cópia de segurança semanal. Não pode configurar vários agendamentos de cópias de segurança semanais para diferentes dias da semana.

Não pode configurar a hora exata do dia da cópia de segurança. As cópias de segurança são feitas a horas diferentes todos os dias. Para programações de cópias de segurança semanais, pode configurar o dia da semana para fazer uma cópia de segurança.

Crie um horário de cópia de segurança

Use uma das seguintes ferramentas para criar um horário de cópia de segurança.

Crie um horário de cópia de segurança diário

Google Cloud consola
  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

  2. Na lista de bases de dados, localize a linha da base de dados. Na coluna Cópias de segurança agendadas, clique em Ver cópias de segurança ou Editar definições, consoante exista ou não um agendamento de cópia de segurança.
  3. Clique em Editar para editar as definições de recuperação de desastres.
  4. Selecione a caixa de verificação Diariamente, defina o período de retenção e, de seguida, clique em Guardar.
gcloud
Para criar um horário de cópia de segurança para uma base de dados, use o comando gcloud firestore backups schedules create. Para criar um horário de cópia de segurança diário, defina a flag --recurrence como daily:
gcloud firestore backups schedules create \
--database='DATABASE_ID' \
--recurrence=daily \
--retention=RETENTION_PERIOD

Substitua o seguinte:

  • DATABASE_ID: o ID da base de dados para fazer uma cópia de segurança. Definido como '(default)' para a base de dados predefinida.
  • RETENTION_PERIOD: defina esta opção para um valor até 14 semanas (14w).
Terraform
Para criar uma programação de cópias de segurança diárias, crie um recurso google_firestore_backup_schedule.
resource "google_firestore_backup_schedule" "daily-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  daily_recurrence {}
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto.
  • DATABASE_ID: o ID da base de dados para fazer uma cópia de segurança. Definido como '(default)' para a base de dados predefinida.
  • Também pode usar uma referência de recurso para um recurso do Terraform do tipo google_firestore_database.
  • RETENTION_PERIOD_SECONDS: defina isto para um valor em segundos, seguido de "s". O valor máximo é de 8467200s (14 semanas).

Crie um horário de cópias de segurança semanal

Google Cloud consola
  1. Na Google Cloud consola, aceda à página Bases de dados.

    Aceda a Bases de dados

  2. Na lista de bases de dados, encontre a linha da base de dados. Na coluna Cópias de segurança agendadas, clique em Ver cópias de segurança ou Editar definições, consoante exista ou não um agendamento de cópia de segurança.
  3. Clique em Editar para editar as definições de recuperação de desastres.
  4. Selecione a caixa de verificação Semanal, selecione um dia de cópia de segurança, defina o período de retenção e, de seguida, clique em Guardar.
gcloud
Para criar um horário de cópia de segurança 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 o seguinte:
  • DATABASE_ID: o ID da base de dados para fazer uma cópia de segurança. Definido como '(default)' para a base de dados predefinida.
  • RETENTION_PERIOD: defina esta opção para um valor até 14 semanas (14w).
  • DAY: o dia da semana em que deve ser feita a cópia de segurança. Defina uma das seguintes opções:
    • 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
Terraform
Para criar um horário de cópia de segurança semanal, crie um google_firestore_backup_schedule recurso.
resource "google_firestore_backup_schedule" "weekly-backup" {
  project  = PROJECT_ID
  database = DATABASE_ID

  retention = RETENTION_PERIOD_SECONDS

  weekly_recurrence {
    day = DAY
  }
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto.
  • DATABASE_ID: o ID da base de dados para fazer uma cópia de segurança. Definido como '(default)' para a base de dados predefinida.
  • Também pode usar uma referência de recurso para um recurso do Terraform do tipo google_firestore_database.
  • RETENTION_PERIOD_SECONDS: defina este valor em segundos, seguido de "s". O valor máximo é de 8467200s (14 semanas).
  • DAY: o dia da semana em que deve ser feita a cópia de segurança. Defina uma das seguintes opções:
    • SUNDAY para domingo
    • MONDAY para segunda-feira