Come afferma la domanda, sincronizza tutto dati da un server all'altro, penso che tu possa usare una soluzione relativamente semplice, che coinvolge mysqldump
.
Penso che tu possa fare tutto questo dal server dedicato:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
Sostituisci <username>
, <password>
, <port>
e <server 1 hostname>
con i dettagli di connessione per il server 1. Sostituisci con il nome del database sul server 1 che desideri copiare sul server 2. Se desideri copiare tutti i database, sostituisci con l'opzione --all-databases.
Questo creerà un file chiamato dump.sql
nella directory corrente. Puoi quindi caricarlo nel server 2:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
Sostituisci <username>
, <password>
, <port>
e <server 2 hostname>
con i dettagli di connessione per il server 2.
Questo prenderà il file dump.sql e lo caricherà nel database sul server 2. Ciò rilascerà il database sul server 2, quindi tutti i dati esistenti verranno sostituiti con quelli in dump.sql
.
Controlla le opzioni di mysqldump (riguardanti i database di rilascio, le tabelle di rilascio ecc.) E adatta i comandi sopra in modo che siano adatti alla tua situazione. Penso che, se colleghi le cose correttamente, potresti persino bypassare il file intermedio e connettere mysqldump sul server 1 a mysql sul server 2 usando un socket.
Per coprire la parte "automatizzata" di questa domanda, puoi eseguire i comandi precedenti sotto cron e programmarli per l'esecuzione il primo giorno di ogni mese a un'ora adeguata.