Vista geral das cópias de segurança

Este documento oferece uma vista geral das cópias de segurança do Spanner e das programações de cópias de segurança.

O Spanner permite-lhe criar cópias de segurança completas de bases de dados a pedido e cópias de segurança completas ou incrementais através de uma programação de cópias de segurança. As cópias de segurança completas armazenam todos os dados de uma base de dados, enquanto as cópias de segurança incrementais contêm apenas os dados que foram alterados desde uma cópia de segurança anterior.

Pode restaurar as cópias de segurança quando os erros do operador ou da aplicação provocam a corrupção lógica dos dados.

As cópias de segurança estão altamente disponíveis, são encriptadas e podem ser retidas durante até um ano a partir do momento em que são criadas. Quando cria uma cópia de segurança, esta reside na mesma instância, região e projeto que a respetiva base de dados de origem. Se precisar de restaurar a cópia de segurança numa região ou num projeto diferente por motivos de conformidade ou continuidade de negócios, pode copiar a cópia de segurança para uma instância numa região ou num projeto separado.

Cada cópia de segurança tem um createTime e um versionTime associados. A createTime é a data/hora em que o Spanner começa a criar a cópia de segurança. versionTime é a data/hora em que o conteúdo da base de dados é capturado na cópia de segurança. A cópia de segurança contém uma vista consistente da base de dados no momento versionTime.

Para cópias de segurança a pedido, o createTime e o versionTime são iguais por predefinição. Se necessário, pode especificar uma versionTime mais antiga quando criar uma cópia de segurança a pedido, se estiver dentro do período de retenção de versões da base de dados.

Para cópias de segurança agendadas, versionTime é a hora que escolhe quando cria o agendamento de cópias de segurança. O Spanner começa a criar a cópia de segurança no prazo de quatro horas após a hora versionTime, pelo que a hora createTime está dentro deste período de quatro horas. Isto é diferente das cópias de segurança a pedido, em que o Spanner começa a criar a cópia de segurança quando recebe o pedido.

Por exemplo, suponhamos que cria um agendamento de cópias de segurança com uma frequência de 0 7 * * * UTC ou todos os dias às 07:00 UTC. Isto significa que, para cada cópia de segurança, a versionTime é definida como 07:00 UTC e a createTime é uma data/hora dentro do período de quatro horas entre as 07:00 UTC e as 11:00 UTC.

Para mais informações sobre a utilização de createTime e versionTime através da API, consulte a referência da API Backup.

Funcionalidades principais

  • Consistência dos dados: as cópias de segurança de uma base de dados do Spanner são transacionalmente e externamente consistentes no versionTime da cópia de segurança.

  • Replicação: as cópias de segurança residem na mesma instância que a respetiva base de dados de origem e são replicadas nas mesmas localizações geográficas. Para instâncias regionais, a cópia de segurança é armazenada em cada uma das três zonas de leitura/escrita. Para instâncias de duas regiões e instâncias multirregionais, a cópia de segurança é armazenada em todas as zonas que contêm uma réplica de leitura/gravação ou apenas de leitura. Se precisar de armazenar a cópia de segurança da sua base de dados numa região ou num projeto diferente, pode copiar a cópia de segurança concluída da instância de origem para uma instância de destino localizada numa região ou num projeto diferente. Para mais informações, consulte o artigo copie uma cópia de segurança.

  • Expiração automática: todas as cópias de segurança têm uma data de expiração especificada pelo utilizador que determina quando são eliminadas automaticamente. O Spanner elimina as cópias de segurança expiradas de forma assíncrona, pelo que pode haver um atraso entre o momento em que uma cópia de segurança expira e o momento em que é efetivamente eliminada.

Criação de cópias de segurança

Quando cria uma cópia de segurança, esta reside na mesma instância, região e projeto que a respetiva base de dados de origem.

Uma cópia de segurança contém as seguintes informações da base de dados no momento da versionTime da cópia de segurança:

  • Uma cópia de segurança completa contém todos os dados. Uma cópia de segurança incremental contém apenas os dados que foram alterados desde uma cópia de segurança anterior.
  • Informações do esquema, incluindo nomes de tabelas, campos, tipos de dados, índices secundários, fluxos de alterações e as relações entre estas entidades.
  • Todas as opções da base de dados definidas com o comando ALTER DATABASE SET OPTIONS.

Uma cópia de segurança do Spanner não inclui as seguintes informações:

  • Quaisquer modificações aos dados ou ao esquema após a versionTime.
  • Políticas de Identity and Access Management (IAM).
  • Alterar registos de dados de streams. Embora o esquema das streams de alterações seja armazenado, os dados das streams de alterações destinam-se a ser transmitidos e consumidos quase em simultâneo com as alterações que descrevem.

Para ajudar a garantir a consistência externa da cópia de segurança, o Spanner fixa o conteúdo da base de dados em versionTime. Isto impede que o sistema de recolha de lixo remova os valores de dados relevantes durante a operação de cópia de segurança. Em seguida, todas as zonas de leitura/escrita e só de leitura na instância começam a copiar os dados em paralelo. Se alguma zona estiver temporariamente indisponível, a cópia de segurança não fica concluída até a zona voltar a ficar online. As cópias de segurança são restauráveis assim que a operação estiver concluída. Para instâncias de várias regiões, todas as zonas de leitura/escrita e só de leitura em todas as regiões têm de concluir as respetivas réplicas de cópia de segurança antes de a cópia de segurança ser marcada como restaurável.

Agendamentos de cópias de segurança

O Spanner permite-lhe agendar cópias de segurança completas ou incrementais para bases de dados. Uma cópia de segurança incremental contém apenas os dados que foram alterados desde uma cópia de segurança anterior, enquanto as cópias de segurança completas armazenam todo o conteúdo da base de dados. Pode especificar o tipo de agendamento de reserva (completo ou incremental) e a frequência para o Spanner criar cópias de segurança.

Um agendamento de cópia de segurança completo pode criar uma cópia de segurança a cada 12 horas ou mais. Um agendamento de cópias de segurança incrementais pode criar uma cópia de segurança a cada 4 horas ou mais.

O Spanner oferece cópias de segurança incrementais para a sua base de dados através de um horário de cópias de segurança. Não pode criar uma cópia de segurança incremental a pedido.

A criação da cópia de segurança começa num período de quatro horas a partir da hora agendada. Pode ter um máximo de quatro programações de cópias de segurança por base de dados.

Cópias de segurança incrementais

As cópias de segurança incrementais formam cadeias entre cópias de segurança completas. A primeira cópia de segurança criada por uma agenda de cópias de segurança incrementais é uma cópia de segurança completa. As cópias de segurança consecutivas criadas na cadeia são cópias de segurança incrementais, cada uma contendo apenas os dados que foram alterados desde a cópia de segurança anterior na cadeia.

O Spanner permite até 13 cópias de segurança incrementais por cadeia, além da cópia de segurança completa inicial. Uma cadeia é identificada pelo valor incrementalBackupChainId correspondente. Quando uma cadeia atinge o comprimento máximo, o Spanner cria uma nova cadeia, começando pela cópia de segurança completa inicial.

Em alguns cenários, o Spanner pode criar uma nova cadeia antes de atingir o comprimento máximo da cadeia. Seguem-se alguns dos cenários:

  • A cópia de segurança completa mais antiga foi feita há 28 ou mais dias.
  • A cópia de segurança mais recente na cadeia é eliminada.
  • A agenda de cópias de segurança incrementais é modificada.

Seguem-se alguns fatores que podem ajudar a tomar uma decisão sobre a utilização de cópias de segurança incrementais:

  • Encriptação: as cópias de segurança incrementais suportam a encriptação apenas com o Google-owned and Google-managed encryption keys , mesmo que a base de dados esteja encriptada por uma chave de encriptação gerida pelo cliente (CMEK).

  • Restauro: o restauro de uma cópia de segurança incremental pode demorar mais tempo do que o restauro de uma cópia de segurança completa que contenha os mesmos dados.

  • Eliminação: se eliminar uma cópia de segurança numa cadeia ou esta expirar, o Spanner pode continuar a guardar a cópia de segurança para suportar cópias de segurança mais recentes na cadeia, se existirem. O Spanner precisa de todas as cópias de segurança mais antigas na cadeia para restaurar uma cópia de segurança incremental. Para eliminar todos os dados numa cadeia de cópias de segurança, incluindo os de cópias de segurança expiradas ou eliminadas, elimine todas as cópias de segurança na cadeia.

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

    • creation_interval: representa a frequência de agendamento especificada para o agendamento de cópias de segurança.
    • retention_duration: representa o tempo durante o qual as cópias de segurança criadas pela agenda são retidas. Para uma determinada cadeia, a cópia de segurança completa mais antiga é retida após a respetiva data de validade original se for necessária para suportar cópias de segurança mais recentes na cadeia. A duração total da retenção da cópia de segurança completa é, no máximo, o menor dos seguintes valores:
      • retention_duration + 28 dias
      • retention_duration + (creation_interval*14)
  • Cópia de segurança: quando copia uma cópia de segurança incremental, o Spanner também copia todas as cópias de segurança mais antigas na cadeia necessárias para restaurar a cópia de segurança copiada. Se a instância de destino já contiver uma cadeia de cópias de segurança que termine com uma cópia de segurança mais antiga que foi copiada da mesma cadeia de origem, o Spanner evita criar cópias redundantes de cópias de segurança existentes. Em alternativa, o Spanner copia apenas a cópia de segurança incremental e quaisquer cópias de segurança mais antigas que não estejam presentes na cadeia de destino e anexa estas cópias de segurança à cadeia existente. O Spanner cobra-lhe com base no armazenamento total usado.

    Por exemplo, se configurar uma programação de cópias de segurança incrementais diárias e copiar a cópia de segurança mais recente todos os dias, a instância de destino mantém uma cadeia de cópias de segurança que reflete a cadeia de origem. O Spanner não duplica as cópias de segurança copiadas anteriormente na cadeia durante as operações de cópia subsequentes.

    Embora o Spanner procure evitar cópias redundantes, em situações raras, o Spanner pode ter de copiar todas as cópias de segurança mais antigas na cadeia, mesmo que já existam cópias de segurança copiadas anteriormente na instância de destino.

Para mais informações sobre como criar cópias de segurança incrementais, consulte o artigo Crie e faça a gestão de agendamentos de cópias de segurança.

Predefinições de agendamentos de cópias de segurança

Quando cria uma nova instância do Spanner, pode especificar se quer que o Spanner crie um agendamento de cópias de segurança predefinido para cada nova base de dados na instância. A programação de cópia de segurança predefinida cria uma cópia de segurança completa a cada 24 horas. Estas cópias de segurança têm um período de retenção de 7 dias. Pode editar ou eliminar o agendamento de cópia de segurança predefinido assim que for criado.

As programações de cópias de segurança predefinidas são ativadas automaticamente para todas as novas instâncias. Pode ativar ou desativar as programações de cópias de segurança predefinidas numa instância quando cria a instância ou editando-a mais tarde.

Pode ativar horários de cópia de segurança predefinidos para instâncias existentes. No entanto, as programações de cópias de segurança predefinidas não se aplicam às bases de dados existentes na instância. As programações de cópias de segurança predefinidas aplicam-se apenas a novas bases de dados na instância.

A agenda de cópias de segurança predefinida demora 24 horas a ficar ativa e a começar a criar cópias de segurança.

Tem de eliminar todas as cópias de segurança numa instância antes de eliminar uma instância. Se estiver a criar e eliminar instâncias para fins de teste, pode eliminar a nova instância no prazo de 24 horas para evitar eliminar manualmente as respetivas cópias de segurança.

Para ver instruções sobre como ativar ou desativar as programações de cópia de segurança predefinidas, consulte o artigo Edite o tipo de programação de cópia de segurança predefinido.

Custos de armazenamento para cópias de segurança completas e incrementais

Cada cópia de segurança do Spanner tem os seguintes campos que oferecem informações sobre o consumo de armazenamento:

  • exclusiveSizeBytes: mostra o número de bytes necessários para a cópia de segurança. Este tamanho representa o tamanho faturável da cópia de segurança.
  • freeableSizeBytes: mostra o número de bytes libertados se eliminar a cópia de segurança.
  • oldestVersionTime: mostra a versionTime da cópia de segurança completa mais antiga na cadeia, mesmo que essa cópia de segurança tenha expirado. Pode usar este campo para compreender que dados estão a ser armazenados.

As cópias de segurança incrementais podem poupar-lhe custos de armazenamento. Uma cópia de segurança incremental pode ter um campo exclusiveSizeBytes significativamente mais pequeno do que uma cópia de segurança completa, uma vez que a cópia de segurança incremental só precisa de armazenar as alterações desde a cópia de segurança anterior na cadeia. A adição deste valor de campo para cada cópia de segurança na cadeia reflete o número total de bytes usados pelas cópias de segurança na cadeia.

Uma cópia de segurança incremental depende de todas as cópias de segurança mais antigas na mesma cadeia para restauro. Isto significa que, se existir uma cópia de segurança incremental mais recente, os dados de todas as cópias de segurança mais antigas na cadeia não podem ser eliminados do sistema e o campo freeableSizeBytes para todas as cópias de segurança mais antigas na mesma cadeia é zero.

Considere que criou uma agenda de cópia de segurança completa e uma agenda de cópia de segurança incremental para uma base de dados com um tamanho de 100 GB e que aumenta 10 GB todos os dias. A tabela seguinte mostra os possíveis custos de armazenamento para estes agendamentos de cópias de segurança:

Dia Tamanho da cópia de segurança do calendário completo Tamanho da cópia de segurança agendada 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 5 dias, a agenda de cópia de segurança completa usa 600 GB de armazenamento, enquanto a agenda de cópia de segurança incremental usa cerca de 140 GB de armazenamento. Para uma programação de cópias de segurança incrementais, o tamanho da cópia de segurança completa é a soma dos tamanhos de todas as cópias de segurança na cadeia, até essa cópia de segurança, e reflete-se no campo sizeBytes.

Comparar o armazenamento de cópias de segurança com o armazenamento de bases de dados

O tamanho de armazenamento de uma cópia de segurança pode ser inferior ou superior ao tamanho de armazenamento da base de dados de origem quando a cópia de segurança foi criada.

O armazenamento de uma cópia de segurança pode ser inferior ao armazenamento da base de dados porque a cópia de segurança contém apenas uma versão dos dados, enquanto a base de dados em direto pode conter várias versões dos dados devido às operações em curso. As diferenças no formato dos dados e na compressão também podem resultar num tamanho da cópia de segurança mais pequeno.

Por outro lado, o armazenamento de uma cópia de segurança pode ser superior ao armazenamento da base de dados, dependendo da situação da base de dados e da altura em que faz a cópia de segurança.

Por motivos semelhantes, quando restaura uma base de dados a partir de uma cópia de segurança, o armazenamento da cópia de segurança pode ser superior ao armazenamento da base de dados. Isto pode ocorrer se um grande conjunto de dados tiver sido eliminado e compactado após a criação da cópia de segurança. Por conseguinte, o tamanho da cópia de segurança depende da data em que foi feita e das operações subsequentes na base de dados.

Não existe uma fórmula para prever a relação exata do tamanho de uma cópia de segurança em relação à base de dados em direto. Para uma base de dados com uma taxa elevada de gravações (uma base de dados ativa), a cópia de segurança é provavelmente mais pequena do que a base de dados ativa. No entanto, em algumas situações raras, o tamanho da cópia de segurança pode ser maior.

Como funciona a cópia de segurança

O Spanner permite-lhe copiar uma cópia de segurança da sua base de dados do Spanner de uma instância para outra numa região ou num projeto diferente, para oferecer capacidades adicionais de proteção de dados e conformidade.

Não pode copiar uma cópia de segurança se a região de destino ou de origem Google Cloud estiver inativa. Para proteger os seus dados em caso de indisponibilidade de uma região, tem de copiar periodicamente as suas cópias de segurança para uma localização fora da região afetada.

A cópia de segurança tem as mesmas funcionalidades principais que a cópia de segurança original. Além disso, pode restaurar uma cópia de segurança copiada na mesma instância que a cópia de segurança copiada para suportar exemplos de utilização de cópias de segurança e restauro entre regiões e projetos.

Onde são armazenadas as cópias de segurança do Spanner

As cópias de segurança são recursos no Spanner. Cada recurso de cópia de segurança está organizado na mesma instância que a respetiva base 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 o seguinte:

  • PROJECT_ID: o ID do projeto.
  • INSTANCE_ID: o ID da instância.
  • BACKUP_NAME: o nome da cópia de segurança.

Uma cópia de segurança continua a existir mesmo depois de a respetiva base de dados de origem ter sido eliminada, mas não pode sobreviver à respetiva instância principal. Para evitar a eliminação acidental de cópias de segurança, não pode eliminar uma instância do Spanner se tiver cópias de segurança. Se quiser eliminar a instância, recomendamos que restaure a cópia de segurança e, em seguida, exporte a base de dados restaurada antes de eliminar a cópia de segurança e a instância.

Encriptação

As cópias de segurança do Spanner, tal como as bases de dados, são encriptadas por Google-owned and Google-managed encryption keys ou por chaves de encriptação geridas pelo cliente (CMEK). Por predefinição, uma cópia de segurança usa a mesma configuração de encriptação que a respetiva base de dados, mas pode substituir este comportamento especificando uma configuração de encriptação diferente quando cria a cópia de segurança. Se a cópia de segurança tiver a CMEK ativada, é encriptada com a versão principal da chave do KMS no momento da criação da cópia de segurança. Depois de criar a cópia de segurança, não é possível modificar a respetiva chave nem versão da chave, mesmo que a chave do KMS seja rodada. Para mais informações, consulte o artigo Crie uma cópia de segurança com a CMEK ativada.

Uma cópia de segurança copiada usa a mesma configuração de encriptação, ou Google-owned and Google-managed encryption keys ou chaves de encriptação geridas pelo cliente (CMEK), que a encriptação da cópia de segurança de origem. Pode substituir este comportamento especificando uma configuração de encriptação diferente quando copiar a cópia de segurança. Se quiser que a cópia de segurança seja encriptada com CMEK quando copiar entre regiões, especifique a chave do Cloud KMS correspondente à região de destino.

Pode especificar a configuração de encriptação quando cria ou modifica o agendamento de cópias de segurança. Se quiser que a programação de cópias de segurança crie cópias de segurança encriptadas por chaves CMEK, tem de especificar o caminho da chave.

As cópias de segurança incrementais suportam a encriptação apenas com o Google-owned and Google-managed encryption keys, mesmo que a base de dados esteja encriptada por uma chave CMEK.

Desempenho

Esta secção descreve o desempenho ideal da cópia de segurança no Spanner.

Desempenho durante a criação de cópias de segurança

Quando faz uma cópia de segurança, o Spanner cria uma tarefa de cópia de segurança para copiar dados diretamente da base de dados para o armazenamento de cópias de segurança e dimensiona esta tarefa com base no tamanho da base de dados. Esta tarefa de cópia de segurança não usa recursos de CPU atribuídos à instância da base de dados, pelo que não afeta o desempenho da instância. Além disso, a carga de computação na instância da base de dados não afeta a velocidade da operação de cópia de segurança. Para acompanhar o progresso e a conclusão de uma operação de cópia de segurança, consulte o artigo Mostrar progresso da cópia de segurança.

Geralmente, a maioria das cópias de segurança demora entre 1 e 4 horas. Alguns backups podem demorar mais tempo devido ao respetivo tamanho ou porque existe uma fila interna para recursos. Se uma cópia de segurança demorar mais tempo do que o habitual quando não existem outros fatores que tenham mudado, pode dever-se a um atraso no agendamento da tarefa de cópia de segurança numa zona. Por vezes, este processo pode demorar até 30 minutos. Recomendamos que não cancele e reinicie a cópia de segurança, uma vez que é provável que encontre o mesmo atraso na programação com a nova operação de cópia de segurança.

Desempenho ao copiar uma cópia de segurança

O tempo necessário para copiar uma cópia de segurança depende de fatores como o tamanho da cópia de segurança de origem e a região de destino escolhida para a cópia de segurança copiada. Geralmente, a maioria das cópias fica concluída no prazo de 1 a 4 horas. Algumas cópias podem demorar mais tempo, dependendo do tamanho da cópia de segurança e da região de destino. A cópia de uma cópia de segurança não tem implicações no desempenho da instância ou da base de dados de origem. Pode fazer várias cópias simultâneas da cópia de segurança de origem para instâncias em diferentes regiões sem implicações no desempenho.

Quando copia uma cópia de segurança incremental, o Spanner também copia todas as cópias de segurança mais antigas na cadeia necessárias para restaurar a cópia de segurança copiada. Para melhorar o desempenho, o Spanner copia todas as cópias de segurança em simultâneo, em vez de sequencialmente. O Spanner também tenta evitar copiar as cópias de segurança mais antigas na mesma cadeia, sempre que possível. Para mais informações, consulte o artigo Cópias de segurança incrementais.

Elimine uma cópia de segurança

Quando elimina uma cópia de segurança incremental, pode não recuperar armazenamento se existirem cópias de segurança incrementais mais recentes na mesma cadeia. As cópias de segurança incrementais mais recentes dependem dos dados presentes na cópia de segurança incremental eliminada e das cópias de segurança mais antigas na cadeia. O Spanner retém os dados e só liberta o armazenamento quando todas as cópias de segurança incrementais mais recentes expiram. O campo freeableSizeBytes mostra a quantidade de espaço de armazenamento que pode recuperar se eliminar a cópia de segurança.

Preços

A faturação baseia-se na quantidade de armazenamento usado pelas suas cópias de segurança por unidade de tempo. A faturação começa após a conclusão da operação de cópia de segurança e continua até a cópia de segurança ser eliminada. Uma cópia de segurança concluída é faturada por um mínimo de 24 horas. Se criar uma cópia de segurança e, em seguida, a eliminar pouco depois de terminar, continua a receber faturação durante 24 horas.

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

Por exemplo, se copiar a base de dados da configuração de instância de várias regiões de origem nam7 para a configuração de instância de várias regiões de destino nam-eur-asia3, aplicam-se os seguintes custos:

  • Sem custo financeiro para a região us-central1 sobreposta
  • Sem custo financeiro para a região de testemunhas us-central2
  • A taxa de transferência de dados intercontinental aplica-se duas vezes: uma vez para cada novo continente (Europa e Ásia)
  • A taxa de transferência de dados entre regiões no mesmo continente é aplicada uma vez para us-east1
  • As transferências de dados entre regiões no mesmo continente são cobradas uma vez na Europa

O Spanner otimiza o processo de cópia para minimizar o número de transferências entre regiões. Isto ajuda a minimizar os custos de transferência de dados e, ao mesmo tempo, oferece uma experiência de cópia de segurança rápida.

As cópias de segurança são armazenadas e faturadas separadamente. O armazenamento de cópias de segurança não afeta a faturação do armazenamento da base de dados nem os limites de armazenamento da base de dados. Para mais informações, consulte também Métricas de utilização do armazenamento.

Para informações mais completas sobre os custos de cópia de segurança, consulte os preços do Spanner.

O que se segue?