On Mon, 16 Sep 2013 10:41:33 +0200, Beppe <
be...@fakemail.com> wrote:
>Ciao a tutti
>
> stavo cercando un modo scriptabile per sincronizzare in maniera
>intelligente delle tabelle su due DB MySQL senza usare la replica nativa
>di MySQL.
>Le tabelle possono (anche se raramente) essere modificate nella loro
>struttura ed ovviamente i dati sono variabili.
>La cosa vorrebbe essere una sorta di mysqldump blablabla | mysql
>blablabla fatta magari con un po' più di finezza.
>Sapete se esiste qualcosa ready-to-use?
L'esigenza massima mi pare di aver capito sia di "isolare" il server primario
da qualsiasi sfiga, rallentamento e malocchio.
Una possibile soluzione e' quella di usare MySQL Proxy e inviare le query sia
al server principale (che non subisce rallentamenti, e non si accorge neanche
di nulla) sia, tutte tranne le SELECT pure, ad un secondo server. In mezzo ci
si dovra' mettere un ring buffer.
Questo secondo server B puo' essere il master di una coppia B-C.
In questo modo, il server A e' quello di produzione, B e' sincronizzato ad A,
e *DI SOLITO* C e' sincronizzato con B.
Quando ti servono i dati, per tuo uso esclusivo, sganci C da B (questo non ha
alcun effetto su A), lo massacri di OLAP, poi lo puoi anche razzare e, quando
hai finito, lo riattacchi. RESET MASTER/FLUSH TABLES READ LOCK/SHOW STATUS su
B, mysqldump verso C (nel frattempo il ring buffer mantiene lo stato verso B)
che e' stoppato, poi UNLOCK TABLES (B ritorna disponibile)/RESET SLAVE/CHANGE
MASTER/START SLAVE.
Costoso e farraginoso, ma se non puoi usare la replicazione...
Leonardo
--
Then felt I like some watcher of the skies, when a new planet swims into his ken;
Or like stout Cortez when with eagle eyes, he star'd at the Pacific; and all his men
Look'd at each other with a wild surmise - silent, upon a peak in Darien.