Como fazer backup do banco de dados mysql ao vivo?
772
Tenho banco de dados MySQL InnoDB de 12 GB com cerca de 800 consultas por segundo. Assim que eu começo 'mysqldump' para fazer backup, começo a receber '503' no meu site.
Como faço backup do meu banco de dados ativo sem afetar o desempenho do site?
Ele permite um instantâneo pontual dos dados. Uma vez iniciado o mysqldump, todas as tabelas InnoDB serão congeladas no tempo. Suponha que você inicie o mysqldump às 14h30 e termine às 15h. Todas as tabelas InnoDB despejadas serão a partir das 14h30. Todas as outras alterações (INSERTs, UPDATEs, DELETEs) continuarão com interrupção e não serão incluídas no dump.
MyISAM interferiria com o backup pontual se as tabelas MyISAM estivessem sendo atualizadas por INSERTs, UPDATEs ou DELETEs. Se as tabelas MyISAM fossem apenas para leituras, --single-transaction ainda estaria bem.
SUGESTÃO
Se você tiver o MySQL Replication configurado, você pode acessar o Slave e executar este
mysql -uroot -p... -ANe"STOP SLAVE"
mysqldump -uroot -p --single-transaction databasename > dump.sql
mysql -uroot -p... -ANe"START SLAVE"
O Mestre não saberia de nenhum backup acontecendo.
tente o seguinte comando, pois o tamanho do banco de dados não é pequeno:
Você precisa usar a ferramenta Percona XtraBackup. Ele funciona como um encanto para grandes conjuntos de dados e não interrompe as operações do MySQL. http://www.percona.com/doc/percona-xtrabackup/2.2/innobackupex/creating_a_backup_ibk.html Existem alguns truques, mas vale a pena.
Você deve usar o Percona Toolkit para fazer backup do banco de dados para evitar o bloqueio do banco de dados:
Você precisa de espaço em disco suficiente em
/tmp
. Depois de terminar, você pode copiar o diretório inteiro para outro servidor.Em
xtrabackup_binlog_info
, há informações de replicação. (é útil se você precisar configurar a replicação escrava)Você deve usar a opção --single-transaction
Ele permite um instantâneo pontual dos dados. Uma vez iniciado o mysqldump, todas as tabelas InnoDB serão congeladas no tempo. Suponha que você inicie o mysqldump às 14h30 e termine às 15h. Todas as tabelas InnoDB despejadas serão a partir das 14h30. Todas as outras alterações (INSERTs, UPDATEs, DELETEs) continuarão com interrupção e não serão incluídas no dump.
MyISAM interferiria com o backup pontual se as tabelas MyISAM estivessem sendo atualizadas por INSERTs, UPDATEs ou DELETEs. Se as tabelas MyISAM fossem apenas para leituras, --single-transaction ainda estaria bem.
SUGESTÃO
Se você tiver o MySQL Replication configurado, você pode acessar o Slave e executar este
O Mestre não saberia de nenhum backup acontecendo.