Como exportar dados para importar no Cloud SQL

Nesta página, descreveremos como criar um arquivo de despejo SQL ou um arquivo CSV que possa ser usado pelo Cloud SQL. Você pode usar esses arquivos para importar seus dados para o Cloud SQL ou para criar um mestre externo para réplicas do Cloud SQL.

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

Como criar um arquivo de despejo SQL

É possível criar um arquivo de despejo SQL para importar para o Cloud SQL usando Cloud SQL ou mysqldump.

Como exportar sem visualizações usando o Cloud SQL

É possível excluir visualizações usando a ferramenta de linha de comando gcloud ou a API Admin do Cloud SQL especificando cada tabela que você quer exportar. Siga as instruções do gcloud ou do cURL descritas em Como exportar dados, usando a seguinte sintaxe:

gcloud

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz \
    --database=[DATABASE_NAME] --table=[TABLE_NAME1,TABLE_NAME2, ...]

É preciso especificar exatamente um banco de dados quando especificar tabelas. Não inclua visualizações ou tabelas do sistema.

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

cURL

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_NAME>"],
               "sqlExportOptions":
                  {"tables": ["<TABLE_NAME1>,<TABLE_NAME2>,.."]}}}' \
   -X POST \
   https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/export

É preciso especificar exatamente um banco de dados quando especificar tabelas. Não inclua visualizações ou tabelas do sistema.

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

Como exportar sem visualizações usando o mysqldump

Use mysqldump para criar o arquivo de despejo SQL com as seguintes sinalizações:

  • --databases: use a opção --databases para especificar uma lista explícita de bancos de dados que precisam ser importados. Essa lista não pode conter o banco de dados do sistema mysql.
  • --hex-blob: se o banco de dados contiver qualquer campo binário, use esta sinalização para assegurar a importação correta dos campos binários.
  • --skip-triggers: não inclua acionadores no arquivo de despejo SQL.
  • --set-gtid-purged=OFF: não inclua informações de GTID no arquivo de despejo do SQL, nem desative a geração de registros binários pelo arquivo de despejo do SQL. Não é necessário para o MySQL 5.5 nem para a replicação externa.
  • --ignore-table: se os bancos de dados incluírem VIEWs, exclua-os da exportação. Basta incluir uma sinalização --ignore-table [VIEW_NAME] em cada visualização dos bancos de dados que estão sendo exportados.

Se estiver criando um arquivo de despejo para uso em uma configuração de mestre externa ou de réplica externa, use também as sinalizações --master-data=1 e --flush-privileges.

Além disso, não use a opção --routines. Não inclua rotinas no arquivo de despejo SQL.

Em uma linha de comando, execute mysqldump:

Configurações padrão

mysqldump --databases [DATABASE_NAME] -h [INSTANCE_IP] -u [USERNAME] -p \
--hex-blob --skip-triggers --set-gtid-purged=OFF --ignore-table [VIEW_NAME1] [...] \
--default-character-set=utf8mb4 > [SQL_FILE].sql

Replicação externa

Quando você cria um arquivo de despejo para uso em uma configuração de mestre externo, precisa certificar-se de listar todos os bancos de dados que criou. Se a réplica não incluir um banco de dados na instância mestre externa, a gravação nesse banco poderá causar parada da replicação. No entanto, não basta apenas exportar todos os bancos de dados porque o arquivo de despejo não pode incluir os bancos de dados do sistema (mysql, performance_schema e information_schema).

Para réplicas externas, você pode escolher um subconjunto de bancos de dados a ser replicado, mas ainda precisará selecionar bancos de dados individuais para evitar a exportação dos bancos de dados do sistema.

mysqldump --databases [DATABASE_NAME1, DATABASE_NAME2, ...] -h [INSTANCE_IP] -u [USERNAME] -p \
--master-data=1 --flush-privileges --hex-blob --skip-triggers --ignore-table [VIEW_NAME1] [...] \
--default-character-set=utf8mb4 > [SQL_FILE].sql

Para ver mais informações sobre mysqldump, consulte a referência de mysqldump.

Como criar um arquivo CSV

Para criar um arquivo CSV a partir do servidor MySQL local:

mysql --host=[INSTANCE_IP] --user=[USER_NAME] --password [DATABASE] \
-e " SELECT * FROM [TABLE] INTO OUTFILE '[FILE_NAME]' CHARACTER SET 'utf8mb4'
     FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' "

A seguir

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

Enviar comentários sobre…

Cloud SQL para MySQL