2010-10-14 12 views
6

Ich muss wöchentlich eine große (3GB +/40+ Tabellen) lokale MySQL-Datenbank mit einer Server-Datenbank synchronisieren. Die beiden Datenbanken sind genau gleich. Die lokale DB wird ständig aktualisiert und jede Woche muss die Server-DB mit den lokalen Daten aktualisiert werden. Sie können es "gespiegelte DB" oder "Master/Master" nennen, aber ich bin mir nicht sicher, ob das korrekt ist.Sync große lokale DB mit Server DB (MySQL)

Im Moment existiert die DB nur lokal. Also:

1) Zuerst muss ich die DB von lokalen auf Server kopieren. Mit PHPMyAdmin ist der Export/Import aufgrund der DB-Größe und PHPMyAdmin-Grenzen nicht möglich. Das Exportieren der DB in eine gezippte Datei und das Hochladen über FTP wird wahrscheinlich wegen der Verbindung mit den Serverproblemen oder aufgrund der Begrenzung der Serverdateigröße in der Mitte der Übertragung unterbrochen. Jede Tabelle separat zu exportieren wird ein Schmerz sein und die Größe jeder Tabelle wird auch sehr groß sein. Also, was ist die bessere Lösung dafür?

2) Nachdem die lokale DB vollständig auf den Server hochgeladen wurde, muss ich die Server-DB wöchentlich aktualisieren. Was ist der bessere Weg, es zu tun?

Ich habe nie mit dieser Art von Szenario gearbeitet, ich kenne die verschiedenen Möglichkeiten nicht, um dies zu erreichen, und ich bin nicht stark mit SQL, also erklären Sie sich bitte so gut wie möglich.

Vielen Dank.

Antwort

3

This article sollten Sie beginnen.

Grundsätzlich erhalten Maatkit und verwenden Sie die Sync-Tools in ein Master-Master-Synchronisierung durchzuführen:

mk-table-sync --synctomaster h=serverName,D=databaseName,t=tableName 
2

Sie verwenden für mysql eine DataComparer kann. Passen Sie die Vorlagensynchronisierung an, die die Daten angibt, deren Tabellen synchronisiert werden sollen. Planen Sie ein wöchentliches Update für die Vorlage. Ich habe 2 Server täglich mit dbForge Data Comparer über die Befehlszeile synchronisiert.