Como faço backup de um banco de dados MySQL na linha de comando do CentOS?

3

Eu preciso fazer um back-up de um banco de dados no CentOS 5.5, executando o servidor MySQL a partir da linha de comando. Basicamente eu preciso exportar tudo nele.

    
por zozo 21.03.2011 / 13:40

3 respostas

4

mysqldump - leia a man page para detalhes.

Observe que pode levar algum tempo para gerar o arquivo de backup completo - se você quiser um backup consistente, considere a configuração de um escravo de replicação (e desative a replicação enquanto faz o backup).

    
por 21.03.2011 / 13:48
4

Se você tem um banco de dados grande que deseja manter on-line (ou seja, não bloquear a leitura) durante os backups, você também pode considerar o innobackupex que usa o xtrabackup do percona que suporta backups on-line do inno e do myisam (até certo grau de consistência)

A Zmanda tem um produto de gerenciamento ZRM que envolve a ferramenta mysqldump e combina um agendador e um agente de relatórios que é conveniente para o gerenciamento de tarefas agendadas e recuperação.

O xtrabackup manager também é uma ferramenta de linha de comando que envolve as invocações e gerencia o agendamento até certo ponto ... link

Há também holland , outro wrapper de backup mysql de linha de comando que suporta vários back-ends.

Seguindo em @symcbean, esta é a minha tentativa de obter um despejo de linha de comando consistente do sistema, com uma configuração mista de mecanismo myisam e innodb ... (isso obviamente fará com que seu banco de dados seja lido somente até que seja concluído, e quaisquer consultas INSERT / UPDATE / DELETE serão bloqueadas, etc.)

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

#--single-transaction is only useful if all the tables are innodb
SYSTEM mysqldump --lock-all-tables --quick --all-databases > all-databases.sql

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

as ressalvas são que o GLOBAL read_only não respeita os usuários root, então se você rodar seus web apps como root então você teria que ter certeza que eles foram parados também.

também se o seu sistema de arquivos é xfs, ou no LVM você pode usar as ferramentas fs nativas para obter um bloqueio READ no nível fs que elimina o requisito de bloqueio no nível do banco de dados. por exemplo, para xfs;

SYSTEM xfs_freeze

e para o lvm existe o dmsetup.

    
por 27.02.2012 / 00:25
1

Use mylvmbackup para obter instantâneos do sistema de arquivos ou (se o banco de dados for pequeno) mysqldump para obter um dump SQL. Eu não recomendo mysqldump para grandes conjuntos de dados.

Além disso, o mysqlhotcopy é perfeito para o MyISAM.

Para o InnoDB, tente Hot-Backup , mas custa.

    
por 21.03.2011 / 13:48