Servidor MySQL de backup

13

Qual é a melhor maneira de fazer backup de um servidor MySQL? Eu gostaria de um método que não exija derrubar o servidor. É algo como o backup a quente do InnoDB necessário, ou posso apenas usar as ferramentas de backup fornecidas nas ferramentas do MySQL Administrator. Que vantagens um oferece sobre o outro?

Kibbee
fonte

Respostas:

12

Usamos o mysqldump, que funciona enquanto o MySQL está em execução. Começamos a usar o mysqldump porque era mais fácil de configurar quando nossas necessidades eram pequenas e parecia atender a essas necessidades. Nossos bancos de dados cresceram desde então, mas ainda não superamos o mysqldump. A adequação a você dependerá do tamanho dos seus bancos de dados, da carga operacional usual e provavelmente de várias outras coisas.

TimB
fonte
O mysqldump é ótimo. Diferentemente dos dumps binários de alguns outros RDMSs, por padrão os arquivos que o mysqldump gera são arquivos de texto com comandos sql completos - principalmente instruções CREATE TABLE e INSERTs para as linhas. Como arquivos de texto simples, eles podem ser manipulados, compactados ou criptografados facilmente.
Nedm 14/05/09
3
O mysqldump falha quando você possui grandes bancos de dados e / ou quando confia no MyISAM. Temos alguns bancos de dados 400G com muitos índices que precisam ser reconstruídos ao importar o dump, para que uma recuperação do backup leve dias em árvore. O instantâneo LVM oferece um tempo de recuperação muito melhor quando você supera o mysqldump.
Nils-Anders Nøttseter
4

dê uma olhada no xtrabackup da percona - é uma alternativa interessante de código aberto ao mysqlhotcopy para bancos de dados innodb.

você pode ler mais sobre isso aqui

pQd
fonte
3

O mysqldump pode ser usado, mas não garante um conjunto de dados consistente , a menos que você bloqueie todas as tabelas durante o despejo. Isso colocará o banco de dados no modo somente leitura , mas garantirá que o despejo seja consistente.

Você pode bloquear as tabelas com o comando:

FLUSH TABLES WITH READ LOCK;

E quando terminar, você pode liberar a trava com:

UNLOCK TABLES;
Brent
fonte
7
mysqldump --single transação irá assegurar um instantâneo consistente
Dave Cheney
5
- Única transação só funciona quando todas as suas tabelas são InnoDB. As tabelas MyISAM não suportam transações.
Nils-Anders Nøttseter 23/05/09
2

Configure a replicação do MySQL . Como bônus, você obtém um servidor para executar trabalhos pesados ​​de relatórios e mysqldump sem afetar o banco de dados principal de produção.

Dave Cheney
fonte
Lembre-se de que a replicação pode estar atrasada e, portanto, não necessariamente um backup point-in-time do seu mestre.
2
Replicação não é backup. Se você acidentalmente excluir algo no mestre, o escravo também o excluirá. O escravo é bom para usar o mysqldump no entanto, porque não afetará o servidor de produção (como Dave mencionou).
Martijn Heemels
0

A maneira mais fácil é simplesmente usar o comando mysqldump .

WerkkreW
fonte
0

Há também uma ferramenta chamada mysqlhotcopy, que eu olhei de uma vez e achei que tinha muitas promessas - mas nunca a usei.

Brent
fonte