Einfache Frage zur Verwendung von mysqldump

2165
morpheous

Ich habe eine LAMP-Website mit MySQL-Backend mit InnoDb-Engine für Tabellen

Ich möchte in der Lage sein, mysqldump zu verwenden, um periodische Dumps der Datenbank zu erstellen - OHNE den mysql-Server für die Dauer der Sicherung zu stoppen (dh die Website herunterzufahren).

Ich bin überrascht, dass ich diese Informationen nirgends finden kann - auch nicht in der mySQL-Dokumentation. Über mysqlhotcopy wird viel gesprochen, aber das funktioniert nur für IMSAM-Tabellen - und ist daher für mich nicht interessant.

Weiß jemand, ob (wie?) Ich mysqldump verwenden kann, um eine Kopie / einen Speicherauszug einer Datenbank zu erstellen, die noch verwendet wird?

Ein Link zur offiziellen Dokumentation wäre sehr nützlich, da ich sicherstellen möchte, dass ich dies absolut richtig mache.

Ich arbeite mit Ubuntu 10.0.4 LTS

0

4 Antworten auf die Frage

1
Janne Pikkarainen

Normalerweise wird dazu eine Slave-Instanz von MySQL eingerichtet und die Sicherung von dort ausgeführt. Sie benötigen nicht unbedingt einen separaten physischen Server für den Slave MySQL, es ist absolut in Ordnung, ihn auf demselben Server auszuführen (wenn Sie über den Festplattenspeicher und etwas Speicher verfügen), wäre dies auf der CPU-Seite ein überwiegend untätiger MySQL-Slave nicht viel schaden)

BEARBEITEN :: Die offiziellen Links zu den MySQL-Replikationsdokumenten wurden hinzugefügt.

Ausführliche Informationen zur MySQL-Replikation: http://dev.mysql.com/doc/refman/5.1/de/replication.html

Anleitung zum Replikations-Setup: http://dev.mysql.com/doc/refman/5.1/de/replication-howto.html

Janne: Hast du eine URL, die zeigt, wie das geht? Seit meinem ersten Mal würde ich lieber eine Reihe von Anweisungen verwenden, die "erprobt und getestet" wurden, anstatt zu versuchen, etwas zusammenzustellen. Da erfolgreiches Backup / Restore so wichtig ist. morpheous vor 14 Jahren 0
morpheous: Sicher. Ich hoffe, dass die eigene Dokumentation von MySQL ausreichend getestet ist. Ich habe meine vorherige Antwort bearbeitet. Janne Pikkarainen vor 14 Jahren 0
1
Remy

Ich stimme mit Janne überein. Die Replikation ist der übliche Weg, Dinge zu tun. Sie können aber auch MySqlDumb verwenden. Sie müssen dafür die DB nicht ausschalten. Es wird nur für eine Weile ein wenig nicht reagieren. Hängt davon ab, welche Art von App und wie viele Daten Sie haben.

http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

0
ice cream

Ich verwende eine modifizierte Version des hier gefundenen Skripts:

http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/

(Ich habe einfach einige der Zeilen entfernt, mit denen Berechtigungen für die Sicherungsverzeichnisse erstellt und festgelegt werden.)

Es funktioniert ziemlich gut für mich auf einem Live-Ubuntu-Webserver

0
Alex Angelico

Sie müssen die Datenbank nicht herunterfahren, um MySQL Dump verwenden zu können. Dieses Skript wird von Windows verwendet

@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 

Wenn Sie dies direkt ausführen möchten, verwenden Sie einfach

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

Und wird nach dem Passwort fragen. In diesem Beispiel mache ich nur einige Talbes (1 bis 3), aber Sie können alles sichern. Es gibt viele verschiedene Möglichkeiten. Für die Wiederherstellung lautet die Batchdatei:

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

Oder nur

mysql.exe" -u root -p -h localhost mydatabase < datadump.sql