2010-11-22 2 views
3

Ich habe identische Tabelle auf Master und Slave. Beide haben viele Spalten mit price unter ihnen. Gibt es eine Möglichkeit, einzelne Werte für die Spalte price im Slave festzulegen, damit die Replikation sie nicht überschreibt?Skip einige Spalten Replikation auf Slave in MySQL

Unser System funktioniert in vielen Ländern mit individuellen Preisen, aber wir möchten auch einige gemeinsame Daten aus der zentralen Datenbank teilen.

ich einige Lösungen obwohl up:

  • Extract alle länderspezifischen Spalten zu anderen Tabellen, die nicht repliziert werden.
  • Dies würde viele Änderungen in unserem Quellcode erfordern.
  • Erstellen Sie eine Proxy-Datenbank mit nur gemeinsamen freigegebenen Spalten, die vom Master repliziert werden, und legen Sie sie dann als Master für eine landesbasierte Datenbank mit vollständiger Spaltendefinition fest.
  • Es sieht hässlich für mich aus.

Gibt es etwas besseres? Ich würde jede Hilfe schätzen.

Antwort

0

Ich glaube wirklich nicht, dass Replikation entwickelt wird, um "fast-Replikation" zu tun, wie Sie fragen. Ich glaube nicht, dass Sie nur einen Teil einer Tabelle replizieren können.

Ihre erste Lösung klingt für mich am vernünftigsten.

Im Allgemeinen habe ich eine Softwarelösung entwickelt, die ohne Replikation oder mit allen replizierten Tabellen funktioniert. Fügen Sie dann die Replikation in der Produktion hinzu, um Redundanz oder Leistung hinzuzufügen. Alles andere klingt so, als wäre es ziemlich komplex, es zu entwickeln und zu testen.

(Me. Ich bin nicht gerade ein MySQL Experte, obwohl ich die MySQL-Replikation ein paar Mal eingerichtet haben)

0

Es ist ein Slave-skip-Spalten-Patch in Percona Server 5.1. Vielleicht möchten Sie einen Blick darauf werfen.

0

Dies ist eine alte Frage, aber kommt zuerst in Google so dachte ich, das ist relevant und nützlich: https://dev.mysql.com/doc/refman/5.5/en/replication-features-differing-tables.html

Kurz gesagt, wenn Ihre gemeinsamen Spalten in einer Tabelle, auf Master und Slave, sind von der gleichen Typs und in der gleichen Reihenfolge, dann funktioniert die Replikation auch dann, wenn am Ende von Master oder Slave zusätzliche Spalten vorhanden sind. Für nicht übereinstimmende Datentypen gibt es einige Regeln.