|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1135
|
[MYSQL] Sincronizzazione database
io ho 2 database mysql, uno definito come master e uno come slave: le operazione di insert update delete vengono fatte sul database master.. ora vorre iche le modifiche fatte sul db master vengono i nautomatico fatte anche sul db slave senza che io debba fare insert pure su questo.
E' possibile? NapalM |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1135
|
Spiego meglio il mio caso:
io ho un BOT_A che scrive nel DB_A e si trova sulla stessa macchina ho anche un BOT_B e un DB_B su un'altra macchina sincronizzato con il DB_A (quindi il BOT_B non scrive nulla). Se per caso il BOT_A cade il BOT_B inizia a scrivere ul DB_B. Il problema in questo caso è come posso fare automaticamente a sincronizzare il master (DB_A) allo slave (BOT_B) quando il BOT_A resuscita... NapalM |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
ah ok, avevo sottovalutato un po' la situazione...
![]() mmm da perfetto niubbo (prego chiunque legga di ricordarsi delle 2 parole anteposte a questa frase tra parentesi ) mi vengono in mente queste possibili soluzioni:1)aggiunta di un campo da usare come flag in ogni tabella del DB_B che indichi quando il campo sia stato scritto dal BOT_A (e che quindi questo campo sia presente anche nel DB_A) piuttosto che dal B (e che quindi questo campo non sia presente nel DB_A) e al resuscitamento del BOT_A fargli fare il controllo dei campi del DB_B e di conseguenza l'inserimento di quelli che mancano nel DB_A; 2)far si che quando il BOT_B scrive nel DB_B scriva anche nel DB_A (ma se il BOT_A è giù penso che molto probabilmente sia giù anche il DB_A visto che si trovano sulla stessa macchina); spero di non aver scritto solo cazzate, che quelle che ho scritto non siano troppo ingarbugliate e magari di averti dato almeno uno spunticino piccino picciò che possa aiutarti a risolvere il problema! 'iao |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 65
|
La soluzione piu' semplice e' quella di configurare la replica automatica, master e slave sono nati per quello.
http://dev.mysql.com/doc/refman/5.0/...ion-howto.html Pero' se ti va giu' il master il passaggio in scrittura sullo slave deve essere fatto manualmente, il mysql gestisce il failover solo con mysql cluster (che se non ricordo male e' sperimentale) Ultima modifica di Emyl : 09-03-2006 alle 20:00. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1135
|
Quote:
Grazie anche a 0rph3n per le dritte, se la replicazione non dovesse andare ben e applicherò una delle tue teorie Grazie a tutti quanti. NapalM |
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
[come soleva dire Golden Boy pedalando sulla sua biciclettina: "Imparo Imparo Imparo Imparo Imparo Imparo..."] ...peccato manchi il tempo Quote:
'iao Ultima modifica di 0rph3n : 10-03-2006 alle 09:10. |
||
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Oct 2005
Messaggi: 65
|
Quote:
Supponendo che A e' inizialmente il master e B lo slave, nel caso che A vada giu' la procedura per ripartire con la replica e': 1 - Fermare B e farlo ripartire come master. Da quel momento B accettera' nuove insert, update, delete, ecc e il servizio potra' ripartire. 2 - Rimettere a posto A :-) 3- Riavviare A come slave di B. In questo modo A riesce ad allinearsi con B che nel frattempo avra' eseguito nuove istruzioni. 4- Se necessario, a database allineati, fare shutdown di entrambi ed invertire la condizione master-slave. In questo modo si ritorna alla situazione originale. E' una procedura un po' complicatina, ma come detto il sistema di replica non e' un failover cluster. |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1135
|
Quote:
Qualcosa invece che automatizzi il tutto non esiste? In pratica da avere una config master-master. NapalM |
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Oct 2005
Messaggi: 65
|
Per avere due "master" ci vuole anche un buon meccanismo che li tenga allineati in tempo reale, che gestisca il failover, che magari permetta di aggiungere o togliere nodi senza down e riallineando il tutto in automatico.
Questa cosa si chiama "cluster". Esiste MySQL Cluster, che e' molto giovane ma e' l'unico a mia memoria a costo 0. Alternativamente il piu' collaudato credo sia Oracle RAC, ma costa tanto. Tieni presente che per mettere su un cluster ci vuole anche una struttura hardware adeguata (storage condiviso, interconnessione diretta e dedicata...) ed e' anche questo il motivo per cui esistono meccanismi piu' semplici come le repliche, che comunque richiedono un "minimo" di intervento manuale qualora ci sia qualcosa che non va. |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1135
|
Quote:
Grazie mille NapalM |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:13.













) mi vengono in mente queste possibili soluzioni:








