Como exportar dados

Nesta página, você verá como exportar dados de instâncias do Cloud SQL ou de um servidor de banco de dados não gerenciado pelo Cloud SQL.

Para ver as práticas recomendadas para exportação de dados, consulte Práticas recomendadas para importação e exportação de dados.

Exportar os dados para um arquivo de despejo SQL

Quando você usa o Cloud SQL para realizar uma exportação, seja do Console do GCP, da ferramenta de linha de comando gcloud ou da API, você está usando o utilitário pg_dump. E isso é realizado com as opções necessárias para garantir que o arquivo de exportação resultante seja válido para importação de volta ao Cloud SQL.

Você também poderá executar o pg_dump manualmente se estiver exportando um banco de dados não gerenciado pelo Cloud SQL. No entanto, para importar os dados para o Cloud SQL, siga as instruções em Como exportar dados de um servidor externo de banco de dados.

Como exportar dados usando o Cloud SQL

Console

  1. Acesse a página "Instâncias do Cloud SQL" no Console do Google Cloud Platform.

    Acessar a página "Instâncias do Cloud SQL"

  2. Clique na instância de que você quer exportar dados para abrir a respectiva página "Detalhes da instância".
  3. Clique em Exportar na barra de botões.
  4. Em Arquivo do Cloud Storage, selecione um intervalo ou pasta do Cloud Storage para a exportação.
  5. No campo Nome, forneça um nome para o arquivo de exportação e clique em Selecionar.
  6. Insira o nome do banco de dados a exportar.
  7. Clique em Exportar para iniciar a exportação.

gcloud

Para exportar um arquivo de despejo de uma instância para um intervalo do Cloud Storage:

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Descreva a instância da qual você está exportando:
    gcloud sql instances describe [INSTANCE_NAME]
    
  3. Copie o campo serviceAccountEmailAddress.
  4. Adicione a conta de serviço ao intervalo ACL como um gravador:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  5. Exporte o banco de dados:
    gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz \
                                --database=[DATABASE_NAME]
    

    Para informações sobre como usar o comando "export", consulte a página de referência do comando sql export sql.

  6. Caso não seja necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova a ACL:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

cURL

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Forneça à instância permissões para gravar no intervalo.

    Para ajuda sobre a definição de ACLs, consulte Como definir ACLs.

  3. Exporte o banco de dados:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"exportContext":
                    {"fileType": "SQL",
                     "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                     "databases": ["<DATABASE_NAME1>", "<DATABASE_NAME2>"] }}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/export
    
  4. Se não for necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:insert.

Como exportar dados de um servidor de banco de dados gerenciado externamente

Para exportar um banco de dados que não é gerenciado pelo Cloud SQL, use o utilitário pg_dump com os seguintes sinalizadores:

  • --no-owner

    Os comandos de mudança de propriedade não podem ser incluídos no arquivo de despejo SQL.

  • --format=plain

    Apenas o formato SQL simples é compatível com o Cloud SQL.

  • --no-acl

    Esse sinalizador é necessário caso seu despejo tenha instruções para conceder ou revogar assinaturas em um papel SUPERUSER.

Além disso, você deve remover todas as instruções relacionadas à extensão para extensões não suportadas pelo Cloud SQL. Consulte Extensões do PostgreSQL para ver a lista de extensões permitidas.

Em uma linha de comando, execute pg_dump:

pg_dump -U [USERNAME] --format=plain --no-owner --no-acl [DATABASE_NAME] \
    | sed -E 's/(DROP|CREATE|COMMENT ON) EXTENSION/-- \1 EXTENSION/g' > [SQL_FILE].sql

O pós-processamento sed converte em comentários todas as instruções de extensão no arquivo de despejo SQL.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para PostgreSQL