La risposta diretta alla tua domanda è Sì, ma dipende dalla versione di MySQL che stai utilizzando. Prima di MySQL 5.5, la replica funzionava come segue:
- Master esegue SQL
- Master Records Evento SQL nei suoi registri binari
- Lo slave legge l'evento SQL dai registri binari principali
- Lo slave memorizza l'evento SQL nei registri di inoltro tramite thread I / O
- Lo slave legge il prossimo evento SQL dal registro di inoltro tramite thread SQL
- Lo slave esegue SQL
- Lo slave riconosce il Master dell'esecuzione completa dell'evento SQL
A partire da MySQL 5.5, utilizzando la replica semisincrona , ora la replica funzionerebbe come segue:
- Master esegue SQL
- Master Records Evento SQL nei suoi registri binari
- Lo slave legge l'evento SQL dai registri binari principali
- Lo slave riconosce il master della ricevuta dell'evento SQL
- Lo slave memorizza l'evento SQL nei registri di inoltro tramite thread I / O
- Lo slave legge il prossimo evento SQL dal registro di inoltro tramite thread SQL
- Lo slave esegue SQL
- Lo slave riconosce il Master dell'esecuzione completa dell'evento SQL
Questo nuovo paradigma consentirà a uno Slave di essere più vicino al suo Maestro.
Ciononostante, la latenza all'interno della rete potrebbe ostacolare la replica semisincrona di MySQL al punto in cui ritorna alla replica asincrona di vecchio stile. Perché ? Se si verifica un timeout senza che uno slave abbia riconosciuto la transazione, il master torna alla replica asincrona. Quando almeno uno slave semisincrono raggiunge, il master torna alla replica semisincrona.
AGGIORNAMENTO 2011-08-08 14:22 EDT
La configurazione della replica semisincrona di MySQL 5.5 è semplice
Passaggio 1) Aggiungi queste quattro (4) righe a /etc/my.cnf
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
#rpl_semi_sync_master_enabled
#rpl_semi_sync_master_timeout=5000
#rpl_semi_sync_slave_enabled
Passaggio 2) Riavvia MySQL
service mysql restart
Passaggio 3) Eseguire questi comandi nel client MySQL
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Passaggio 4: decomprimere le tre opzioni rpm_semi_sync dopo l'opzione plugin-dir
[mysqld]
plugin-dir=/usr/lib64/mysql/plugin
rpl_semi_sync_master_enabled
rpl_semi_sync_master_timeout=5000
rpl_semi_sync_slave_enabled
Passaggio 5) Riavvia MySQL
service mysql restart
Tutto fatto !!! Ora installa MySQL Replication come al solito.