Newsgroup: it.comp.software.database
Titolo: Sincronizzare due Databse MySql

Ciao a tutti
ho questo problema:
ho due database identici nella struttura in due macchine diverse (due pc
domestici non in rete).
Ovviamenti i dati dei 2 db sono diversi.
Vorrei creare una terza copia del db che comprendesse tutti i dati di
entranbi e db senza duplicare quelli presenti in entrambi. 
Sapete se c'č un tool freeware che fa al caso mio, o comunque una
soluzione a questo problema?
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Se ho ben capito, abbiamo una situazione del genere:
HOST1                 HOST2
DB1.tab1  DB1.tab2    DB2.tab1   DB2.tab2
-------   --------    --------   --------
A         W           E          R
B         X           F          S
C         Y           G          T
E vorresti raggiungere questo risultato?
HOST3
DB3.tab1  DB3.tab2
-------   --------
A         W
B         X
C         Y
E         R
F         S
G         T
un metodo sarebbe questo
host1 $ mysqldump --opt -B -h host1 DB1 > host1.dump
host2 $ mysqldump --opt -B -h host2 DB2 > host2.dump
host3 $ mysql  --force < host1.dump
host3 $ mysql  --force < host2.dump
Questo sistema, che si potrebbe fare in piping se le macchine fossero 
collegate in rete, fa un merge dei due database, saltando eventuali 
record duplicati (se esiste gia' un record con la stessa chiave 
primaria, il record non viene inserito).
Il problema grosso e' se ci sono due record in DB1 e DB2 nella stessa 
tabella e con la stessa chiave primaria ma diversi contenuti.
In questo caso, devi farti un'applicazione per gestire i conflitti.
Ciao
G
-- 
   ____ ____  _____ _   _
  / _  |    \(____ ( \ / )
( (_| | | | / ___ |) X (
  \___ |_|_|_\_____(_/ \_)
(_____|
Sapere, saper fare, fare, far sapere
http://gmax.oltrelinux.com

 G
Grazie mille intanto.... provo subito


 G


 entranbi e db senza duplicare quelli presenti in entrambi. 
Dump db 1, dump db 2, concat dei due files rimuovendo le righe
uniche, import del file risultante.
Davide
-- 
"Here's something to think about:  How come you never see a headline like
`Psychic Wins Lottery'?"
		-- Jay Leno

 
Non che io sappia. Si cerca di risolvere i conflitti prima che 
avvengano, cioe' avendo un database centralizzato dove inserire i dati, 
e risolvere i problemi prima che si creino.
La gestione dei conflitti non e' semplice perche' non si possono 
stabilire delle regole decenti per stabilire quale record tenere.
Il piu' recente? E se non fosse aggiornato?
Quello con piu' dati nelle varie colonne? E se l'aggiornamento fosse 
stato una rimozione di dati sbagliati?
L'unico modo di tenere in piedi una situazione del genere senza creare 
conflitti e' stabilire in anticipo delle regole di competenza. Cioe' 
l'applicazione cha aggiorna il database A puo' inserire record che 
appartengono a una certa categoria, diversa da quella che viene 
utilizzata nel database B.
Se poi vuoi la soluzione ottimale, metti i due computer in rete e usa la 
replicazione di MySQL. Se i computer sono vicini, non ti serve neanche 
uno switch, basta un cavo crossed.
Ciao
gmax


 Davide
Ma se ci sono record che hanno lo stesso contenuto ma id diverso?
Tipo
db1.t1.id
: 1,aaaa,bbbb
db2.t1.id
: 2,aaaa,bbbb
Io vorrei che me ne venisse copiato solo 1 dei due....
Magari con qualche query di quelle spettacolarmente piene zeppe di join!
Che dite


 Io vorrei che me ne venisse copiato solo 1 dei due....
Puoi ignorare la prima colonna quando rimuovi le linee identiche, ma il
fatto e` che se quelle righe hanno un id servira` per essere referenziate
da altre tabelle, e il fatto che tu mischi le cose puo` solo complicarti
la vita perche` avrai tabelle che si riferiscono a righe diverse da quelle
precedenti.
Bye.

 Ma se ci sono record che hanno lo stesso contenuto ma id diverso?
Allora significa che il db e' stato progettato con i piedi.
Vedi anche 
http://www.soft-land.org/documenti/pk
Davide
-- 
From too much love of living,/From hope and fear set free,
We thank with brief thanksgiving,/Whatever gods may be,
That no life lives forever,/That dead men rise up never,
That even the weariest river winds somewhere safe to sea.
		-- Swinburne

 Ci sono tools che fanno questo?
Non lo so, perň dovresti quotare meglio.
