

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# mysqldump e mysqlpump
<a name="mysqldump-and-mysqlpump"></a>

O [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) e [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html) são ferramentas nativas de backup de banco de dados para MySQL. O MariaDB é compatível com o mysqldump, mas não com o mysqlpump. Ambas as ferramentas criam backups lógicos e fazem parte dos programas do cliente MySQL. O mysqldump é compatível com o processamento de thread único. O mysqlpump é compatível com o processamento paralelo de bancos de dados e objetos dentro de bancos de dados para acelerar o processo de despejo. Foi introduzido na versão 5.7.8 do MySQL. O mysqlpump foi removido na versão 8.4 do MySQL.

O diagrama a seguir mostra as etapas de alto nível envolvidas na migração de um banco de dados usando um arquivo de backup mysqldump ou mysqlpump.



![Diagrama de como migrar um arquivo de backup mysqldump ou mysqlpump e restaurá-lo em uma instância de banco de dados. AWS](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/migration-large-mysql-mariadb-databases/images/mysqldump-mysqlpump-migration-aws.png)


Confira abaixo as etapas para usar o mysqldump ou o mysqlpump para migrar um banco de dados para a Nuvem AWS:

1. Instale o MySQL Shell no servidor on-premises. Para obter instruções, consulte [Installing MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install-linux-quick.html) ina documentação do MySQL. Isso instala tanto o mysqldump como o mysqlpump.

1. Usando o mysqldump ou o mysqlpump, crie um backup do banco de dados on-premises de origem. Para obter instruções, consulte [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) e [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html) na documentação do MySQL, ou consulte [Making Backups with mysqldump](https://mariadb.com/kb/en/making-backups-with-mysqldump/) na documentação do MariaDB. Para obter mais informações sobre como invocar programas MySQL e especificar opções, consulte [Using MySQL programs](https://dev.mysql.com/doc/refman/8.0/en/programs-using.html).

1. Mova o arquivo de backup para uma instância do EC2 no Nuvem AWS usando uma das seguintes abordagens:

   **Abordagem** **3A** — Monte um sistema de arquivos [Amazon FSx](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-file-shares.html) [ou Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html) no servidor local que executa sua instância de banco de dados. Você pode usar AWS Direct Connect ou Site-to-Site VPN para estabelecer a conexão. Você pode fazer backup diretamente do banco de dados no compartilhamento de arquivos montado, ou pode realizar o backup em duas etapas, fazendo backup do banco de dados em um sistema de arquivos local e, em seguida, carregando-o no volume do FSx ou EFS montado. Em seguida, monte o sistema de arquivos Amazon FSx ou Amazon EFS, que também é montado no servidor on-premises, em uma instância do EC2.

   **Abordagem 3B** — Use o AWS CLI AWS SDK ou a API REST do Amazon S3 para mover diretamente o arquivo de backup do servidor local para um bucket do S3. Se o bucket do S3 de destino estiver em um Região da AWS local distante do data center, você poderá usar o [Amazon S3 Transfer Acceleration para transferir](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html) o arquivo mais rapidamente. Use o sistema de arquivos [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) para montar o bucket do S3 na instância do EC2.

   **Abordagem 3C**: instale o agente do AWS DataSync no data center on-premises e use o [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html) para mover o arquivo de backup para um bucket do Amazon S3. Use o sistema de arquivos [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) para montar o bucket do S3 na instância do EC2.
**nota**  
Você também pode usar o Gateway de Arquivos do Amazon S3 para transferir os grandes arquivos de backup do banco de dados para um bucket do S3 na Nuvem AWS. Para obter mais informações, consulte [Uso do Gateway de Arquivos do Amazon S3 para transferir arquivos de backup](amazon-s3-file-gateway.md) neste guia.

1. Use o método de restauração nativo para restaurar o backup no banco de dados de destino. Para obter instruções, consulte [Reloading SQL-Format Backups](https://dev.mysql.com/doc/refman/8.0/en/reloading-sql-format-dumps.html) na documentação do MySQL, ou consulte [Restoring Data from Dump Files](https://mariadb.com/kb/en/restoring-data-from-dump-files/) na documentação do MariaDB.

1. (Opcional) Você pode configurar a replicação entre o banco de dados de origem e a instância do banco de dados de destino. Você pode usar a replicação de log binário (binlog) para reduzir o tempo de inatividade. Para saber mais, consulte:
   + [Setting the replication source configuration](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) na documentação do MySQL
   + Para o Amazon Aurora, consulte o seguinte:
     + [Synchronizing the Amazon Aurora MySQL DB cluster with the MySQL database using replication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync) na documentação do Aurora
     + [Using binlog replication in Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html) na documentação do Aurora
   + Para o Amazon RDS, consulte o seguinte:
     + [Trabalhar com a replicação do MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.html) na documentação do Amazon RDS
     + [Trabalhar com a replicação do MariaDB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MariaDB.Replication.html) na documentação do Amazon RDS
   + Para o Amazon EC2, consulte o seguinte:
     + [Setting Up Binary Log File Position Based Replication](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto.html) na documentação do MySQL
     + [Setting Up Replicas](https://dev.mysql.com/doc/refman/8.0/en/replication-setup-replicas.html) na documentação do MySQL
     + [Setting Up Replication](https://mariadb.com/kb/en/setting-up-replication/) na documentação do MariaDB

## Vantagens
<a name="advantages-mysqlpump-mysqldump"></a>
+ O mysqldump e o mysqlpump estão incluídos na instalação do servidor MySQL
+ Os arquivos de backup gerados por essas ferramentas estão em um formato mais legível.
+ Antes de restaurar o arquivo de backup, você pode modificar o arquivo.sql resultante usando um editor de texto padrão.
+ Você pode fazer backup de uma tabela, banco de dados ou até mesmo de uma seleção de dados específica.
+ O mysqldump e o mysqlpump são independentes da arquitetura da máquina.

## Limitações
<a name="limitations-mysqlpump-mysqldump"></a>
+ O mysqldump é um processo de backup de thread único. A performance para realizar um backup é boa para bancos de dados pequenos, mas pode se tornar ineficiente quando o tamanho do backup é maior que 10 GB.
+ Os arquivos de backup em formato lógico são volumosos, especialmente quando salvos como texto, e geralmente demoram para criar e restaurar.
+ A restauração de dados pode ser lenta porque a reaplicação de instruções SQL na instância de banco de dados de destino envolve processamento intensivo de disco I/O e CPU para inserção, criação de índices e imposição de restrições de integridade referencial.
+ O utilitário mysqlpump não é compatível com as versões do MySQL anteriores à 5.7.8 ou com as versões 8.4 e posteriores.
+ Por padrão, o mysqlpump não faz backup dos bancos de dados do sistema, como `performance_schema` ou `sys`. Para fazer backup de parte do banco de dados do sistema, nomeie-o explicitamente na linha de comando.
+ O mysqldump não faz backup de instruções `CREATE TABLESPACE` do InnoDB.

**nota**  
Os backups das instruções CREATE TABLESPACE e dos bancos de dados do sistema são úteis somente quando você está restaurando backups do banco de dados MySQL ou MariaDB em uma instância do EC2. Esses backups não são usados para o Amazon RDS ou Aurora.

## Práticas recomendadas
<a name="best-practices-mysqlpump-mysqldump"></a>
+ Ao restaurar o backup do banco de dados, desabilite as verificações de chave, como `FOREIGN_KEY_CHECKS`, no nível da sessão no banco de dados de destino. Isso aumenta a velocidade de restauração.
+ Verifique se o usuário do banco de dados tem [privilégios](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html) suficientes para criar e restaurar o backup.