Esta página descreve como gerenciar os bancos de dados do Spanner, incluindo como criar, modificar e excluir um banco de dados. Esta página contém informações para bancos de dados com dialeto GoogleSQL e PostgreSQL. Para saber como atualizar um esquema de banco de dados, consulte Fazer atualizações de esquema.
Para praticar a criação de um banco de dados e o carregamento dele com dados de amostra, consulte o codelab do banco de dados do Spanner.
Criar um banco de dados
Os exemplos a seguir mostram como criar um banco de dados em uma instância.
Para bancos de dados com dialeto GoogleSQL, é possível definir o esquema do banco de dados no momento da criação ou depois. Para bancos de dados de dialeto PostgreSQL, é necessário definir o esquema após a criação.
Os esquemas são definidos usando a linguagem de definição de banco de dados, que é documentada para GoogleSQL e PostgreSQL. Consulte os links a seguir para mais informações sobre como criar e atualizar esquemas:
Depois de criar o banco de dados, é possível proteger os bancos de dados importantes para seus aplicativos e serviços ativando a proteção contra exclusão. Para mais informações, consulte Prevenir a exclusão acidental de bancos de dados.
No console do Google Cloud, acesse a página Instâncias do Spanner.
Selecione a instância em que o banco de dados será criado.
Clique em Criar banco de dados.
Digite os seguintes valores:
- Um nome de banco de dados a ser exibido no console do Google Cloud.
- O dialeto a ser usado para este banco de dados.
- Para bancos de dados com dialeto GoogleSQL, forneça um conjunto de instruções DDL que definem o esquema. Use os modelos de DDL para preencher previamente elementos comuns. Se houver erros nas instruções DDL, o console do Google Cloud vai retornar um erro quando você tentar criar o banco de dados.
- Opcionalmente, selecione uma chave de criptografia gerenciada pelo cliente para usar neste banco de dados.
Clique em Criar para criar o banco de dados.
Use o comando gcloud spanner databases create
.
```sh
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT ] \
[--ddl=DDL ] \
[--ddl-file=DDL_FILE ] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
```
As seguintes opções são obrigatórias:
DATABASE
- ID do banco de dados ou identificador totalmente qualificado para o
banco de dados. Se você especificar o identificador totalmente qualificado, a
sinalização
--instance
poderá ser omitida. --instance=INSTANCE
- A instância do Spanner para o banco de dados.
As seguintes opções são opcionais:
--async
- Retorna imediatamente, sem aguardar a conclusão da operação em andamento.
--database-dialect=DATABASE_DIALECT
- O dialeto SQL do banco de dados do Spanner. Precisa ser
uma destas opções:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Instruções de DDL (linguagem de definição de dados) separadas por ponto-e-vírgula para serem executadas
no banco de dados recém-criado. Se houver um erro em qualquer
instrução, o banco de dados não será criado. Essa flag será ignorada se
--ddl_file
estiver definido. Não é compatível com bancos de dados de dialeto PostgreSQL. --ddl-file=DDL_FILE
- Caminho de um arquivo que contém instruções DDL (linguagem de definição de dados) separadas por ponto e vírgula para execução no banco de dados recém-criado. Se houver um erro em qualquer instrução, o banco de dados não será
criado. Se
--ddl_file
estiver definido,--ddl
será ignorado. Não é compatível com bancos de dados de dialeto PostgreSQL.
Se você estiver especificando uma chave do Cloud Key Management Service para usar ao criar o banco de dados, inclua as seguintes opções:
--kms-key=KMS_KEY
- ID da chave ou identificador totalmente qualificado para a chave.
Essa flag precisa ser especificada se algum dos outros argumentos neste grupo for especificado. Os outros argumentos podem ser omitidos se o identificador totalmente qualificado for fornecido.
--kms-keyring=KMS_KEYRING
- ID do keyring do Cloud KMS da chave.
--kms-location=KMS_LOCATION
- Google Cloud local da chave.
--kms-project=KMS_PROJECT
- ID do projeto do Google Cloud para a chave.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Atualizar o esquema ou as opções do banco de dados
É possível atualizar o esquema e as opções do banco de dados usando instruções DDL.
Por exemplo, para adicionar uma coluna a uma tabela, use a seguinte instrução DDL:
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Para atualizar a versão do otimizador de consultas, use a seguinte instrução DDL:
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Para mais informações sobre as opções compatíveis, consulte a referência de DDL ALTER DATABASE
do GoogleSQL ou do
PostgreSQL.
Para informações sobre atualizações de esquema, consulte Fazer atualizações de esquema.
No console do Google Cloud, acesse a página Instâncias do Spanner.
Selecione a instância que contém o banco de dados a ser alterado.
Selecione o banco de dados.
Clique em Spanner Studio.
Clique em
Nova guia ou use a guia do editor vazia. Em seguida, insira as instruções DDL a serem aplicadas.Clique em Run para aplicar as atualizações. Se houver erros no DDL, o console do Google Cloud vai retornar um erro e o banco de dados não será alterado.
Para alterar um banco de dados com a ferramenta de linha de comando gcloud
, use
gcloud spanner databases ddl update
.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE ) \ [--async] \ [--ddl=DDL ] \ [--ddl-file=DDL_FILE ] \
Consulte a
referência de gcloud
para
detalhes sobre as opções disponíveis.
Transmita as atualizações do banco de dados para o comando com a flag --ddl
ou a
--ddl-file
. Se um arquivo DDL for especificado, a flag --ddl
será ignorada.
Consulte a referência de DDL ALTER DATABASE
para GoogleSQL ou
PostgreSQL para incluir as instruções DDL.
Consulte a referência DDL ALTER DATABASE
do GoogleSQL ou do
PostgreSQL para mais detalhes.
Verificar o progresso das operações de atualização do esquema
No menu de navegação do Spanner, selecione a guia Operações. A página Operações mostra uma lista de operações ativas.
Encontre a operação de esquema na lista. Se ainda estiver em execução, a barra de progresso na coluna Hora de término mostra a porcentagem da operação que foi concluída, conforme mostrado na imagem a seguir:
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=DATABASE_UPDATE_DDLSubstitua:
- INSTANCE-NAME com o nome da instância do Spanner.
- DATABASE-NAME pelo nome do banco de dados.
Execute
gcloud spanner operations describe
:gcloud spanner operations describe
OPERATION_ID \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME Substitua:
- OPERATION-ID: o ID da operação que você quer verificar.
- INSTANCE-NAME: o nome da instância do Spanner.
- DATABASE-NAME: o nome do banco de dados do Spanner.
A seção
progress
na saída mostra a porcentagem da operação que foi concluída. 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 ...
Consiga o ID da operação:
gcloud spanner operations list --instance=
INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDLSubstitua:
- INSTANCE-NAME com o nome da instância do Spanner.
- DATABASE-NAME pelo nome do banco de dados.
Verifique o progresso da operação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT-ID: o ID do projeto.
- INSTANCE-ID: o ID da instância
- DATABASE-ID: o ID do banco de dados.
- OPERATION-ID: o ID da operação.
Método HTTP e URL:
GET https://spanner.googleapis.com/v1/projects/
PROJECT-ID /instances/INSTANCE-ID /databases/DATABASE-ID /operations/OPERATION-ID Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://spanner.googleapis.com/v1/projects/PROJECT-ID /instances/INSTANCE-ID /databases/DATABASE-ID /operations/OPERATION-ID "PowerShell (Windows)
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://spanner.googleapis.com/v1/projects/PROJECT-ID /instances/INSTANCE-ID /databases/DATABASE-ID /operations/OPERATION-ID " | Select-Object -Expand ContentVocê receberá uma resposta JSON semelhante a esta:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Se a operação demorar muito, você pode cancelá-la. Para mais informações, consulte Cancelar uma operação de banco de dados de longa duração.
Excluir um banco de dados
A exclusão de um banco de dados remove permanentemente o banco de dados e todos os respectivos dados. Não é possível desfazer a exclusão do banco de dados. Se a proteção contra exclusão de banco de dados estiver ativada em um banco de dados, não será possível excluí-lo até que a proteção contra exclusão seja desativada.
Os backups atuais não são excluídos quando um banco de dados é excluído. Para mais informações, consulte Backup e restauração.
No console do Google Cloud, acesse a página Instâncias do Spanner.
Selecione a instância que contém o banco de dados a ser excluído.
Selecione o banco de dados.
Clique em Excluir banco de dados. Uma confirmação vai aparecer.
Digite o nome do banco de dados e clique em Excluir.
Para excluir um banco de dados com a ferramenta de linha de comando gcloud
, use
gcloud spanner databases delete
.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE )
As seguintes opções são obrigatórias:
DATABASE
- ID do banco de dados ou identificador totalmente qualificado para o banco de dados. Se
o identificador totalmente qualificado for fornecido, a flag
--instance
será omitida. --instance=INSTANCE
- A instância do Spanner para o banco de dados.
Para mais detalhes, consulte a
referência gcloud
.
A DDL não oferece suporte à sintaxe de exclusão de banco de dados.
A seguir
- Crie um banco de dados e o carregue com dados de amostra.
- Saiba mais sobre a referência DDL do GoogleSQL.
- Saiba mais sobre a referência do DDL do PostgreSQL.
- Saiba como fazer backup e restaurar um banco de dados.
- Saiba como evitar a exclusão acidental de bancos de dados.
- Saiba como fazer atualizações de esquema.