Exporte e importe com ficheiros de captura SQL

Esta página descreve a exportação e a importação de dados para instâncias do Cloud SQL através de ficheiros de despejo de SQL.

A exportação do Cloud SQL para um ficheiro de captura SQL não é suportada para o SQL Server.

Antes de começar

As exportações usam recursos da base de dados, mas não interferem com as operações normais da base de dados, a menos que a instância tenha um aprovisionamento insuficiente.

Para ver as práticas recomendadas, consulte o artigo Práticas recomendadas para importar e exportar dados.

Após concluir uma operação de importação, valide os resultados.

Exporte dados do Cloud SQL para SQL Server

A exportação do Cloud SQL para um ficheiro de despejo de SQL não é suportada para o SQL Server.

Importe dados para o Cloud SQL para SQL Server

Funções e autorizações necessárias para a importação para o Cloud SQL para SQL Server

Para importar dados do Cloud Storage para o Cloud SQL, o utilizador que inicia a importação tem de ter uma das seguintes funções:

Além disso, a conta de serviço da instância do Cloud SQL tem de ter uma das seguintes funções:

  • A função de IAM storage.objectAdmin
  • Uma função personalizada, incluindo as seguintes autorizações:
    • storage.objects.get
    • storage.objects.list (apenas para importação com faixas)

Para obter ajuda com as funções de IAM, consulte o Identity and Access Management.

Importe um ficheiro de captura SQL para o Cloud SQL para SQL Server

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

No procedimento seguinte, prepare-se para especificar uma base de dados existente a partir da qual importar os seus ficheiros SQL.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Clique em Importar.
  4. Na secção Escolha o ficheiro a partir do qual quer importar dados, introduza o caminho para o contentor e o ficheiro de despejo de SQL a usar para a importação, procure um ficheiro existente ou carregue um ficheiro local.

    Pode importar um ficheiro comprimido (.gz) ou não comprimido (.sql).

  5. Em Formato, selecione SQL.
  6. Selecione a base de dados para a qual quer importar os dados.

    Isto faz com que o Cloud SQL execute a declaração USE DATABASE antes da importação.

  7. Se quiser especificar um utilizador para realizar a importação, selecione o utilizador.

    Se o seu ficheiro de importação contiver declarações que têm de ser realizadas por um utilizador específico, use este campo para especificar esse utilizador.

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

gcloud

  1. Crie um contentor do Cloud Storage.
  2. Carregue o ficheiro para o seu contentor.

    Para obter ajuda com o carregamento de ficheiros para contentores, consulte o artigo Carregar objetos.

  3. Descreva a instância para a qual está a importar:
    gcloud sql instances describe INSTANCE_NAME
  4. Copie o campo serviceAccountEmailAddress.
  5. Use gcloud storage buckets add-iam-policy-binding para conceder a storage.objectAdmin função do IAM à conta de serviço do contentor.
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member=serviceAccount:SERVICE-ACCOUNT \
      --role=roles/storage.objectAdmin
      
    Para obter ajuda com a definição de autorizações de IAM, consulte o artigo Usar autorizações de IAM.
  6. Importe a base de dados:
    gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \
    --database=DATABASE_NAME

    Para obter informações sobre a utilização do comando import sql, consulte a página de referência do comando sql import sql.

    Se o comando devolver um erro como ERROR_RDBMS, reveja as autorizações. Este erro deve-se frequentemente a problemas de autorizações.

  7. Se não precisar de manter as autorizações de IAM que definiu anteriormente, remova-as através do comando gcloud storage buckets remove-iam-policy-binding.

REST v1

  1. Crie um contentor do Cloud Storage.
  2. Carregue o ficheiro para o seu contentor.

    Para obter ajuda com o carregamento de ficheiros para contentores, consulte o artigo Carregar objetos.

  3. Faculte à sua instância as funções de IAM legacyBucketWritereobjectViewer para o seu contentor. Para obter ajuda com a definição de autorizações de IAM, consulte o artigo Usar autorizações de IAM.
  4. Importe o ficheiro de despejo:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • bucket_name: o nome do contentor do Cloud Storage
    • path_to_sql_file: o caminho para o ficheiro SQL
    • database_name: o nome de uma base de dados na 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 do pedido:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    Para ver a lista completa de parâmetros do pedido, consulte a página instances:import.
  5. Se não precisar de manter as autorizações de IAM que definiu anteriormente, remova-as agora.

REST v1beta4

  1. Crie um contentor do Cloud Storage.
  2. Carregue o ficheiro para o seu contentor.

    Para obter ajuda com o carregamento de ficheiros para contentores, consulte o artigo Carregar objetos.

  3. Faculte à sua instância a storage.objectAdmin função do IAM para o seu contentor. Para obter ajuda com a definição de autorizações de IAM, consulte o artigo Usar autorizações de IAM.
  4. Importe o ficheiro de despejo:

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • bucket_name: o nome do contentor do Cloud Storage
    • path_to_sql_file: o caminho para o ficheiro SQL
    • database_name: o nome de uma base de dados na 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 do pedido:

    {
     "importContext":
       {
          "fileType": "SQL",
          "uri": "gs://bucket_name/path_to_sql_file",
          "database": "database_name"
        }
    }
    
    

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    Para ver a lista completa de parâmetros do pedido, consulte a página instances:import.
  5. Se não precisar de manter as autorizações de IAM que definiu anteriormente, remova-as agora.

O que se segue?