O mysqldump é um utilitário que acompanha o pacote server do MySQL, e está localizado abaixo da pasta bin no diretório onde produto está instalado.
Como o nome sugere, é utilizado para realizar exportações de dados dos bancos, seja de uma tabela, de todas as tabelas de um banco ou até mesmo de todos os bancos da instância MySQL.
Abaixo mostrarei um procedimento simples de como utilizar esta ferramenta para gerar um backup completo de um banco de dados .
Neste exemplo, temos 3 bancos criados no ambiente:
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| tss-ofi |
| tss-tst |
+----------+
3 rows in set (0.00 sec)
Tomarei como base o banco tss-ofi.
Este é um procedimento que é executado online, sem a necessidade parar o banco para realizar a atividade.
Para manter a integridade relacional das tabelas, é recomendado que os serviços que utilizam o banco em questão sejam finalizados.
Pelo prompt de comando do sistema operacional, podemos utilizar a linha abaixo para criar o backup:
mysqldump -u root -psenhadoroot -e --databases tss-ofi -r C:\backup\tss-ofi.sql
Os parâmetros utilizados acima foram:
-u : Nome de login do usuário na instância, normalmente root.
-p: Senha do usuário. Neste parâmetro não utilize espaço para informar a senha.
-e: Gera o arquivo de saída com instruções de inserção mais compactas e mais rápidas para a importação posterior.
--databases: Lista dos bancos exportados. Serão exportados todos os objetos dos bancos especificados. Para exportar os dados de mais de um banco, informe os mesmos separados por espaço.
-r: Arquivo de resultado. É o .sql que será criado com as definições e dados do banco exportado.
Caso não seja possível parar os serviços que acessam o banco no momento, uma alternativa para garantir a integridade relacional entre as tabelas do banco no momento da exportação, é utilizar o parâmetro --lock-tables na linha de comando. Com isto, todas as tabelas do banco que está sendo exportado serão bloqueadas (com lock), e serão liberadas somente ao final do processo.
Como o resultado desta exportação é um arquivo com instruções SQL, para restaurar o mesmo basta importar/executar o arquivo no ambiente destino.
Utilizando os parâmetros acima, o arquivo .sql é gerado com a instrução para criar o banco no ambiente, com as mesmas características de onde foi exportado. Então não há necessidade de criar o banco no ambiente destino antes da importação. A sintaxe para a importação do arquivo é a seguinte (também executada pelo prompt de comando do sistema operacional):
mysql -u root -psenhadoroot < C:\backup\tss-ofi.sql
O mysqldump é bem flexível, utilizamos aqui somente alguns dos parâmetros possíveis. Recomendamos a leitura do manual, disponível no link abaixo, para verificar qual se aplica melhor em cada caso:
http://dev.mysql.com/doc/