Nesta página, descrevemos como exportar e importar dados para instâncias do Cloud SQL usando arquivos dump SQL.
Antes de começar
As exportações usam recursos do banco de dados, mas não interferem nas operações normais do banco de dados, a menos que a instância tenha um provisionamento menor do que deveria ser.
Para ver as práticas recomendadas, consulte Práticas recomendadas para importação e exportação de dados.
Depois de concluir uma operação de importação, verifique os resultados.
Exportar dados do Cloud SQL para PostgreSQL
Permissões e papéis necessários para exportar do Cloud SQL para PostgreSQL
Para exportar dados do Cloud SQL para o Cloud Storage, o usuário que inicia a exportação precisa ter um dos seguintes papéis:
- O papel Editor do Cloud SQL
- Um papel personalizado, incluindo as seguintes permissões:
cloudsql.instances.get
cloudsql.instances.export
Além disso, a conta de serviço da instância do Cloud SQL precisa ter um dos seguintes papéis:
- O papel
storage.objectAdmin
do Identity and Access Management (IAM) - Um papel personalizado, incluindo as seguintes permissões:
storage.objects.create
storage.objects.list
(somente para exportar arquivos em paralelo)storage.objects.delete
(somente para exportar arquivos em paralelo)
Para receber ajuda com os papéis do IAM, consulte Gerenciamento de identidade e acesso.
Exportar para um arquivo dump SQL do Cloud SQL para PostgreSQL
Ao usar o Cloud SQL para executar uma exportação, seja no console do Google Cloud, na gcloud CLI ou na API, você estará usando o utilitáriopg_dump
com as opções necessárias para garantir que o arquivo de exportação resultante seja
válido para importação no Cloud SQL.
Se você pretende importar dados para o Cloud SQL, siga as instruções da seção Como exportar dados a partir de um servidor de banco de dados externo para que o arquivo dump SQL seja formatado corretamente para o Cloud SQL.
Para exportar dados de um banco de dados em uma instância do Cloud SQL para um arquivo dump SQL em um bucket do Cloud Storage:
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Exportar.
- Na seção Formato de arquivo, clique em SQL para criar um arquivo dump SQL.
- Na seção Dados a serem exportados, use o menu suspenso para selecionar o banco de dados do qual você quer exportar.
- Na seção Destino, selecione Procurar para pesquisar um bucket ou uma pasta do Cloud Storage para a exportação.
- Clique em Exportar para iniciar a exportação.
gcloud
- Crie um bucket do Cloud Storage.
- Encontre a conta de serviço da instância do Cloud SQL da qual você está
exportando. É possível fazer isso executando o
comando
gcloud sql instances describe
. Procure o camposerviceAccountEmailAddress
na saída.gcloud sql instances describe INSTANCE_NAME
- Use
gcloud storage buckets add-iam-policy-binding
para conceder o papel do IAMstorage.objectAdmin
à conta de serviço. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM. - Exporte o banco de dados para o bucket do Cloud Storage:
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
O comando
export sql
não contém gatilhos ou procedimentos armazenados, mas tem visualizações. Para exportar gatilhos e/ou procedimentos armazenados, use a pg_dump (em inglês).Para mais informações sobre como usar o comando
export sql
, consulte a página de referência do comandosql export sql
. - Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
REST v1
- Crie um bucket para a exportação:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel
legacyBucketWriter
do IAM no seu bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM. - Exporte o banco de dados:
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
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_DUMP_FILE: o caminho para o arquivo dump SQL
- DATABASE_NAME_1: o nome de um banco de dados dentro da instância do Cloud SQL
- DATABASE_NAME_2: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisa manter o papel do IAM definido anteriormente, remova-o agora.
REST v1beta4
- Crie um bucket para a exportação:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.
- Forneça à instância o papel
storage.objectAdmin
do IAM no seu bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM. - Exporte o banco de dados:
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
- BUCKET_NAME: o nome do bucket do Cloud Storage
- PATH_TO_DUMP_FILE: o caminho para o arquivo dump SQL
- DATABASE_NAME_1: o nome de um banco de dados dentro da instância do Cloud SQL
- DATABASE_NAME_2: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
Corpo JSON da solicitação:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
- Se você não precisar manter o papel do IAM definido anteriormente, revogue-o agora.
Importar dados para o Cloud SQL para PostgreSQL
Permissões e papéis necessários para importar para o Cloud SQL para PostgreSQL
Para importar dados do Cloud Storage para o Cloud SQL, o usuário que inicia a importação precisa ter um dos seguintes papéis:
- O papel Administrador do Cloud SQL
- Um papel personalizado, incluindo as seguintes permissões:
cloudsql.instances.get
cloudsql.instances.import
Além disso, a conta de serviço da instância do Cloud SQL precisa ter um dos seguintes papéis:
- O papel
storage.objectAdmin
do IAM - Um papel personalizado, incluindo as seguintes permissões:
storage.objects.get
storage.objects.list
(somente para importar arquivos em paralelo)
Para receber ajuda com os papéis do IAM, consulte Gerenciamento de identidade e acesso.
Importar um arquivo dump SQL para o Cloud SQL para PostgreSQL
Os arquivos SQL são arquivos de texto simples com uma sequência de comandos SQL.
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Clique em Importar.
- Na seção Escolher o arquivo do qual você quer importar dados, insira o caminho
para o bucket e o arquivo dump SQL para importar ou navegue até um arquivo
existente de dados.
É possível importar um arquivo compactado (
.gz
) ou descompactado (.sql
). - Em Formato, selecione SQL.
Selecione o banco de dados que receberá os dados importados.
Isso faz com que o Cloud SQL execute a instrução
USE DATABASE
antes da importação.Se você quiser especificar um usuário do PostgreSQL para realizar a importação, selecione-o.
Se o arquivo de importação contiver instruções que precisem ser realizadas por um usuário específico, use este campo para especificar esse usuário.
- Clique em Importar para iniciar a importação.
gcloud
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Descreva a instância para a qual está fazendo a importação:
gcloud sql instances describe INSTANCE_NAME
- Copie o campo
serviceAccountEmailAddress
. - Use
gcloud storage buckets add-iam-policy-binding
para conceder o papel do IAMstorage.objectAdmin
à conta de serviço do bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- Importe o banco de dados:
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
Para informações sobre como usar o comando
import sql
, consulte a página de referência do comandosql import sql
.Se o comando retornar um erro como
ERROR_RDBMS
, revise as permissões. Esse erro costuma ser causado por problemas de permissões. - Se não for necessário manter as permissões do IAM
definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
-
Crie um arquivo dump SQL. As instruções vinculadas definem determinadas sinalizações que tornam o arquivo dump compatível com o Cloud SQL.
- Se você estiver importando dados de um servidor PostgreSQL local:
- Crie um arquivo dump SQL seguindo as instruções em Como exportar dados usando pg_dump.
- Crie um bucket no Cloud Storage seguindo as instruções em Criar buckets.
- Faça o upload do arquivo dump SQL para o bucket do Cloud Storage usando o procedimento em Fazer upload de objetos.
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância os papéis do IAM
legacyBucketWriter
eobjectViewer
do seu bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM. - Importe seu arquivo dump:
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
- bucket_name: o nome do bucket do Cloud Storage
- path_to_sql_file: o caminho para o arquivo SQL
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente para a importação, especifique a propriedade
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisa manter as permissões do IAM definidas anteriormente, remova-as agora.
REST v1beta4
-
Crie um arquivo dump SQL. As instruções vinculadas definem determinadas sinalizações que tornam o arquivo dump compatível com o Cloud SQL.
- Se você estiver importando dados de um servidor PostgreSQL local:
- Crie um arquivo dump SQL seguindo as instruções em Como exportar dados usando pg_dump.
- Crie um bucket no Cloud Storage seguindo as instruções em Criar buckets.
- Faça o upload do arquivo dump SQL para o bucket do Cloud Storage usando o procedimento em Fazer upload de objetos.
- Criar um bucket do Cloud Storage
Faça upload do arquivo no seu bucket.
Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
- Forneça à instância o
papel do IAM
storage.objectAdmin
no seu bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM. - Importe seu arquivo dump:
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
- bucket_name: o nome do bucket do Cloud Storage
- path_to_sql_file: o caminho para o arquivo SQL
- database_name: o nome de um banco de dados dentro da instância do Cloud SQL
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
Corpo JSON da solicitação:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
Para usar um usuário diferente para a importação, especifique a propriedade
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:import.importContext.importUser
. - Se você não precisa manter as permissões do IAM definidas anteriormente, remova-as agora.
A seguir
- Saiba como verificar o status de operações de importação e exportação.
- Saiba mais sobre práticas recomendadas para importar e exportar dados.
- Saiba mais sobre o Cloud Storage.
- Problemas conhecidos em importações e exportações.