Sincronizza due database MySQL in due posizioni diverse


19

Ho due database MySQL identici uno in un server interno e l'altro in un server di web hosting. Voglio aggiornare il database sul web host ogni giorno con il database sul server interno. C'è un modo per automatizzare questo processo anche come posso farlo manualmente? Se devo farlo manualmente, è necessario che ottenga un dump SQL del database sul server interno e quindi lo importi sul database sull'host web? Qualcuno può consigliare per favore.


Puoi fare riferimento alla risposta esistente pubblicata qui in StackOverflow stackoverflow.com/questions/52583/…
Mahesh Patil,

circa # 2 se eseguo il dump completo da interno e lo importazione in produzione, sovrascriverei il database online, intendo dire che ho acquirenti online su web database ospitati e voglio migrare gli acquisti del database interno in live, puoi chiarire BTW cosa capita di aumenti automatici tra due se entrambi si riservavano lo stesso ID, sarà un disastro!
Shareef,

Risposte:


20

Hai alcune opzioni:

  1. Imposta la replica di MySQL tra i server. Il server interno può fungere da master e il server host Web come slave. Eventuali aggiornamenti eseguiti sul Master verranno replicati immediatamente sullo slave (presupponendo una connessione funzionante). Questa sarà probabilmente l'opzione più semplice ed efficace da scegliere. Per utilizzare la replica, il database interno dovrebbe essere accessibile in rete dall'host web.

    Puoi leggere di più sulla replica qui .

  2. Ogni giorno, è possibile eseguire un mysqldump sul server interno, caricare il file di dump sull'host Web e importare i dati. Poiché si tratta di un dump completo, se si dispone di un database molto grande, questo potrebbe non essere fattibile. Se lo desideri, questa procedura potrebbe essere potenzialmente copiata da script per evitare di doverlo fare manualmente.

  3. È possibile impostare la registrazione binaria sul server interno. È quindi possibile inviare i registri binari all'host Web e applicarli al database, riproducendo efficacemente tutte le transazioni avvenute quel giorno sul server Web. In effetti, questo è ciò che accade comunque con la replica, quindi quasi sempre andresti con la replica impostata invece di questa opzione.

Se non esiste alcuna connessione tra i due database, prendere mysqldumps ogni giorno sarà il percorso più semplice da intraprendere.


circa # 2 se eseguo il dump completo da interno e lo importazione in produzione, sovrascriverei il database online, intendo dire che ho acquirenti online su web database ospitati e voglio migrare gli acquisti del database interno in live, puoi chiarire BTW cosa capita di aumenti automatici tra due se entrambi si riservavano lo stesso ID, sarà un disastro!
Shareef,

4

Puoi anche usare opzioni come symmetricDS che possono aiutare a sincronizzare due database. Con questo sarai in grado di selezionare le tabelle che devono essere sincronizzate in questo modo in modo da poter risparmiare larghezza di banda Internet. Questo sarebbe adatto anche nello scenario in cui vi è mancanza di connettività tra due posizioni.


2

1
Benvenuti in DBA.SE. Apprezziamo il tuo contributo / partecipazione. Tuttavia, la comunità si aspetta una certa qualità nelle risposte pubblicate. Considera di leggere il seguente articolo: Come posso scrivere una buona risposta? (Centro assistenza) Nella sezione Rispondi alla domanda c'è una breve frase che recita: I collegamenti a risorse esterne sono incoraggiati, ma ti preghiamo di aggiungere un contesto al collegamento in modo che i tuoi compagni utenti abbiano qualche idea di cosa sia e perché sia ​​lì
John aka hot2use

0

Potresti usare Navicat . È principalmente un gestore di database, ma ha funzionalità di trasferimento e sincronizzazione dei dati e uno scheduler che consente di automatizzare. Non è gratuito ma esiste una versione di prova completa di 30 funzioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.