Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich auf RDS Tabellen in einer Read Replica erstellen, die auf dem Master nicht vorhanden sind?

Ja, es ist möglich. Ich verwende es erfolgreich mit RDS , für den speziellen Fall eines lokalen Caches.

Sie müssen den read_only setzen Parameter auf Ihrem Replikat auf 0 . Ich musste meinen Server neu starten, damit dieser Parameter funktioniert.

Es wird gut funktionieren, wenn Sie unterschiedliche Tabellennamen verwenden, da RDS Ihnen nicht erlaubt, Folgendes festzulegen:replicate-ignore-table Parameter.

Denken Sie daran, dass es keine Datenkollision zwischen Master<>Slave geben darf. Wenn es eine Anweisung gibt, die auf MASTER funktioniert , schlägt aber auf SLAVE fehl , dann haben Sie gerade Ihre Replikation abgebrochen. Das kann z. wenn Sie eine Tabelle auf SLAVE erstellt haben zuerst dann nach einiger Zeit haben Sie diese Tabelle zu MASTER hinzugefügt . Das CREATE -Anweisung funktioniert sauber auf MASTER , schlagen aber auf SLAVE fehl , da die Tabelle bereits existiert.

Angenommen, Sie müssen wirklich vorsichtig sein und Ihrer Anwendung erlauben, in SLAVE zu schreiben . Wenn Sie vergessen / oder einen Fehler machen und anfangen, für einige Ihrer anderen Daten in Read Replica zu schreiben, könnten Sie am Ende Daten verlieren oder schwer zu debuggende Probleme haben.