2009-08-24 5 views
0

Ich habe eine Test-Datenbank auf einem separaten Remote-Server als meine Produktions-DB. Hin und wieder versuche ich, Dinge zu testen, indem ich eine Kopie meiner Produktions-DB in meine Testdatenbank hochlade. Leider ist die Backup-Datei jetzt ein halbes Gig und ich habe Probleme, sie per FTP oder SSH zu übertragen. Gibt es eine einfache Möglichkeit, dass ich den mysql Restore-Befehl zwischen Servern verwenden kann? Gibt es eine andere Möglichkeit, große Dateien zu verschieben, die ich nicht in Betracht ziehe? Ein halber Gig scheint nicht so groß zu sein, ich würde mir vorstellen, dass Leute häufig auf dieses Problem stoßen.mysql Wiederherstellung für Dateien auf einem anderen Server

Danke!

Antwort

1

Sind die Server füreinander zugänglich?

Wenn dies der Fall ist, können Sie die Daten einfach von einer Datenbank zur anderen leiten, ohne eine Datei zu verwenden.

Beispiel: mysqldump [Optionen] | mysql -h test -u benutzername -ppasswd

0

Mit Mysql können Sie eine Verbindung zu einem entfernten Datenbankserver herstellen, um SQL-Befehle auszuführen. Mit dieser Funktion können wir die Ausgabe von mysqldump pipen und mysql bitten, sich mit dem entfernten Datenbankserver zu verbinden, um die neue Datenbank zu füllen.

mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
1

0.Please überlegen, ob Sie wirklich Produktionsdaten benötigen (vor allem, wenn es einige sensible Informationen enthält)

1. Die einfachste Lösung ist die Sicherung auf dem Quellserver (in der Regel gzip) zu komprimieren, Transfer es über die Leitung, dann dekomprimieren Sie auf dem Zielserver.

http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/

2. Wenn Sie nicht brauchen, um die genaue Nachbildung von Produktionsdaten (zB Sie nicht einige Anwendungsprotokolle benötigen, Fehler, einige andere Technik) können Sie prüfen Erstellen eines Backups und Wiederherstellung auf ein Quellserver auf einen anderen DB-Namen, löschen Sie alle unnötigen Daten und nehmen Sie dann ein Backup, das Sie verwenden.

3. Stellen Sie die vollständige Sicherung einmal auf Ihrem Referenzserver in Ihrer Entwicklungsumgebung wieder her und kopieren Sie dann nur Transaktionsprotokolle (um sie auf dem Referenzserver wiederzugeben). Je nach Verwendungsmuster benötigen Transaktionsprotokolle viel weniger Platz als die gesamte Datenbank.

0

Verwenden Sie eine effiziente Übertragungsmethode statt ftp.

Wenn Sie eine von mysqldump erstellte Dump-Datei auf dem Test-Db-Server haben und diese regelmäßig aktualisieren. Ich denke, Sie könnten Zeit sparen (wenn nicht Speicherplatz), indem Sie Rsync verwenden, um es zu übertragen. Rsync wird ssh verwenden und Daten für die Übertragung komprimieren, aber ich denke, sowohl die lokalen als auch die entfernten Dateien sollten unkomprimiert sein.

Rsync überträgt nur den geänderten Teil einer Datei.

Es kann einige Zeit dauern, um zu entscheiden, was genau in einer Speicherabbilddatei geändert wurde, aber die Übertragung sollte schnell erfolgen.

Ich muss zugeben, ich habe es noch nie mit einer Halb-Gigabyte-Dump-Datei getan.

Verwandte Themen