Oui c'est possible. Je l'utilise avec succès en utilisant RDS
, pour le cas particulier d'un cache local.
Vous devez définir le read_only
paramètre sur votre réplica à 0
. J'ai dû redémarrer mon serveur pour que ce paramètre fonctionne.
Cela fonctionnera bien si vous utilisez des noms de table différents, car RDS ne vous permet pas de définir :replicate-ignore-table
paramètre.
N'oubliez pas qu'il ne doit y avoir aucune collision de données entre maître <> esclave. S'il y a une instruction qui fonctionne bien sur MASTER
, mais échoue sur SLAVE
, alors vous venez de casser votre réplication. Cela peut arriver par ex. lorsque vous avez créé une table sur SLAVE
d'abord puis après un certain temps, vous avez ajouté cette table à MASTER
. Le CREATE
l'instruction fonctionnera proprement sur MASTER
, mais échoue sur SLAVE
, car la table existe déjà.
En supposant que vous deviez être très prudent, en permettant à votre application d'écrire sur SLAVE
. Si vous oubliez/ou faites une erreur et que vous commencez à écrire sur le réplica en lecture pour certaines de vos autres données, vous risquez de perdre des données ou de rencontrer des problèmes difficiles à déboguer.