Pergunta simples sobre o uso do mysqldump

0

Eu tenho um site LAMP com backend mysql com o mecanismo InnoDb para tabelas

Eu gostaria de poder usar o mysqldump para fazer descargas periódicas do banco de dados - SEM ter que parar o servidor mysql (ou seja, desligar o site) enquanto durar o backup.

Eu estou surpreso que eu não posso encontrar essa informação em qualquer lugar - nem mesmo na documentação do mySQL. Muita menção é feita sobre o mysqlhotcopy, mas isso só funciona para tabelas do IMSAM - e portanto não tem interesse / uso para mim.

Alguém sabe se (como?) eu posso usar o mysqldump para copiar / descarregar um banco de dados que ainda está sendo usado?.

Um link para a documentação oficial seria muito útil, já que eu quero ter certeza de que estou absolutamente certo.

Estou executando no Ubuntu 10.0.4 LTS

    
por morpheous 02.08.2010 / 09:44

4 respostas

1

A maneira usual de fazer isso é configurar uma instância escrava do MySQL e fazer o backup a partir daí. Você não precisa necessariamente de um servidor físico separado para o escravo MySQL, é perfeitamente correto executá-lo no mesmo servidor (se você tiver espaço em disco e alguma memória para ele; do lado da CPU, um escravo do MySQL ocioso não faz muito mal).

EDIT: : Adicionado os links oficiais do documento de replicação do MySQL.

Longa explicação sobre a replicação do MySQL: link

Como configurar a replicação: link

    
por 02.08.2010 / 09:48
1

Concordo com Janne, usar a replicação é a maneira usual de fazer as coisas. Mas você poderia simplesmente usar o MySqlDumb. Você não precisa desligar o DB para isso. Será apenas um pouco indiferente por um tempo. Depende do tipo de aplicativo e da quantidade de dados que você tem.

link

    
por 02.08.2010 / 10:23
0

Estou usando uma versão modificada do script encontrada aqui:

link

(eu simplesmente removi algumas das linhas que criam e definem permissões nos diretórios de backup)

Funciona muito bem para mim em um servidor web ubuntu ao vivo

    
por 02.08.2010 / 10:41
0

Você não precisa desligar o banco de dados para usar o MySQL Dump Este é um script que eu uso no Windows

@echo Dumping data...

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" --add-drop-table=true -h localhost -u root -ppassword mydatabase table1 table2 table3 1> %1

Se você quer rodar isso diretamente, apenas use

mysqldump.exe" --add-drop-table=true -h localhost -u root -p mydatabase table1 table2 table3 > datadump.sql

E vai pedir a senha. Neste exemplo, estou apenas fazendo backup de alguns álbuns (1 a 3), mas você pode fazer backup de tudo. Existem muitas opções diferentes. Para restaurar, o arquivo em lote é:

@echo Loading Data...
@"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -ppasword  -h localhost mydatabase 0< %1

Ou apenas

mysql.exe" -u root -p -h localhost mydatabase < datadump.sql
    
por 02.08.2010 / 20:02