A recuperação pontual do Spanner (PITR, na sigla em inglês) fornece proteção contra exclusões ou gravações acidentais. Por exemplo, se um operador gravar acidentalmente os dados ou uma implementação de aplicativo corromper o banco de dados, com a PITR, será possível recuperar os dados de um momento no passado (até um máximo de sete dias). Se precisar de retenção de dados em longo prazo, use Backup e restauração ou Exportar e importar.
Por padrão, seu banco de dados retém todas as versões dos dados e do esquema por 1 hora.
É possível aumentar esse limite para até sete dias na opção
version_retention_period
. Veja mais instruções em Definir o período de armazenamento.
O Spanner armazena versões antigas de dados com granularidade de microssegundos, e o
banco de dados mantém um earliest_version_time
,
que representa o momento mais antigo em que é possível recuperar versões antigas
dos dados.
Maneiras de recuperar dados
Há duas maneiras de recuperar dados:
Para recuperar uma parte do banco de dados, execute uma leitura desatualizada especificando uma condição de consulta e um carimbo de data/hora no passado e grave os resultados novamente no banco de dados ativo. Isso normalmente é usado para operações cirúrgicas em um banco de dados ativo. Por exemplo, se você excluir acidentalmente uma linha específica ou atualizar incorretamente um subconjunto de dados, poderá recuperá-la usando este método. Para receber instruções, consulte Como recuperar uma parte do banco de dados.
Para recuperar todo o banco de dados, faça backup ou exporte o banco de dados especificando um carimbo de data/hora no passado e o restaure ou importe para um novo banco de dados. Isso geralmente é usado para se recuperar de problemas de corrupção de dados quando você precisa reverter o banco de dados a um determinado momento antes de a corrupção ocorrer. O processo de backup ou exportação de um banco de dados pode levar várias horas, e não é possível restaurar ou importar para um banco de dados atual. Para instruções, consulte Como recuperar o banco de dados inteiro.
Considerações sobre desempenho
Bancos de dados com períodos de armazenamento mais longos e, principalmente, aqueles que normalmente substituem dados, usam mais recursos do sistema. Isso pode afetar o desempenho do seu banco de dados, especialmente se a instância não for provisionada com uma capacidade de computação suficiente. Se seu banco de dados tiver uma taxa de substituição muito alta (por exemplo, se ele for substituído várias vezes ao dia), considere aumentar o período de armazenamento gradualmente e de maneira gradual.Monitorar o sistema de dados. Veja a seguir alguns detalhes a serem considerados:
Maior uso do armazenamento. Recomendamos configurar alertas de armazenamento para garantir que você não exceda o limite de armazenamento. Quando você aumenta o período de retenção, lembre-se de que o uso do armazenamento aumentará gradualmente à medida que o banco de dados acumular versões mais antigas dos dados. Isso ocorre porque os dados antigos que expirariam no período de armazenamento anterior não expiram mais. Por exemplo, se você aumentar o período de armazenamento de três para sete dias, será necessário aguardar quatro dias para que o uso do armazenamento do banco de dados se estabilize. Também fornecemos instruções para estimar o aumento do armazenamento.
Maior uso da CPU e latência. O Spanner usa outros recursos de computação para compactar e manter versões antigas de dados. Monitore a instância e o banco de dados para garantir que a latência e o uso da CPU permaneçam em níveis aceitáveis.
Maior tempo para executar atualizações de esquema. Um período de armazenamento maior significa que versões de esquema precisam ser retidas por períodos mais longos, possivelmente fazendo com que as atualizações de esquema sejam
throttled
enquanto aguardam os recursos do servidor. Verifique se você está seguindo as práticas recomendadas para atualizações de esquema e se cumpre os limites de atualizações de esquema.
A seguir
- Saiba mais sobre como recuperar dados com a PITR.