Esta página descreve as operações de restauração do Spanner e explica como restaurar um banco de dados. Para mais informações sobre a restauração de bancos de dados no Spanner, consulte Visão geral da restauração.
É possível restaurar o backup na instância de destino se ela usar a mesma edição ou uma edição de nível mais alto que a instância de backup de origem. Como alternativa, é possível restaurar em qualquer instância com a mesma configuração e uma edição igual ou de nível mais alto que a instância de origem.
É possível restaurar um banco de dados do Spanner usando o seguinte:
- No Google Cloud console.
- Usando a Google Cloud CLI.
- Usando as bibliotecas de cliente.
- Usando as REST ou RPC APIs.
Antes de começar
Os exemplos da CLI gcloud nesta página fazem as seguintes suposições:
- Você já configurou a CLI gcloud para uso com o Spanner. Se você estiver começando a usar a CLI gcloud com o Spanner, consulte Primeiros passos com o Spanner usando a CLI gcloud.
- Você configurou a CLI gcloud com seu projeto. Exemplo:
gcloud config set core/project PROJECT_ID
* You have an instance named `test-instance` and a database named `example-db`.-
Para receber as permissões necessárias para restaurar um banco de dados de um backup, peça ao administrador para conceder a você os seguintes papéis do IAM na instância:
-
Todos:
Administrador de restauração do Cloud Spanner (
roles/spanner.restoreAdmin)
-
Todos:
Administrador de restauração do Cloud Spanner (
Restaurar um banco de dados a partir de um backup
Console
- Acesse a página Instâncias do Spanner no Google Cloud console.
Acessar a página Instâncias do Spanner
Clique na instância que contém o banco de dados para abrir a página Visão geral.
Clique no banco de dados para abrir a página Visão geral correspondente.
No painel de navegação, clique em Backup/restauração.
Clique no botão Ações do backup selecionado e selecione Restaurar.
Selecione uma instância de destino compatível e nomeie o novo banco de dados.
Clique no botão Restaurar.
Para verificar o progresso da operação, consulte o indicador de progresso, conforme mostrado na página de operações:
Se a operação demorar muito, você poderá cancelá-la. Para mais informações, consulte Cancelar uma operação de instância de longa duração .
gcloud
Para restaurar um banco de dados, use gcloud spanner
databases restore:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6 \
--encryption_type=google-managed-encryptionObservações sobre o uso:
- O comando retorna imediatamente por causa da sinalização
--async. Sem a flag, o comando vai aguardar a conclusão da operação de restauração. - Se as instâncias de origem e de destino forem diferentes, elas precisarão ter a mesma configuração de instância.
- Se o banco de dados de destino já existir, a operação falhará.
- Os valores possíveis para
encryption_typesãoUSE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Se você usarCUSTOMER_MANAGED_ENCRYPTION, especifique umkmsKeyName.
Bibliotecas de cliente
O exemplo de código a seguir restaura um banco de dados de um
backup especificado e aguarda a conclusão da operação de restauração (uma operação com
RestoreDatabaseMetadata) para
concluir. O banco de dados restaurado é criado na mesma instância do backup. Quando concluído, o exemplo recupera e imprime algumas informações de restauração do banco de dados.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Recuperar uma tabela específica de um backup
Se você precisar recuperar uma tabela específica de um backup, restaure o backup em um novo banco de dados, exporte essa única tabela do novo banco de dados e importe essa tabela para o banco de dados original. Essa abordagem minimiza a carga no banco de dados original durante o processo de exportação.
- Restaure o backup em um novo, separado banco de dados.
Opcional: exclua as linhas criadas após o carimbo de data/hora de recuperação.
O processo de importação não exclui automaticamente as linhas que foram adicionadas à tabela após a criação do backup. Portanto, se você quiser que a tabela recuperada corresponda exatamente ao estado do backup, exclua manualmente as linhas criadas após o carimbo de data/hora do backup.
Exporte a tabela específica do novo banco de dados usando o modelo do Dataflow do Spanner para Avro. Para mais informações, consulte Exportar um subconjunto de tabelas.
Importe a tabela exportada para o banco de dados original usando o modelo do Dataflow do Cloud Storage Avro para Spanner. Para mais informações, consulte Importar dados.