Exportar e importar usando arquivos de despejo SQL

Nesta página, descrevemos como exportar e importar dados para instâncias do Cloud SQL usando arquivos dump SQL.

Não é possível exportar do Cloud SQL para um arquivo dump SQL do SQL Server.

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 SQL Server

No SQL Server, não é possível exportar do Cloud SQL para um arquivo dump SQL.

Importar dados para o Cloud SQL para SQL Server

Permissões e papéis necessários para importar para o Cloud SQL para SQL Server

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:

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 importação listrada)

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 SQL Server

Os arquivos SQL são arquivos de texto simples com uma sequência de comandos SQL.

No procedimento a seguir, prepare-se para especificar um banco de dados atual do qual importar seus arquivos SQL.

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse Instâncias do Cloud SQL

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. Clique em Importar.
  4. 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).

  5. Em Formato, selecione SQL.
  6. 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.

  7. 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.

  8. Clique em Importar para iniciar a importação.

gcloud

  1. Criar um bucket do Cloud Storage
  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Descreva a instância para a qual está fazendo a importação:
    gcloud sql instances describe INSTANCE_NAME
  4. Copie o campo serviceAccountEmailAddress.
  5. Use gcloud storage buckets add-iam-policy-binding para conceder o papel do IAM storage.objectAdminà conta de serviço do bucket.
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:SERVICE-ACCOUNT \
      --role=roles/storage.objectAdmin
      
    Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM.
  6. 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 comando sql 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.

  7. 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

  1. Criar um bucket do Cloud Storage
  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. Forneça à instância os papéis do IAM legacyBucketWriter e objectViewer do seu bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do Cloud IAM.
  4. 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 ver a lista completa de parâmetros da solicitação, consulte a página instances:import.
  5. Se você não precisa manter as permissões do IAM definidas anteriormente, remova-as agora.

REST v1beta4

  1. Criar um bucket do Cloud Storage
  2. Faça upload do arquivo no seu bucket.

    Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.

  3. 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.
  4. 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 ver a lista completa de parâmetros da solicitação, consulte a página instances:import.
  5. Se você não precisa manter as permissões do IAM definidas anteriormente, remova-as agora.

A seguir