Zgodnie z pytaniem, aby zsynchronizować wszystkie dane z jednego serwera na drugi, myślę, że możesz użyć stosunkowo prostego rozwiązania, obejmującego mysqldump
.
Myślę, że możesz to wszystko zrobić z serwera dedykowanego:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
Zastąp
szczegółami połączenia z serwerem 1. Zastąp nazwą bazy danych na serwerze 1, którą chcesz skopiować na serwer 2. Jeśli chcesz skopiować całą bazę danych, zastąp ją opcją --all-databases.
Utworzy to plik o nazwie dump.sql
w bieżącym katalogu. Następnie możesz załadować to na serwer 2:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
Zastąp
ze szczegółami połączenia dla serwera 2.
Spowoduje to pobranie pliku dump.sql i załadowanie go do bazy danych na serwerze 2. Spowoduje to usunięcie bazy danych na serwerze 2 - więc wszystkie istniejące dane zostaną zastąpione tymi z dump.sql
.
Sprawdź opcje mysqldump (dotyczące baz danych, tabel upuszczania itp.) i dostosuj powyższe polecenia tak, aby pasowały do Twojej sytuacji. Myślę, że jeśli podłączysz wszystko poprawnie, możesz nawet ominąć plik pośredni i połączyć mysqldump na serwerze 1 z mysql na serwerze 2 za pomocą gniazda.
Aby objąć „zautomatyzowaną” część tego pytania, możesz uruchomić powyższe polecenia w cron i zaplanować ich uruchamianie pierwszego dnia każdego miesiąca o odpowiedniej godzinie.