Normalerweise habe mysqldump
ich nach dem Dump einer MySQL-Datenbank mit dem Befehl sofort die resultierende Datei tar / gzip. Ich suche nach einer Möglichkeit, dies mit einem Befehl zu tun:
Also daraus:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Auf so etwas:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Oder noch besser (da ich normalerweise die Dump-Datei auf einen anderen Server scp'le):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Ich lasse Bash auf Debian laufen.
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
anstelle von Piping zu ssh verwenden. Sie sparen ein wenig am Verschlüsselungsaufwand von ssh, wenn es über ein sicheres Netzwerk übertragen wird (oder Sie sich nicht um die Sicherheit kümmern). Heutzutage könnten Sie auch in Betracht ziehen,xz
anstelle vongzip
.Wenn Sie dies lokal ausführen, verwenden Sie einfach den folgenden Befehl, um Ihre Datenbank zu sichern und mit gzip zu komprimieren:
(Bearbeiten: Feste -c-Taste)
quelle
gzip -c
, oder?Verwenden Sie eine Named Pipe.
Ich benutze es die ganze Zeit, es ist großartig.
http://en.wikipedia.org/wiki/Named_pipe
quelle
mkfifo mysql_pipe; gzip -9 -c < mysql_pipe > name_of_dump.gz &; mysqldump database > mysql_pipe; rm mysql_pipe
dort eine Zeile. Natürlich würde ich die Pfeife bei mir behalten und sie jedes Mal benutzen.Ich habe ein schnelles Skript geschrieben, um eine entfernte MySQL-Datenbank abzusaugen. Es verwendet MySQL-Komprimierung, GZIP und SSH-Komprimierung. Eine Multi-GB-Datenbank mit einer unglaublichen Geschwindigkeit abgesaugt.
Ein Nebeneffekt ist, dass kein freier Speicherplatz auf dem Quelldatenbankserver erforderlich ist. Sie können ihn daher zum Sichern einer Datenbank auf einem Server mit null freiem Speicherplatz verwenden, bevor Sie Ihre Daten bereinigen.
Hoffe es hilft jemandem.
quelle
Nutzen
pv
und Rate überwachen!Wenn Sie die Größe (3 GB) kennen, erhalten Sie eine genaue Schätzung:
quelle
Versuche dies:
Bitte nicht, dass ich in diesen Dingen in keiner Weise gut bin, ich habe nur 2 Optionen im Web zu einer kombiniert.
Auf andere Weise ist es vielleicht besser, aber dies ist ein Einzeiler, der für mich funktioniert.
Es muss jedoch
ssh.keys
installiert und akzeptiert werden, wenn Sie es in Skriptencrontab
oder ähnlichem verwenden möchten .quelle
Sie können tun, wie:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
z.B
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
quelle
Ich habe an diesem Bash-Skript gearbeitet , das versucht, alle guten Ratschläge zusammenzustellen, die ich gesehen habe, wenn es um das Dump / Restore mit MySQL geht. Es richtet sich an Remote-Operationen.
Konfigurieren Sie vars einfach neu und probieren Sie es aus. :)
Eigenschaften sind:
Was muss verbessert werden:
Ich teile dieses Skript hier in der Hoffnung, dass es von der Community verbessert werden kann. (am besten mit Nano oder einem anderen Editor, der den Code einfärbt)
--------------------------------- schneiden Sie hier --------------- -------------------
quelle
Sie können Ihr Passwort auch in einer Konfigurationsdatei speichern und diese Option verwenden --defaults-extra-file:
Die Konfigurationsdatei kann folgendermaßen aussehen:
quelle