Habituellement, après avoir sauvegardé une base de données MySQL avec la mysqldump
commande, j'ai immédiatement tar / gzip le fichier résultant. Je cherche un moyen de faire cela en une seule commande:
Donc de ceci:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Pour quelque chose comme ça:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Ou même mieux (puisque je transfère habituellement le fichier de vidage sur un autre serveur):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Je cours bash sur debian.
mysqldump | tar cf - | gzip -c | ssh ... 'cat > file.tgz'
mysqldump --opt <database> | gzip -c | cat > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
gzip -c > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
netcat
au lieu de piping to ssh. Vous économiserez un peu sur la surcharge de cryptage de SSH, si celle-ci est transférée sur un réseau sécurisé (ou si vous ne vous souciez pas de la sécurité). De nos jours, vous pouvez également envisager d'utiliserxz
au lieu degzip
.Si vous utilisez ceci localement, utilisez la commande suivante pour sauvegarder votre base de données et compressez-la à l'aide de gzip:
(Edit: clé -c fixe)
la source
gzip -c
, non?Utilisez un tuyau nommé.
Je l'utilise tout le temps, c'est génial.
http://en.wikipedia.org/wiki/Named_pipe
la source
mkfifo mysql_pipe; gzip -9 -c < mysql_pipe > name_of_dump.gz &; mysqldump database > mysql_pipe; rm mysql_pipe
là, une ligne. Bien sûr, je garderais le tuyau et l’utiliserais à chaque fois.J'ai écrit un script rapide pour aspirer une base de données mysql distante. Il utilise la compression mysql, gzip et ssh. Aspiré une base de données multi Go à un rythme incroyable.
Un autre avantage est qu'il ne nécessite aucun espace libre sur le serveur de base de données source. Vous pouvez donc l'utiliser pour sauvegarder une base de données sur un serveur sans espace disque libre avant de procéder à l'élagage de vos données.
J'espère que ça aide quelqu'un.
la source
Utilisez
pv
et surveillez le taux!Ou, si vous connaissez la taille (3 Go), obtenez une estimation précise:
la source
Essaye ça:
S'il vous plaît, pas que je ne suis en aucune façon bon à ces choses, je viens de combiner 2 options sur le Web en une seule.
Cela pourrait très bien être mieux d’une autre manière, mais c’est un modèle unique qui fonctionne pour moi.
Toutefois, il doit
ssh.keys
être installé et accepté si vous souhaitez l’utiliser dans des scriptscrontab
ou similaires.la source
Vous pouvez faire comme:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
par exemple
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
la source
J'ai travaillé sur ce script bash ci-dessous qui tente de rassembler tous les bons conseils que j'ai vus en matière de vidage / restauration avec mysql. Il est destiné aux opérations à distance.
Il suffit de reconfigurer les serveurs et d’essayer. :)
Les caractéristiques sont:
Ce qui a besoin d'amélioration:
Je partage ce script ici en espérant qu'il puisse être amélioré par la communauté. (mieux visualisé avec nano ou un autre éditeur qui colore le code)
--------------------------------- couper ici --------------- -------------------
la source
Vous pouvez également stocker votre mot de passe dans un fichier de configuration et utiliser cette option --defaults-extra-file:
Le fichier de configuration peut ressembler à ceci:
la source