Som spørgsmålet siger, skal du synkronisere alle data fra en server til en anden, tror jeg, du kan bruge en relativt simpel løsning, der involverer mysqldump
.
Jeg tror, du kan gøre alt dette fra den dedikerede server:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
Erstat
Dette vil lave en fil kaldet dump.sql
i den aktuelle mappe. Du kan derefter indlæse dette på server 2:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
Erstat
Dette vil tage dump.sql-filen og indlæse den i databasen på server 2. Dette vil droppe databasen på server 2 - så alle eksisterende data vil blive erstattet med dem i dump.sql
.
Tjek mulighederne for mysqldump (vedrørende drop-databaser, drop-tabeller osv.) og skræddersy ovenstående kommandoer, så de passer til din situation. Jeg tror, at hvis du tilslutter tingene korrekt, kan du endda omgå mellemfilen og forbinde mysqldump på server 1 til mysql på server 2 ved hjælp af en socket.
For at dække den 'automatiserede' del af dette spørgsmål kan du køre ovenstående kommandoer under cron og planlægge dem til at køre den første dag i hver måned på et passende tidspunkt.