Os administradores de banco de dados e administradores de sistema devem fazer backups do banco de dados MySQL, e o utilitário mysqldump é a ferramenta mais comum usada para converter um banco de dados inteiro ou um único objeto em um arquivo de texto. Depois que o utilitário mysqldump cria um arquivo de backup, ele pode ser usado para restaurar dados para um servidor ou migrar dados para outro banco de dados.
O que é o mysqldump?
A ferramenta mysqldump é um utilitário de linha de comando incluído no MySQLpara usar na exportação de instruções SQL que podem reconstruir um banco de dados ou um subconjunto de objetos em um banco de dados. Ele pode ser usado para criar um backup de objetos e dados do banco de dados ou para transferir um banco de dados de um servidor para outro. Os administradores podem usar o mysqldump para exportar dados para um formato específico, como XML e CSV.
Como usar o mysqldump para fazer backup de uma única tabela
O utilitário mysqldump pode ser usado para exportar apenas tabelas específicas em um banco de dados. Por exemplo, suponha que você só queira exportar uma única tabela de cliente de um banco de dados de e-commerce. Os dados da tabela do cliente podem ser usados para enviar e-mails de marketing. O utilitário mysqldump exportará a tabela do cliente e seus dados para um arquivo de texto.
Observação: Para executar com sucesso qualquer comando no mysqldump, o nome de usuário usado para acessar o banco de dados deve ter as permissões adequadas para acessar objetos. Sem acesso, o comando não exportará nenhum esquema, objeto ou dados.
Você deve especificar o nome do banco de dados e da tabela para exportar com sucesso objetos para um arquivo de texto. Se você quiser verificar se tem o nome de tabela certo, primeiro certifique-se de que está autenticado no banco de dados com o qual deseja trabalhar. Em seguida, execute o seguinte comando SQL na linha de comando MySQL ou no aplicativo Workbench:
SHOW TABLES;
Depois de encontrar o nome certo da tabela, você pode exportá-la para um arquivo de texto. O comando a seguir exportará a tabela Cliente do banco de dados myDB para os arquivos clientes.sql:
mysqldump -u username -p password myDB Customer > customers.sql
Os termos “nome de usuário” e “senha” devem ser trocados por seu próprio nome de usuário e senha. Você pode exportar várias tabelas separando cada tabela com um caractere de espaço. O seguinte exportará as tabelas Cliente e Pedido para customers_orders.sql:
mysqldump -u username -p password myDB Customer Order > customers_orders.sql
Depois de exportar as instruções SQL para um arquivo, você pode abrir o arquivo SQL com um editor de texto padrão ou abri-lo com o MySQL Workbench. O MySQL Workbench é uma instalação separada do banco de dados MySQL, mas você pode baixá-lo gratuitamente no site MySQL. É melhor abri-lo com o Workbench, pois você pode executar as declarações e importar dados para o servidor de banco de dados MySQL de destino.
Exemplos do mysqldump
O utilitário mysqldump é usado principalmente para backups ou transferência de dados para outro servidor de banco de dados. Se você fizer um backup do banco de dados ou quiser transferir dados para outro servidor, o utilitário mysqldump funciona da mesma forma. Um uso comum para um backup do mysqldump é criar um ambiente de teste a partir do banco de dados de produção.
Para usar um banco de dados de produção para criar um ambiente de teste, você pode fazer um backup completo do banco de dados usando o utilitário mysqldump. O seguinte comando faz um backup de todo o seu banco de dados chamado myDB e o exporta para um arquivo chamado myDB.sql:
mysqldump -u username -p password -databases myDB > myDB.sql
Agora, faça login no seu servidor de teste. Ele também deve ter o MySQL instalado para que você possa importar os dados exportados. Observe que o comando de exportação usa o caractere “>” para mover dados de um banco de dados para um arquivo SQL. O processo de importação usa o caractere “<”. O seguinte comando importa todos os dados no arquivo myDB.sql para um ambiente de teste com o mesmo banco de dados chamado myDB:
mysqldump -u username -p password -databases myDB < myDB.sql
Com os dois comandos acima, você replica dados do banco de dados myDB original em produção para o ambiente de teste. O ambiente de teste dá aos desenvolvedores e às pessoas de garantia de qualidade a capacidade de trabalhar com dados do mundo real e uma estrutura de banco de dados que imita quaisquer problemas de clientes ou funcionários para solução de problemas.
Uso básico do mysqldump
O arquivo .sql criado durante um mysqldump é um arquivo de texto simples. Você pode abri-lo em qualquer editor de texto, mas é melhor abri-lo com o MySQL Workbench. Obtenha comandos de códigos de cores e tipos de dados, o que facilita a leitura dos comandos SQL.
Você pode abrir o arquivo .sql no Workbench usando o menu Arquivo. Clique em “Abrir script SQL” na caixa de diálogo e escolha o arquivo .sql que deseja ler. Com o arquivo .sql aberto, você pode lê-lo e executá-lo com o item de menu Arquivo “Executar script SQL”, se optar por executar os comandos. O Workbench é executado no Windows e no Linux para que você possa executar um script dessa forma em ambos os sistemas operacionais.
Você também pode executar um arquivo mysqldump no Windows e Linux usando o utilitário mysqldump. O comando a seguir executa as instruções SQL em um banco de dados MySQL no Windows e no Linux a partir do utilitário mysqldump:
mysqldump -u username -p password -databases myDB < myDB.sql
O comando acima importa dados do arquivo myDB.sql mysqldump e executa as instruções SQL no servidor de banco de dados local. O comando importa dados para o banco de dados myDB.
Se nenhum dado estiver presente no banco de dados ou em qualquer uma das tabelas do banco de dados, as estruturas do banco de dados ainda serão criadas e o banco de dados será adicionado ao esquema. As estruturas de tabela estão disponíveis para você adicionar dados a elas no futuro.
Uso avançado do mysqldump
Um banco de dados grande pode conter tabelas com terabytes de dados. Muitas exportações podem esgotar os recursos de armazenamento, mas você pode compactar cada arquivo para reduzir o espaço de armazenamento necessário para as exportações de dados do MySQL. Compactar um arquivo pode economizar vários gigabytes de espaço de armazenamento necessários para arquivos muito grandes. O seguinte comando mysqldump exporta o banco de dados myDB e o compacta usando o utilitário gzip para um arquivo chamado myDB.sql.gz:
mysqldump -u username -p password -databases myDB | gzip myDB.sql.gz
Os backups geralmente contêm dados confidenciais, portanto, criptografá-los é necessário para conformidade e proteção de dados. Você precisa de uma ferramenta de terceiros para criptografar dados. Neste exemplo, usaremos criptografia para criptografar o arquivo myDB.sql. Você precisa de uma chave (semelhante a uma senha) para criptografar um arquivo, mas deve se lembrar dessa chave para descriptografá-lo. O utilitário de criptografia solicitará que você insira uma chave quando criptografar o arquivo, ou você pode armazenar uma chave em um arquivo seguro onde ela pode ser reutilizada para criptografar e descriptografar um arquivo .sql.
No exemplo a seguir, o arquivo .sql exportado é criptografado usando uma chave armazenada no arquivo chamado mykey.key:
mysqldump -u username -p password -databases myDB | ccrypt -k mykey.key > myDB.sql.cpt
Observe que os dados são exportados para um arquivo .cpt. Esse arquivo .cpt é onde todos os dados criptografados são armazenados. Você precisa da mesma chave para descriptografar o arquivo. Você pode descriptografá-lo usando o seguinte comando:
cdecrypt -k mykey.key myDB.sql.cpt
A maioria dos bancos de dados contém mais de tabelas e dados. Também é necessário fazer backup de gatilhos e procedimentos. Por padrão, o utilitário mysqldump exporta disparadores com uma exportação padrão, mas os administradores podem dizer explicitamente ao comando para exportá-los. Os procedimentos não são exportados por padrão, portanto, os administradores devem exportá-los explicitamente. O comando a seguir exporta disparadores e procedimentos juntamente com outros objetos e dados do banco de dados:
mysqldump -u nome de usuário -p senha -databases myDB –triggers=true –routines=true > myDB.sql
Práticas recomendadas para mysqldump
Sempre que precisar usar o utilitário mysqldump, você pode usá-lo livremente sem interromper a produtividade. É especialmente útil quando você precisa fazer backups ou exportações frequentes do seu banco de dados e dos dados dele. Os backups devem ser feitos com frequência para que os dados possam ser recuperados em caso de falha do banco de dados, malware ou corrupção de dados.
A frequência dos backups depende da quantidade de dados que você adiciona a um banco de dados todos os dias e da frequência das alterações feitas no banco de dados. Geralmente, a frequência com que você usa o comando mysqldump depende da quantidade de dados que pode ser perdida sem causar um impacto negativo na receita e na continuidade de negócios. Nem sempre você precisa de um backup completo, mas algumas empresas usam o utilitário mysqldump uma vez por semana e outras o usam uma vez por dia. Determine a frequência de backups completos necessários para sua empresa e use ferramentas de automação para executar o mysqldump em um intervalo definido.
Conclusão
Gerenciar um banco de dados é um trabalho em tempo integral, mas o utilitário mysqldump torna o gerenciamento muito mais eficiente. Você pode usá-lo para backups completos de seus dados ou para transferir dados entre servidores. Ele é compatível com Windows ou Linux, para que você possa usá-lo em qualquer ambiente que hospede seu servidor MySQL.