Pode executar o utilitário mysqldump diretamente na sua base de dados do MySQL, usando as opções que precisar. No entanto, se estiver a exportar para importar os dados para uma base de dados do Cloud SQL, use o utilitário mysqldump com as seguintes flags:
--databasesEspecifique uma lista explícita de bases de dados a exportar. Esta lista não pode conter as bases de dados do sistema (sys,mysql,performance_schemaeinformation_schema).--hex-blobSe a sua base de dados contiver campos binários, tem de usar esta flag para garantir que os campos binários são importados corretamente.--single-transactionInicia uma transação antes da execução. Em vez de bloquear toda a base de dados, isto permite que o mysqldump leia a base de dados no estado atual, o que resulta numa descarga de dados consistente.--routinesPara incluir procedimentos e funções armazenados.Quando usar a versão
mysqldump8 ou posterior para exportar versões de bases de dados MySQL anteriores à versão 8:--column-statistics=0Esta flag remove a tabela COLUMN_STATISTICS da exportação da base de dados para evitar o erro
Unknown table 'COLUMN_STATISTICS' in information_schema (1109). Para mais informações, consulte o artigo Diagnostique problemas.
Também recomendamos que use as seguintes flags:
--no-autocommit--default-character-set=utf8mb4--master-data
Numa máquina com conetividade de rede ao seu servidor MySQL, execute o seguinte comando:
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--master-data=1 \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
Se a origem da migração for um serviço de base de dados relacional (RDS) para MySQL:
- A propriedade
master-datanão é suportada. - Se o servidor da base de dados de origem suportar GTID, use a propriedade
--set-gtid-purged=on; caso contrário, não use esta propriedade. - Se estiver a usar uma descarga manual para migrar os seus dados, faça a migração com o GTID ativado.
Este comando pode ter o seguinte aspeto:
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--set-gtid-purged=on \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
Além disso, deve configurar as instâncias do RDS para reter os binlogs durante mais tempo. Este comando pode ter o seguinte aspeto:
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
Substitua [PROPERTIES_IN_BRACKETS] pelos seguintes valores:
| Propriedade | Valor |
| [SOURCE_ADDR] | O endereço IPv4 ou o nome de anfitrião do servidor de base de dados de origem. |
| [SOURCE_PORT] | A porta do servidor de base de dados de origem. |
| [USERNAME] | A conta de utilizador do MySQL. |
| [DBS] | Uma lista separada por espaços das bases de dados no servidor de bases de dados de origem a incluir na captura. Use o comando SHOW DATABASES MySQL para
listar as suas bases de dados. |
| [BUCKET_NAME] | O contentor no Cloud Storage criado pelo utilizador e usado para armazenar o ficheiro de despejo (por exemplo, replica-bucket). |
| [DUMP_FILENAME] | O nome do ficheiro do despejo, que termina com uma extensão de ficheiro .gz (por exemplo, source-database.sql.gz). |