Nesta página, descrevemos as operações de backup do Spanner e explicamos como fazer backup de um banco de dados. Para mais informações sobre backups, consulte Visão geral de backups.
É possível fazer backup de bancos de dados usando o seguinte:
Antes de começar
Os exemplos da CLI gcloud nesta página pressupõem o seguinte:
- Você já configurou a gcloud CLI para usar com o Spanner. Se você ainda não sabe usar a CLI gcloud com o Spanner, consulte Primeiros passos com o Spanner usando a CLI gcloud.
Você configurou CLI gcloud com seu projeto. Exemplo:
gcloud config set core/project PROJECT_ID
Você já tem uma instância chamada
test-instance
e um banco de dados chamadoexample-db
.
-
Para receber as permissões necessárias para criar e gerenciar backups, peça ao administrador para conceder a você os seguintes papéis do IAM na instância:
-
Criar, visualizar, atualizar e excluir backups:
Administrador de backups do Cloud Spanner (
roles/spanner.backupAdmin
) -
Criar e ver backups:
Gravador de backup do Cloud Spanner (
roles/spanner.backupWriter
)
-
Criar, visualizar, atualizar e excluir backups:
Administrador de backups do Cloud Spanner (
Criar backup
Console
No console do Google Cloud, acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados que você quer fazer backup.
Clique no banco de dados.
No painel de navegação, clique em Backup/restauração.
Na guia Backups, clique em Criar backup.
Preencha o formulário e clique em Criar.
Para verificar o progresso de uma operação de backup, consulte Verificar o progresso da operação.
gcloud
Para criar um backup chamado example-db-backup-6
e que ele expire em um ano, use gcloud spanner backups create
:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Veja algumas observações de uso:
- Para definir a data de validade do backup, especifique a sinalização
--retention-period
ou--expiration-date
. Para saber mais sobre a sintaxe da data, consultegcloud topic datetimes
. - O nome do backup precisa ser exclusivo na instância.
- O comando retorna imediatamente por causa da sinalização
--async
. Sem a sinalização, o comando aguardará a conclusão da operação de backup. - Especifique a sinalização
--help
para receber ajuda para qualquer comando.
A resposta será semelhante a:
Create request issued for: [example-db-backup-6]
Check operation [projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567] for status.
Para verificar o progresso de uma operação de backup, consulte Verificar o progresso da operação.
Bibliotecas de cliente
O exemplo de código a seguir cria um backup em uma version_time
específica
e aguarda a conclusão dele. Após a conclusão, ele verifica se o backup está
pronto e recupera algumas informações sobre ele, como nome, tamanho e
hora de criação.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Copiar um backup
Console
No console do Google Cloud, acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados que você quer copiar.
Clique no banco de dados.
No painel de navegação, clique em Backup/restauração.
Na tabela Backups, selecione Ações para o backup e clique em Copiar.
Preencha o formulário escolhendo uma instância de destino, fornecendo um nome e selecionando uma data de validade para a cópia de backup.
Clique em Copiar.
Para verificar o progresso de uma operação de cópia, consulte Verificar o progresso da operação.
Se a operação demorar muito, será possível cancelá-la. Para mais informações, consulte Cancelar uma operação de instância de longa duração.
gcloud
Para copiar um backup em uma instância diferente no mesmo projeto,
use gcloud spanner backups copy
:
gcloud spanner backups copy \
--source-instance=test-instance \
--source-backup=example-db \
--destination-instance=backup-instance \
--destination-backup=copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Para copiar um backup para uma instância diferente em um projeto diferente:
gcloud spanner backups copy \
--source-backup=projects/my-project/instances/test-instance/backups/example-db \
--destination-backup=projects/backup-project/instances/backup-instance-eu/backups/copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Observações de uso:
- Se você optar por copiar o backup para uma instância diferente no mesmo projeto,
será necessário criar uma nova instância (ou ter uma pronta) para o backup copiado.
No exemplo anterior,
backup-instance
é usado. Não é possível criar uma nova instância como parte da operação de cópia de backup. - Se você optar por copiar o backup para um projeto diferente, precisará ter outro
projeto com a própria instância pronta para o backup copiado. No exemplo
anterior,
backup-project
é usado. Não é possível criar um novo projeto como parte da operação de cópia de backup. - O prazo de validade do backup precisa ser de pelo menos seis horas a partir do momento em que a
solicitação de cópia atual é processada e, no máximo, 366 dias após o backup de origem
create_time
.
A resposta será semelhante a:
createTime: '2022-03-29T22:06:05.905823Z'
database: projects/my-project/instances/test-instance/databases/example-db
databaseDialect: GOOGLE_STANDARD_SQL
encryptionInfo:
encryptionType: GOOGLE_DEFAULT_ENCRYPTION
expireTime: '2022-03-30T10:49:41Z'
maxExpireTime: '2023-03-17T20:46:33.479336Z'
name: projects/backup-project/instances/backup-instance-eu/backups/copied-backup
sizeBytes: '7957667'
state: READY
versionTime: '2022-03-16T20:46:33.479336Z'
Para verificar o progresso de uma operação de cópia, consulte Verificar o progresso da operação.
Bibliotecas de cliente
O exemplo de código a seguir copia um backup existente. É possível copiar o backup para uma instância em uma região ou projeto diferente. Após a conclusão, a amostra
recupera e imprime algumas informações sobre o backup copiado recém-criado,
como nome, tamanho, estado do backup e version_time
.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Verificar o progresso da operação
Console
No console do Google Cloud, acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados com a operação de backup que você quer ver.
Clique no banco de dados.
No painel de navegação, clique em Operações. A página Operações mostra uma lista de operações em execução.
gcloud
Use gcloud spanner operations describe
para verificar o progresso de uma operação.
Consiga o ID da operação:
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=BACKUP
Substitua:
- INSTANCE_NAME pelo nome da instância do Spanner.
- DATABASE_NAME pelo nome do banco de dados.
Observações de uso:
Para limitar a lista, especifique a sinalização
--filter
. Exemplo:--filter="metadata.name:example-db"
lista apenas as operações em um banco de dados específico.--filter="error:*"
lista apenas as operações de backup que falharam.
Para informações sobre a sintaxe do filtro, consulte
gcloud topic filters
. Para informações sobre como filtrar operações de backup, consulte o campofilter
emListBackupOperationsRequest
.A sinalização
--type
não diferencia maiúsculas de minúsculas.
A resposta será semelhante a:
OPERATION_ID DONE @TYPE BACKUP SOURCE_DATABASE START_TIME END_TIME _auto_op_123456 True CreateBackupMetadata example-db-backup-7 example-db 2020-02-04T02:12:38.075515Z 2020-02-04T02:22:40.581170Z _auto_op_234567 True CreateBackupMetadata example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2020-02-04T02:07:59.089820Z
Execute
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID \ --instance=INSTANCE_NAME \ --backup=BACKUP_NAME \
Substitua:
- OPERATION_ID: o ID da operação que você quer verificar.
- INSTANCE_NAME: o nome da instância do Spanner.
- BACKUP_NAME: o nome do backup do Spanner.
A seção
progress
na saída mostra a porcentagem de conclusão da operação. A resposta será semelhante a:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
Se a operação demorar muito, será possível cancelá-la. Para mais informações, consulte Cancelar uma operação de backup de longa duração.
Bibliotecas de cliente
O exemplo de código a seguir lista todas as operações em andamento para criar backups (operações
com CreateBackupMetadata
) e copiar backups
(operações com CopyBackupMetadata
)
filtrados por um determinado banco de dados.
Para informações sobre a sintaxe de filtragem, consulte o parâmetro filter
em
backupOperations.list
.
C++
C#
Para listar todas as operações de criação de backup:
Para listar todas as operações de backup de cópia:
Go
Java
Node.js
PHP
Python
Ruby
Para listar todas as operações de criação de backup:
Para listar todas as operações de backup de cópia:
Cancelar operação de backup
Console
O console do Google Cloud não é compatível com o cancelamento de uma operação de backup. No entanto, é possível cancelar operações que levam muito tempo usando a Google Cloud CLI, a REST ou a API RPC. Para mais informações, consulte Cancelar uma operação de instância de longa duração.
gcloud
Use gcloud spanner operations cancel
para cancelar uma operação de backup.
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME \ --database=DATABASE_NAME --backup=BACKUP
Substitua:
- OPERATION_ID pelo ID da operação do backup.
- INSTANCE_NAME pelo nome da instância do Spanner.
- DATABASE_NAME pelo nome do banco de dados.
- BACKUP pelo nome do backup.
Bibliotecas de cliente
O exemplo de código a seguir cria um backup, cancela a operação de backup e
aguarda até que a operação de backup seja done
. Se a operação tiver sido
cancelada com sucesso, ela retornará o cancelTime
e uma mensagem de erro. Se a
operação de backup foi concluída antes de ser cancelada, o backup existe e pode ser excluído.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Receber informações de backup
Console
No console do Google Cloud, acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados com as informações de backup que você quer ver.
Clique no banco de dados para abrir a página Visão geral correspondente.
No painel de navegação, clique em Backup/restauração. É possível visualizar as informações do backup selecionado no banco de dados.
gcloud
Para informações sobre um backup,
use gcloud spanner backups describe
:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
A resposta será semelhante a:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2021-02-04T02:05:43.268327Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliotecas de cliente
As bibliotecas de cliente não são compatíveis com a coleta de informações para um único backup. No entanto, é possível listar todos os backups e as informações deles em uma instância. Para mais informações, consulte Listar backups em uma instância.
Listar backups em uma instância
Console
No console do Google Cloud, acesse a página Instâncias do Spanner.
Clique na sua instância para ver todos os backups disponíveis e as informações.
No painel de navegação, clique em Backup/restauração.
gcloud
Para listar todos os backups em uma instância,
use gcloud spanner backups list
:
gcloud spanner backups list --instance=test-instance
A resposta será semelhante a:
BACKUP SOURCE_DATABASE CREATION_TIME EXPIRATION_TIME STATE BACKUP_SIZE_IN_BYTES IN_USE_BY
example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2021-02-04T02:05:43.268327Z CREATING
example-db-backup-4 example-db 2020-02-04T01:21:20.873839Z 2021-02-04T01:21:20.530151Z READY 32
example-db-backup-3 example-db 2020-02-03T23:59:18.936433Z 2021-02-03T23:59:18.203083Z READY 32
example-db-backup-5 example-db 2020-02-03T23:48:06.259296Z 2021-02-03T23:48:05.830937Z READY 32
example-db-backup-2 example-db 2020-01-30T19:49:00.616338Z 2021-01-30T19:49:00.283917Z READY 32
example-db-backup-1 example-db 2020-01-30T19:47:09.492551Z 2021-01-30T19:47:09.097804Z READY 32
Para limitar a lista, especifique a sinalização --filter
. Por exemplo, para filtrar a lista
para incluir apenas os backups que ainda estão sendo criados, adicione
--filter="state:creating"
. Saiba mais sobre a sintaxe de filtro em gcloud topic filters
.
Para informações sobre como filtrar backups, consulte o campo filter
em ListBackupsRequest
.
Bibliotecas de cliente
O exemplo de código a seguir lista os backups em uma determinada instância.
É possível filtrar a lista de backups retornados (por exemplo, filtrar por nome, horário
da versão ou prazo de validade do backup) fornecendo uma expressão de filtro. Para
informações sobre a sintaxe de filtragem, consulte o parâmetro filter
em
Listar backups.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Atualizar o período de expiração do backup
Console
Acesse a página "Instâncias do Spanner" no console do Google Cloud.
Clique na instância que contém o banco de dados para abrir a página Visão geral correspondente.
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 Atualizar metadados.
Selecione a nova data de validade.
Clique em Atualizar.
gcloud
Para atualizar a data do período de validade de um backup,
use gcloud spanner backups update-metadata
:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
A resposta será semelhante a:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2020-05-05T00:00:00Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Bibliotecas de cliente
O exemplo de código a seguir recupera o tempo de expiração de um backup e o estende.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Excluir um backup
Console
Acesse a página "Instâncias do Spanner" no console do Google Cloud.
Clique na instância que contém o banco de dados para abrir a página Visão geral correspondente.
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 Excluir.
Digite o ID do backup.
Clique em Excluir.
gcloud
Para excluir um backup,
use gcloud spanner backups delete
:
gcloud spanner backups delete example-db-backup-1 --instance=test-instance
Confirme a operação:
You are about to delete backup [example-db-backup-1]
Do you want to continue (Y/n)? Y
Deleted backup [example-db-backup-1].
Bibliotecas de cliente
O exemplo de código a seguir exclui um backup e verifica se ele foi excluído. A exclusão de um backup que ainda está em andamento remove o recurso de backup e cancela a operação de backup de longa duração.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby