Nesta página, descrevemos as operações de backup do Spanner e explicamos como fazer backup para criar 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 no Spanner. Se você nunca usou a CLI gcloud com Spanner, consulte Introdução ao Spanner usando a gcloud CLI.
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 ter 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:
-
Crie, visualize, atualize e exclua backups:
Administrador de backup do Cloud Spanner (
roles/spanner.backupAdmin
) -
Crie e visualize backups:
Gravador de backup do Cloud Spanner (
roles/spanner.backupWriter
)
-
Crie, visualize, atualize e exclua backups:
Administrador de backup 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 Verifique o progresso da operação.
gcloud
Para criar um backup chamado example-db-backup-6
e ele expirar em um ano, faça o seguinte:
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 informações 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 saída será assim:
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 Verifique o progresso da operação.
Bibliotecas de cliente
O exemplo de código a seguir cria um backup em um version_time
específico
e aguarda a conclusão. Após a conclusão, ele verifica se o backup foi
tudo pronto e recupera algumas informações sobre ele, como nome, tamanho e
tempo 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 Verifique 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 sobre o uso:
- Se você optar por copiar o backup para uma instância diferente no mesmo projeto,
crie uma nova instância (ou tenha 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
com a própria instância pronta para o backup copiado. Na última
por exemplo,
backup-project
é usado. Não é possível criar um novo projeto como parte da operação de cópia de backup. - O tempo de expiração do backup deve ser de pelo menos seis horas a partir do momento em que o
solicitação de cópia atual é processada e, no máximo, 366 dias após a origem
faça backup
create_time
.
A saída será assim:
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 Verifique o progresso da operação.
Bibliotecas de cliente
O exemplo de código a seguir copia um backup existente. É possível copiar o backup
em uma instância de uma região
ou projeto diferente. Depois de concluída, 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 em execução.
gcloud
Usar 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 pela instância do Spanner nome.
- DATABASE_NAME pelo nome do banco de dados.
Observações sobre o 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 mais 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 saída será assim:
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 verificação.
- 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 da operação que está completa. A saída será assim: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 contínuas para criar backups (operações
com CreateBackupMetadata
) e copiar backups
(operações com CopyBackupMetadata
)
filtradas 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 demoradas usando o método Google Cloud CLI, REST ou API RPC. Para mais informações, consulte Cancelar uma operação de instância de longa duração.
gcloud
Usar 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 pela instância do Spanner nome.
- 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 foi
cancelado com sucesso, ele retorna cancelTime
e uma mensagem de erro. Se o
de backup foi concluída antes de ser cancelado, o backup existe e você pode excluí-lo.
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. Você pode acessar o backup 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 saída será assim:
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 Para mais informações, acesse 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 saída será assim:
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, versão
ou o 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 para o backup selecionado e escolha 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 saída será assim:
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 Fazer backup/Restaurar.
Clique no botão Ações para o backup selecionado e escolha Excluir.
Digite o ID do backup.
Clique em Excluir.
gcloud
Para excluir um backup, faça o seguinte:
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. Excluir 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