mysqldump e mysqlpump
O mysqldump
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.
Confira abaixo as etapas para usar o mysqldump ou o mysqlpump para migrar um banco de dados para a Nuvem AWS:
-
Instale o MySQL Shell no servidor on-premises. Para obter instruções, consulte Installing MySQL Shell
ina documentação do MySQL. Isso instala tanto o mysqldump como o mysqlpump. -
Usando o mysqldump ou o mysqlpump, crie um backup do banco de dados on-premises de origem. Para obter instruções, consulte mysqldump
e mysqlpump na documentação do MySQL, ou consulte 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 . -
Mova o arquivo de backup para uma instância do EC2 na Nuvem AWS usando uma das seguintes abordagens:
Abordagem 3A: monte um sistema de arquivos Amazon FSx ou Amazon Elastic File System (Amazon EFS) no servidor on-premises que executa sua instância de banco de dados. Você pode usar o AWS Direct Connect ou a 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 a AWS CLI, o AWS SDK ou a API REST do Amazon S3 para mover diretamente o arquivo de backup do servidor on-premises para um bucket do S3. Se o bucket do S3 de destino estiver em uma Região da AWS distante do data center, você poderá usar o Amazon S3 Transfer Acceleration para transferir o arquivo mais rapidamente. Use o sistema de arquivos 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 para mover o arquivo de backup para um bucket do Amazon S3. Use o sistema de arquivos 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 neste guia.
-
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
na documentação do MySQL, ou consulte Restoring Data from Dump Files na documentação do MariaDB. -
(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 obter mais informações, consulte o seguinte:
-
Setting the replication source configuration
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 na documentação do Aurora
-
Using binlog replication in Amazon Aurora na documentação do Aurora
-
-
Para o Amazon RDS, consulte o seguinte:
-
Trabalhar com a replicação do MySQL na documentação do Amazon RDS
-
Trabalhar com a replicação do MariaDB na documentação do Amazon RDS
-
-
Para o Amazon EC2, consulte o seguinte:
-
Setting Up Binary Log File Position Based Replication
na documentação do MySQL -
Setting Up Replicas
na documentação do MySQL -
Setting Up Replication
na documentação do MariaDB
-
-
Vantagens
-
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
-
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 intenso processamento de E/S de disco 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_schemaousys. 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 TABLESPACEdo 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
-
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
suficientes para criar e restaurar o backup.