Mysql
 sql >> Database >  >> RDS >> Mysql

Su RDS posso creare tabelle in una replica di lettura che non sono presenti sul Master?

Sì, è possibile. Lo sto usando con successo usando RDS , per il caso specifico di una cache locale.

Devi impostare il read_only parametro sulla tua replica su 0 . Ho dovuto riavviare il mio server per far funzionare quel parametro.

Funzionerà bene se usi nomi di tabella diversi, poiché RDS non ti consente di impostare:replicate-ignore-table parametro.

Ricorda che non deve esserci alcuna collisione di dati tra master<>slave. Se c'è un'istruzione che funziona bene su MASTER , ma non riesce su SLAVE , allora hai appena rotto la tua replica. Ciò potrebbe accadere ad es. dopo aver creato la tabella su SLAVE prima poi dopo qualche tempo hai aggiunto quella tabella a MASTER . Il CREATE l'istruzione funzionerà correttamente su MASTER , ma fallisci su SLAVE , poiché la tabella esiste già.

Supponendo, devi stare molto attento, consentendo alla tua applicazione di scrivere su SLAVE . Se dimentichi / o commetti un errore e inizi a scrivere per leggere la replica per alcuni dei tuoi altri dati, alla fine potresti perdere dati o riscontrare problemi di debug difficili.