Domanda

Diciamo che ho un datbase di Cars. Ho marche e modelli (FK per le marche). Ho intenzione di avere gli utenti tenere traccia dei loro automobili. Ogni auto ha un FK a modello. Ora, ho un sacco di utenti, e voglio dividere la mia base di dati per distribuire il carico. Le tabelle marche e modelli non cambiano così tanto, ma hanno bisogno di essere condivisa tra schegge. Il mio pensiero è quello di utilizzare la replica di MySQL da un maestro DB di marche e modelli di ogni database slave. La mia domanda è: Posso scrivere in modo sicuro ai database di schiavi assumendo non scrivo a quei tavoli sul master?

E mentre sul tema, c'è comunque di garantire una base di dati slave ha i dati più recenti? Per esempio, qualcuno appena aggiunto la marca 'Taurus', e quindi vuole aggiungere la propria auto. Posso assicurare che il database degli schiavi che stanno utilizzando ha i dati anagrafici ultima?

È stato utile?

Soluzione

Sì, in generale, si può tranquillamente scrivere a un tavolo sugli schiavi che non è stato scritto sul master. Se fai le cose come Inserisci righe auto_increment sugli schiavi e sul master, in modo indipendente, avrete ovviamente avere problemi. È necessario configurare quel tavolo da escludere dalla replica del tutto, davvero.

Per verificare se si dispone di dati più recenti, SHOW SLAVE STATUS include un Seconds_Behind_Master campo che ti dice se lo slave è aggiornata. Ovviamente si vuole che sia pari a zero. Per essere certi che inserito e dati replicati è presente, naturalmente, è necessario attendere un secondo e poi vedere che Seconds_Behind_Master è pari a zero.

Altri suggerimenti

Questa è stata una buona soluzione che ho spigolato durante la ricerca

ho inserito il punto principale come avilable qui:

http : //erlycoder.com/43/mysql-master-slave-and-master-master-replication-step-by-step-configuration-instructions-

MySQL master-master replica e autoincremento indici

Se si utilizza la replica master-slave, che molto probabilmente si progettare l'applicazione il modo di scrivere di padroneggiare e leggere da schiavo o più slave. Ma quando si utilizza la replica master-master che si sta per leggere e scrivere su qualsiasi di server master. Quindi, in questo caso il problema con gli indici autoincremental alzerà. Quando entrambi i server dovranno aggiungere un record (uno diverso ogni server contemporaneamente) per la stessa tabella. Ognuno assegnerà loro lo stesso indice e cercherà di replicare l'unguento, questo creerà una collisione. Semplice trucco permetterà di evitare tali collisioni sul server MySQL.

Al Master 1 / Slave 2 metti in /etc/my.cnf:

auto_increment_increment= 2
auto_increment_offset   = 1

Al Master 2 / Slave 1 metti in /etc/my.cnf:

auto_increment_increment= 2
auto_increment_offset   = 2
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top