2009-07-24 8 views
0

OK beim Arbeiten mit Tabellenerstellung, wird immer angenommen, dass das Erstellen einer Tabelle auf einer Datenbank (der Master) bedeutet, dass der DBA die Tabelle auf dem Slave auch erstellen sollte? Wenn eine Master/Slave-Konfiguration verwendet wird, sollten Daten nicht immer vom Master zum Slave synchronisiert werden, um synchronisiert zu werden?Datenbankreplikation

Im Moment ist das Problem, das ich habe, ist meine Datenbank hat eine Menge Zeug im Master, aber der Slave fehlt Teile, die nur im Master existieren. Ist hier etwas nicht korrekt konfiguriert?

+0

Dies hängt stark von dem Datenbanksystem und der Einrichtung ab, die Sie verwenden. Vielleicht möchten Sie das weiter ausbauen. d.h. verwenden Sie MySQL, Postgres, MSSQL. Wie ist Ihre Replikation eingerichtet? –

+0

Die Datenbank wird mit MySQL eingerichtet. Soweit das Replikations-Setup, weiß ich nicht. – Stevus

Antwort

0

Hängt davon ab, wie die Replikation konfiguriert ist. Die Echtzeit-Replikation sollte den Master und den Slave jederzeit synchron halten. Die Replikation "Poors mans" wird normalerweise so konfiguriert, dass sie nach Ablauf eines bestimmten Zeitintervalls synchronisiert wird. Dies ist, was wahrscheinlich in Ihrem Fall passiert.

+0

Nun, die Sache ist, dass wir für unsere Firma dem DBA mitteilen müssen, welche Tabellen repliziert werden sollen. Widerspricht das nicht der gesamten Master/Slave-Methodik? – Stevus

+0

@steven Wright, das Konzept der DB-Replikation kann viele Formen annehmen. Partielle Replikation (nur eine Teilmenge steuern), "überlagerte" Replikation (mehrere Master zusammenlegen), Multimaster usw. können alle nützlich sein. – pilcrow

+0

@pilcrow, Vielleicht könnte es dann Teilreplikation verwenden. – Stevus

1

Ich ziehe es vor, auf CREATE TABLE Anweisungen zu replizieren, die repliziert werden, um die Tabelle auf dem Slave einzurichten, anstatt die Tabelle des Sklaven manuell zu erstellen. Das setzt natürlich voraus, dass das DBMS dies unterstützt.

Wenn Sie Daten über den Master haben, der sich nicht auf dem Slave befindet, handelt es sich um einen Fehler bei der Replikation, entweder im Setup oder im laufenden Betrieb.

-1

Jede Tabellenerstellung auf Master ist Replikation auf Slave. Gleiches gilt für das Einfügen von Daten. Gehen Sie die Replikationseinstellungen in der Datei my.cnf nach mysql durch und überprüfen Sie, ob die Replikation einer Datenbank/Tabelle ignoriert wird.