Ciao, sto facendo una prova della funzione di REPLICAZIONE (REPLICATION) fra due server MySQL.
Un server versione 5.0.24a-log gira sotto Linux Mandriva e l'ho configurato come MASTER seguendo la documentazione ufficiale di MySQL.

Un altro server versione 5.1.37-community-log gira sotto Windows Vista e l'ho configurato come SLAVE seguendo la documentazione: su questo computer non ho installato Apache e MySQL manualmente ma ho installato il pacchetto EasyPHP 2.0 che installa e configura Apache+PHP e MySQL in modo da semplificare il processo e la configurazione. Mi sono accorto che questo EasyPHP è abbastanza invasivo in quanto per controllare mysql "manualmente", senza quindi passare per l'applicazione grafica di EasyPHP, ho degli svantaggi rispetto al farlo su di un sistema dove Apache e MySQL sono stati installati normalmente (ad esempio EasyPHP crea tutta una sua struttra di directory dove copia i file di MySQL e Apache durante l'installazione: i file di configurazione di MySQL esistono in due posti diversi e EasyPHP vorrebbe che le modifiche ad essi venissero fatte tramite l'interfaccia grafica di EasyPHP, poi ci penserà lui a quali file andare a modificare visto che come dicevo alcuni file (come my.ini ) esistono in due directory diverse; inoltre se eseguo dalla shell del server mysql il comando SHOW PROCESSLIST \G noto che ci sono 3 diversi utenti loggati: io che mi sono loggato come root e due utenti "system user" con id 1 e 2 che immagino siano usati da EasyPHP per le sue funzioni; in una situazione normale, come ad esempio sotto Linux dove gira il mio server MySQL MASTER che ho installato manualmente, c'è solo l'utente root loggato e quello con cui faccio accedere lo SLAVE. Non mi intendo di questi dettagli relativi a quanti utenti sono normalmente loggati in un server MySQL locale a cui ci si è loggati semplicemente come root senza offire servizi ad altre applciazioni o host che si loggano contemporaneamente con altri users ma ho segnalato la cosa perchè quando l'ho notata mi ha meravigliato e può essere un indizio utile per risolvere il problema che mi si è presentato e che vado ora a descrivere).

Lo SLAVE è collegato via wireless ad un access point. Il MASTER è collegato al medefismo access point attraverso un cavo di rete RJ45.

Se aggiungo nel MASTER delle tuple al database replicato, lo SLAVE si sincronizza correttamente dopo un tempo x.

Il problema che ho è che lo SLAVE ci mette molto tempo per sincronizzarsi. Se dopo che ho fatto modifiche alla base di dati nel MASTER riavvio lo SLAVE, le modifiche sono subito visibili nello SLAVE ma se non lo riavvio queste sono presenti dopo diversi minuti (forse 15, forse di più).

Come posso configurare i due sistemi in modo che le modifiche fatte sulla base di dati presente nel MASTER vengano viste sullo SLAVE nel minor tempo possibile (quindi nel giro di qualche millesimo di secondo come dovrebbe avvenire normalmente fra due sistemi replicati e connessi con una veloce connessione di rete)?

Non so se sia una questione di configurare qualche file o se il problema stia nel fatto che uso EasyPHP (ho letto la documentazione ufficiale di MySQL per configurare i due sistemi con la REPLICATION, non ho documentazione specifica per come farlo su di un sistema che usa EasyPHP e con Google non ho trovato post fatti da gente che l'ha fatto. Magari il problema è colpa di EasyPHP e per risolverlo bisognerebbe conoscere meglio come è stato implementato).


grazie per le risposte!