Visão geral dos backups

Neste documento, você terá uma visão geral dos backups do Spanner e programações de backup.

O Spanner permite criar backups completos bancos de dados sob demanda e backups completos ou incrementais usando uma programação de backup. Os backups completos armazenam todos os dados de um banco de dados, enquanto os backups incrementais contêm apenas os dados que foram alterados desde um backup anterior.

É possível restaurar os backups quando há erros do operador ou do aplicativo causar a corrupção lógica dos dados.

Os backups são altamente disponíveis, criptografados e podem são mantidas por até um ano a partir do momento da criação. Quando você cria um backup, ele fica na mesma instância, região e projeto que o banco de dados de origem. Se você precisar restaurar o backup em uma região diferente ou projeto por motivos de conformidade ou continuidade dos negócios, copie o backup a uma instância em uma região ou projeto separado.

Principais recursos

  • Consistência dos dados: os backups de um banco de dados do Spanner são de maneira transacional e consistente externamente versionTime do backup.

  • Replicação: os backups residem na mesma instância que o banco de dados de origem. e são replicados nas mesmas localizações geográficas. Para instâncias regionais, o backup é armazenado em cada uma das três zonas de leitura e gravação. Para instâncias birregionais e multirregionais, o backup é armazenado em todas as zonas que contêm uma réplica de leitura/gravação ou somente leitura. Se for preciso armazenar o backup do banco de dados em um lugar região ou projeto, é possível copiar o backup concluído da para uma instância de destino localizada em uma região diferente ou projeto. Para mais informações, consulte Copiar um backup.

  • Expiração automática: todos os backups têm uma data de validade especificada pelo usuário que determina quando ela será excluída automaticamente. O Spanner exclui backups expirados de forma assíncrona. Por isso, pode haver há um intervalo entre a expiração e a exclusão do backup.

Criação do backup

Quando você cria um backup, ele fica na mesma instância, região e projeto do banco de dados de origem. Um backup contém as seguintes informações do banco de dados no versionTime do backup:

  • Um backup completo contém todos os dados. Um backup incremental contém apenas os dados que foram alterados desde um backup anterior.
  • Informações do esquema, incluindo nomes de tabelas, campos, tipos de dados, índices secundários, fluxos de mudanças e as relações entre essas entidades.
  • Todas as opções de banco de dados definidas com o comando ALTER DATABASE SET OPTIONS.

Um backup do Spanner não inclui as seguintes informações:

  • Qualquer modificação nos dados ou no esquema após a versionTime
  • Políticas de Identity and Access Management (IAM).
  • Registros de dados de fluxo de alterações. Embora o esquema de fluxos de alterações seja armazenado, os dados do fluxo de alterações são transmitidos e consumidos quase simultaneamente às mudanças que descrevem.

Para garantir a consistência externa do backup, o Spanner fixa o conteúdo do banco de dados em versionTime. Isso evita que a coleta de lixo sistema de remover os valores de dados relevantes durante o backup operação Depois, cada zona de leitura/gravação e somente leitura na instância começa copiar os dados em paralelo. Se uma zona estiver temporariamente indisponível, o backup não será concluído até que a zona volte a ficar on-line. Os backups podem ser restaurados assim que a operação é concluída. Para instâncias multirregionais, todos as zonas somente leitura e de leitura e gravação em todas as regiões precisam concluir o backup réplicas antes que o backup seja marcado como restaurável.

Programações de backup

O Spanner permite programar backups completos ou incrementais para bancos de dados. Um backup incremental contém apenas as dados que foram alterados desde um backup anterior, enquanto os backups completos armazenam todo o conteúdo do banco de dados. É possível especificar o tipo de programação de backup (completo ou incremental) e a frequência para que o Spanner crie backups.

Uma programação de backup completo pode criar um backup a cada 12 horas ou mais. Uma programação de backup incremental pode criar um backup a cada 4 horas ou mais.

O Spanner oferece backups incrementais para seu banco de dados por meio de uma programação de backup. Não é possível criar um backup incremental sob demanda.

A criação do backup começa dentro de uma janela de quatro horas do horário programado. É possível ter no máximo quatro programações de backup por banco de dados.

Backups incrementais

Os backups incrementais formam cadeias entre backups completos. O primeiro backup criado por uma programação de backup incremental é um backup completo. Os backups consecutivos criados na cadeia são backups incrementais, cada uma contendo apenas os dados que foram alterados desde o backup anterior no corrente

O Spanner permite até 13 backups incrementais por cadeia, além do backup completo inicial. Uma cadeia é identificada pelo valor incrementalBackupChainId correspondente. Quando uma cadeia atinge o comprimento máximo, o Spanner cria uma nova cadeia, começando com o backup completo inicial.

Em alguns casos, o Spanner pode criar uma nova cadeia antes que o comprimento máximo seja atingido. Confira alguns cenários:

  • O backup completo mais antigo foi feito há 28 dias ou mais.
  • O backup mais recente na cadeia é excluído.
  • A programação de backup incremental é modificada.

Confira alguns fatores que podem ajudar você a decidir se vai usar backups incrementais:

  • Criptografia: os backups incrementais dão suporte à criptografia usando os recursos gerenciados pelo Google mesmo que o banco de dados seja criptografado por uma instância de chave de criptografia de dados (CMEK, na sigla em inglês).

  • Restauração: a restauração de um backup incremental pode levar mais tempo do que a de um backup completo que contém os mesmos dados.

  • Exclusão: se você excluir um backup em uma cadeia ou se ele expirar, o Spanner ainda poderá manter o backup para oferecer suporte a backups mais recentes na cadeia, se houver. O Spanner precisa de todos os backups mais antigos na cadeia para restaurar um backup incremental. Para excluir todos os dados de uma cadeia de backups, incluindo a de backups expirados ou excluídos, excluir todos os backups da cadeia.

  • Retenção: cada programação de backup tem os seguintes termos que oferecem informações sobre a programação:

    • creation_interval: representa a frequência de programação especificada para a programação de backup.
    • retention_duration: representa por quanto tempo os backups criados pela programação ficam. mantidos. Para uma determinada cadeia, o backup completo mais antigo é retido após a data de validade original se for necessário oferecer suporte a backups mais recentes na cadeia. A duração da retenção total do backup completo é no máximo a menor seguintes valores:
      • retention_duration + 28 dias
      • retention_duration + (creation_interval*14)
  • Cópia de backup: quando você copia um backup incremental, o Spanner copia a cadeia de backups, começando pelo backup completo inicial e terminando com o backup incremental específico que você quer copiar. Spanner. cobra com base no armazenamento total usado.

Para mais informações sobre como criar backups incrementais, consulte Criar e gerenciar programações de backup.

Custos de armazenamento para backups completos e incrementais

Cada backup do Spanner tem os seguintes campos que oferecem informações sobre o consumo de armazenamento:

  • exclusiveSizeBytes: mostra o número de bytes exigidos pelo backup. Esse tamanho representa o tamanho faturável do backup.
  • freeableSizeBytes: mostra o número de bytes liberados se você excluir o backup.
  • oldestVersionTime: mostra o versionTime do backup completo mais antigo da cadeia, mesmo que ele tenha expirado. Você pode usar esse campo para entender quais dados estão sendo armazenados.

Backups incrementais podem economizar custos de armazenamento. Um backup incremental pode ter bem menor em exclusiveSizeBytes do que um backup completo, pois o backup incremental só precisa armazenar desde o backup anterior na cadeia. Adicionar esse valor de campo para cada backup na cadeia reflete o número total de bytes usados pelos backups na cadeia.

Um backup incremental depende de todos os backups mais antigos na mesma cadeia para restauração. Isso significa que, se um backup incremental mais recente existir, os dados de todos os backups mais antigos na cadeia não poderão ser excluídos do sistema, e o campo freeableSizeBytes de todos os backups mais antigos na mesma cadeia será zero.

Considere que você criou uma programação de backup completo e um backup incremental para um banco de dados de 100 GB e aumenta em 10 GB por dia. A tabela a seguir mostra os possíveis custos de armazenamento para essas programações de backup:

Dia Tamanho do backup de programação completa Tamanho do backup da programação incremental
1 100 GB 100 GB
2 110 GB 10 GB
3 120 GB 10 GB
4 130 GB 10 GB
5 140 GB 10 GB

Ao longo de cinco dias, a programação de backup completo usa 600 GB de armazenamento, enquanto a programação de backup incremental usa cerca de 140 GB de armazenamento. Para uma programação de backup incremental, o tamanho do backup completo é a soma dos tamanhos de todos os backups na cadeia até o backup e se reflete no sizeBytes.

Como funciona a cópia de backup

O backup e a restauração do Spanner permitem copiar um backup do banco de dados do Spanner de uma instância para outra em uma região ou projeto diferente, para dar mais recursos de conformidade e proteção de dados. O backup copiado tem os mesmos recursos principais da versão original backup. Além disso, é possível restaurar um backup copiado na mesma instância que o backup copiado para oferecer suporte a casos de uso de backup e restauração entre regiões e projetos.

Onde os backups do Spanner são armazenados

Os backups são recursos no Spanner. Cada recurso de backup é organizado na mesma instância do banco de dados de origem na hierarquia de recursos e tem um caminho de recurso que usa o seguinte formato:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

Substitua:

  • PROJECT_ID: o ID do projeto;
  • INSTANCE_ID: o ID da instância
  • BACKUP_NAME: o nome do backup.

Um backup continua existindo mesmo após a exclusão do banco de dados de origem. mas não pode sobreviver à instância pai. Para evitar a exclusão acidental de backups, não será possível excluir uma instância do Spanner se ela tiver backups. Se quiser excluir a instância, recomendamos restaurar a backup e exportar o banco de dados restaurado, antes excluindo o backup e a instância.

Encryption

Os backups do Spanner, assim como bancos de dados, são criptografados Chaves de criptografia gerenciadas pelo Google ou chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês). Por padrão, um backup usa a mesma configuração de criptografia como seu banco de dados, mas é possível substituir esse comportamento especificando uma configuração de criptografia ao criar o backup. Se o backup estiver ativado para CMEK, ele será criptografado usando a versão principal da chave KMS no momento da criação do backup. Depois que o backup for criado, a chave e a versão da chave não poderão ser modificado, mesmo que a chave KMS seja rotacionada. Para mais informações, consulte criar um backup ativado para CMEK.

Um backup copiado usa a mesma configuração de criptografia, gerenciada pelo Google ou gerenciada pelo cliente (CMEK), como a criptografia de backup de origem. É possível substituir esse comportamento especificando uma configuração de criptografia diferente ao copiar o backup. Se você quiser que o backup copiado sejam criptografados com CMEK ao copiar entre regiões, especifique Chave do Cloud KMS chave correspondente à região de destino.

É possível especificar a configuração de criptografia ao criar ou modificar a programação de backup. Se você quiser que a programação de backup crie backups criptografados por chaves CMEK, especifique o caminho da chave.

Os backups incrementais oferecem suporte à criptografia usando apenas chaves gerenciadas pelo Google, mesmo que o banco de dados seja criptografado por uma chave CMEK.

Desempenho

Nesta seção, descrevemos o desempenho ideal do backup no Spanner.

Desempenho ao fazer backup

Ao fazer um backup, o Spanner cria um job de backup para copiar diretamente do banco de dados para o armazenamento de backup e dimensiona esse job com base no o tamanho do banco de dados. Este job de backup não usa recursos de CPU alocados à instância do banco de dados para que não afete o desempenho da instância. Além disso, a carga de computação na instância do banco de dados não afeta a velocidade a operação de backup. Para acompanhar o progresso e a conclusão de um backup operação, consulte Mostrar progresso do backup.

Geralmente, a maioria dos backups leva de uma a quatro horas. Alguns backups podem levar mais tempo devido ao tamanho ou porque há fila interna para recursos. Se um backup estiver demorando mais do que o normal quando nenhum outro fator tiver mudado, talvez seja devido a um atraso na programação da tarefa de backup em uma zona. Às vezes, isso pode levar até 30 minutos. Recomendamos que você não cancele e reinicie o backup, porque é provável que você encontre o mesmo atraso na programação com a nova operação de backup.

Desempenho ao copiar um backup

O tempo necessário para copiar um backup depende de fatores como o tamanho do backup de origem e a região de destino escolhida para o backup copiado. Geralmente, a maioria das cópias é concluída em uma a quatro horas. Algumas cópias podem demorar mais, dependendo do tamanho do backup e da região de destino. Copiando um backup não afeta o desempenho na instância ou no banco de dados de origem. É possível fazer várias cópias simultâneas do backup de origem para instâncias em diferentes regiões sem problemas de implicações de desempenho.

Quando você copia um backup incremental, o Spanner copia todos os backups mais recentes na cadeia. Em vez de copiar a cadeia de backups um a cada Primeiro, o Spanner copia todos os backups simultaneamente para melhorar o desempenho.

Excluir um backup

Ao excluir um backup incremental, talvez você não consiga recuperar o armazenamento se houver backups incrementais mais recentes na mesma cadeia. Os backups incrementais mais recentes dependem dos dados presentes no backup incremental excluído e dos backups mais antigos na cadeia. O Spanner mantém e só libera o armazenamento quando todos os backups incrementais mais recentes expiram. O campo freeableSizeBytes mostra quanto espaço de armazenamento você pode recuperar caso excluir o backup.

Preços

A cobrança é feita com base na quantidade de armazenamento usado pelos backups por unidade. tempo de resposta. O faturamento começa quando a operação de backup é concluída e continua até que o backup seja excluído. Um backup concluído é cobrado pelo menos de 24 horas. Se você criar um backup e excluí-lo logo após a conclusão, você ainda será cobrado por 24 horas.

Uma cópia de um backup está sujeita aos mesmos custos de armazenamento. como backup original. Se você criar uma cópia entre duas instâncias que ocupam diferentes regiões, os custos da transferência de dados de saída se aplicam.

Por exemplo, se você copiar o banco de dados da instância multirregional de origem configuração nam7 para a configuração da instância multirregional de destino nam-eur-asia3, as seguintes cobranças serão aplicadas:

  • Não há cobrança para a região us-central1 sobreposta
  • Não há cobrança para a região us-central2 de testemunha
  • A cobrança da transferência de dados intercontinental é aplicada duas vezes: uma para cada novo continente (Europa e Ásia)
  • A cobrança da transferência de dados entre regiões no mesmo continente é aplicada uma vez para us-east1
  • A cobrança de transferência de dados entre regiões no mesmo continente é aplicada uma vez na Europa

O Spanner otimiza o processo de cópia para minimizar o número de transferências entre regiões. Isso ajuda a minimizar os custos de transferência de dados e oferecer uma experiência de backup de cópia rápida.

Os backups são armazenados e faturados separadamente. O armazenamento de backup não afeta faturamento para armazenamento de banco de dados ou limites de armazenamento de banco de dados. Para mais informações, consulte Métricas de utilização do Storage.

Para informações mais completas sobre os custos de backup, consulte Spanner preços.

A seguir