Normalmente, depois de despejar um banco de dados MySQL com mysqldump
o comando, eu imediatamente tar/gzip o arquivo resultante. Estou procurando uma maneira de fazer isso em um comando:
Então a partir disso:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Para algo assim:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Ou ainda melhor (já que geralmente estou enviando o arquivo de despejo para outro servidor):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Estou executando o bash no debian.
Você não pode usar tar em um pipe como este, e você não precisa dele de qualquer maneira, pois você está gerando apenas um único arquivo. tar só é útil se você tiver vários arquivos.
Se você estiver executando isso localmente, use o seguinte comando para fazer backup do seu banco de dados e compactá-lo usando gzip:
(Edit: tecla -c fixa)
Use um pipe nomeado.
Eu uso o tempo todo, é incrível.
http://en.wikipedia.org/wiki/Named_pipe
Eu escrevi um script rápido para sugar um banco de dados mysql remoto. Ele usa compactação mysql, compactação gzip e ssh. Sugou um banco de dados multi GB a uma taxa incrível.
Um benefício colateral é que ele não requer espaço livre no servidor de banco de dados de origem, portanto, você pode usá-lo para fazer backup de um banco de dados em um servidor com zero espaço livre em disco antes de remover seus dados.
Espero que ajude alguém.
Use
pv
e monitore a taxa!Ou, se você souber o tamanho (3 GB), obtenha uma estimativa precisa:
Tente isto:
Por favor, não que eu não seja bom nessas coisas, acabei de combinar 2 opções na web em uma.
Pode muito bem ser melhor de alguma outra forma, mas esta é uma frase que funciona para mim.
No entanto, ele precisa
ssh.keys
ser instalado e aceito se você quiser usá-lo em scriptscrontab
ou similares.Você pode fazer como:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
por exemplo
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
Eu tenho trabalhado neste script bash abaixo que tenta reunir todos os bons conselhos que vi quando se trata de despejar/restaurar com mysql. Destina-se a operações remotas.
Apenas reconfigure vars e experimente. :)
As características são:
O que precisa melhorar:
Compartilho este script aqui esperando que possa ser melhorado pela comunidade. (melhor visualizado com nano ou outro editor que colora o código)
--------------------------------- corte aqui --------------- -------------------
Você também pode armazenar sua senha em um arquivo de configuração e usar esta opção --defaults-extra-file:
O arquivo de configuração pode ficar assim: