terça-feira, 16 de outubro de 2012

Mysqldump escolhendo as tabelas dentro do banco pra backup

   Aqui vou fazer um comando pra que vc aprenda a fazer uma segmentação do backup, fazendo que vc escolha qual as tabelas mais importantes pra fazer backup, pra que os backup não fiquem muito grandes.
   Vamos supor que eu tenha 10 tabelas no meu banco de dados, mas queira fazer backup só da tabela 1,2,3, vamos lá.

SINTAXE:
MYSQLDUMP -u usuario -p senha base de dados tabela1 tabela2 tabela3 >nome do arquivo.sql

COMANDO:
MYSQLDUMP -u root -p123 livros tabela1 tabela2 tabela3 >backup.sql

Observando que entre as tabelas 1,2,3 tem uma espaço entre elas OK!

Bom, nessa segunda parte, vou somente listar as variações para manipular backup's com o MySQLDUMP, utilizando o prompt (Windows) ou terminal (Unix-Like).


shell> mysqldump -u <usuario> -p<senha> --add-drop-table <nome_banco> > <nome_arquivo.sql>

Instrui o mysqldump a preceder a inserção em cada tabela com uma declaração DROP TABLE que apaga a tabela. Esta opção assegura que a operação de recarga remova qualquer cópia pré-existente da tabela antes de recriá-la.


shell> mysqldump -u <usuario> -p<senha> --all <nome_banco> > <nome_arquivo.sql>

(--all ou -a) Instrui o mysqldump a produzir declarações CREATE TABLE que incluam todas as opções específicas do MySQL (como o tipo de storage engine e comentários) com as quais cada tabela foi criada. Por padrão, o mysqldump não incluir todas essas opções, resultando em arquivos que poderiam ser mais portáveis para serem carregados com um SGBD que não seja o MySQL.


shell> mysqldump -u <usuario> -p<senha> --extended-insert <nome_banco> > <nome_arquivo.sql>

(--extended_insert ou --e) Por padrão, os dados são copiados para o arquivo de dump comINSERTs separados, o que seria natural e manteria o arquivo mais portável. Esta opção, produzINSERTs de múltiplas linhas e adiciona diversas linhas na tabela de cada vez. Declarções de múltiplas linhas podem ser carregadas com mais eficiência, embora sejam menos legíveis que declarações de uma única linha se você examinar a saída da carga. Menos portáveis, esse é o maior problema.


shell> mysqldump -u <usuario> -p<senha> --no-create <nome_banco> > <nome_arquivo.sql>

(--no-create ou -t) Geralmente, o mysql adiciona uma linha no início do arquivo de backup que éCREATE DATABASE. Com esta opção, você solicita ao mysqldump que não inclua no arquivo esta opção. Observe que a presença desta linha não será problema algum, pois, a mesma inclue, além do CREATE DATABASE os comandos IF NOT EXISTS, ou seja, caso seu banco de dados já se encontre criado, ele não será apagado nem criado novamente.



4 comentários:

  1. Tem como utilizar mysqldump excluindo uma tabela, é que tenho um banco de dados com muitas tabelas e não quero fazer backup apenas de uma tabela, no exemplo acima é possível porem tenho que digitar todas as tabelas.

    ResponderExcluir
  2. Tem como utilizar mysqldump excluindo uma tabela, é que tenho um banco de dados com muitas tabelas e não quero fazer backup apenas de uma tabela, no exemplo acima é possível porem tenho que digitar todas as tabelas.

    ResponderExcluir
  3. Para quem estiver com duvida sobre a pergunta do amigo Douglas acima vai o link explicando como fazer.

    http://aquicode.blogspot.com.br/2014/07/excluindo-tabelas-do-mysqldump.html

    ResponderExcluir
  4. Olá! Tenho uma dúvida quando ao MySQLdump... Existe algum argumento que passamos para ELIMINAR os comentários gerados no arquivo SQL?

    ResponderExcluir