|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
[MySQL+Java] Sincronizzare 3 database
Per raccogliere e consultare i dati utili per la mia tesi (
), ho avuto la malsana idea di scrivere un'applicazione in java per facilitare l'inserimento, la modifica e l'esportazione (in pdf ed excel) dei dati stessi.Fin qui tutto ok: ho utilizzato Hibernate per le operazioni di crud, ho installato mysql sulla macchina test e tutto funziona a dovere. Il problema è che, all'inserimento e alla modifica dei dati, parteciperanno 3 editor diversi: il sottoscritto, un altro tesista e il prof. L'uni mi ha concesso un database mysql + accesso vpn da utilizzare come master: l'idea è che (previa verifica della connessione) ogni editor possa consultare e modificare i dati inseriti da tutti. In sostanza mi serve un modo per sincronizzare i 3 db locali con il db centrale, in maniera bidirezionale ed asincrona (non è detto che si lavori insieme), possibilmente senza installare ulteriori programmi al di fuori di mysql server e la gui che sto scrivendo. Ovviamente il tutto deve essere fatto lato client: sul db dell'università posso fare solo normali operazioni amministrative, assolutamente non installare alcunché. Che faccio mi sparo?
__________________
in attesa di una firma migliore...
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
uppettino
__________________
in attesa di una firma migliore...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
Accetto qualsiasi risposta ("sei un caso disperato", "non ne ho idea", "lo so ma non te lo dico"...) purché cessi questo monologo..
__________________
in attesa di una firma migliore...
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 168
|
Non ne ho idea.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
ti ringrazio...sarai citato nelle preghierine della sera...
__________________
in attesa di una firma migliore...
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Toh, un conterraneo.
Non so bene se ti sono d'aiuto, ma hai provato a considerare il caso in cui scrivi una tabella contenente un campo INTEGER UNSIGNED per ognuna delle altre tabelle, nel quale salverai un numero relativo all'ultima modifica effettuata: quando accedi ad una tabella in lettura, prima di lavorare sui dati del DB locale, confronti questo numero salvato sul DB in locale con il DB in remoto, e se è minore procedi a sincronizzare quella tabella; infine potrai lavorarci su in locale senza collisioni (si spera). Lo so che è un approccio magari rozzo e un po' semplicistico, ma non mi viene di meglio al momento. ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 08-06-2010 alle 08:05. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Il problema di quell'approccio è la relativa lentezza che ci sarà inevitabilmente ad ogni bisogno di aggiornare il tutto. Ovviamente il database in remoto andrebbe bloccato in lettura e scrittura ad ogni operazione di aggiornamento, altrimenti hai delle inconsistenze se qualcuno nel frattempo sta cercando di leggere quanto è stato fatto in remoto per confrontarlo col proprio DB locale. E se ci fossero delle differenze tra i campi dovresti fare una sorta di "merge", come fa Subversion.
Documentandomi meglio, scopro che MySQL ti offre un meccanismo utile al tuo scopo, in effetti: http://dev.mysql.com/doc/refman/5.0/en/replication.html. Non lo conosco, e quindi non so dirti se è il caso di usarlo o no, ma penso valga la pena di fare qualche prova. ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
Nelle prime fasi di progettazione, mi sono già imbattuto in Replication. Il problema è che, da quel poco che ne so, non copre appieno lo scenario da me descritto.
Quote:
Avevo anche pensato a SQLyog (http://www.webyog.com/en/downloads.php) ma le funzioni di sync sono relegate alle versioni a pagamento
__________________
in attesa di una firma migliore...
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
"sei un caso disperato"™
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2002
Città: BN
Messaggi: 2233
|
mio malgrado, pare che tu abbia ragione...
__________________
in attesa di una firma migliore...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:23.










), ho avuto la malsana idea di scrivere un'applicazione in java per facilitare l'inserimento, la modifica e l'esportazione (in pdf ed excel) dei dati stessi.










