Ich habe zwei identische MySQL-Datenbanken, eine auf einem internen Server und die andere auf einem Webhosting-Server. Ich möchte die Datenbank auf dem Webhost jeden Tag mit der Datenbank auf dem internen Server aktualisieren. Gibt es eine Möglichkeit, diesen Prozess zu automatisieren, auch wie kann ich dies manuell tun? Muss ich einen SQL-Speicherauszug der Datenbank auf dem internen Server abrufen und dann in die Datenbank auf dem Webhost importieren, wenn ich es manuell ausführen möchte? Kann mir bitte jemand einen Rat geben.
19
Antworten:
Sie haben einige Möglichkeiten:
Richten Sie die MySQL-Replikation zwischen den Servern ein. Ihr interner Server kann als Master und der Webhost-Server als Slave fungieren. Alle auf dem Master durchgeführten Aktualisierungen werden sofort auf den Slave repliziert (sofern eine funktionierende Verbindung besteht). Dies ist höchstwahrscheinlich die einfachste und effektivste Option. Zur Verwendung der Replikation muss Ihre interne Datenbank über das Netzwerk vom Webhost aus zugänglich sein.
Weitere Informationen zur Replikation finden Sie hier .
Sie können jeden Tag einen mysqldump auf dem internen Server ausführen, die Dump-Datei auf den Webhost hochladen und die Daten importieren. Da dies ein vollständiger Speicherauszug ist, ist dies bei einer sehr großen Datenbank möglicherweise nicht möglich. Wenn Sie möchten, kann dieses Verfahren möglicherweise als Skript ausgeführt werden, um zu vermeiden, dass Sie es manuell ausführen müssen.
Sie können die binäre Protokollierung auf dem internen Server einrichten . Anschließend können Sie die Binärprotokolle an den Webhost senden und auf die Datenbank anwenden, um alle Transaktionen, die an diesem Tag aufgetreten sind, effektiv auf dem Webserver abzuspielen. Tatsächlich geschieht dies sowieso bei der Replikation, sodass Sie fast immer die eingerichtete Replikation anstelle dieser Option verwenden würden.
Wenn keine Verbindung zwischen den beiden Datenbanken besteht, ist es am einfachsten, jeden Tag mysqldumps zu verwenden.
quelle
Sie können auch Optionen wie symmetricDS verwenden, um zwei Datenbanken zu synchronisieren. Auf diese Weise können Sie die zu synchronisierenden Tabellen auswählen und so Internetbandbreite sparen. Dies ist auch für das Szenario geeignet, in dem keine Verbindung zwischen zwei Standorten besteht.
quelle
So richten Sie die Datenbankreplikation mit MariaDB ein: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/
quelle
Sie könnten Navicat verwenden . Es ist in erster Linie ein Datenbankmanager, verfügt jedoch über Datenübertragungs- und Datensynchronisationsfunktionen sowie einen Planer, mit dem Sie automatisieren können. Es ist nicht kostenlos, aber es gibt eine 30-fache Testversion.
quelle