Frage

Ich habe ein ziemlich gutes Gefühl für das, was MySQL-Replikation tun. Ich frage mich, was andere Datenbanken unterstützen die Replikation, und wie sie im Vergleich zu MySQL und anderen?

Einige Fragen, die ich würde haben, sind:

  1. Ist die Replikation eingebaut oder ein Add-On / Plug-in?
  2. Wie funktioniert die Replikation Arbeit (High-Level)? MySQL bietet anweisungsbasierte Replikation (und zeilenbasierte Replikation in 5.1). Ich bin daran interessiert, wie andere Datenbanken vergleichen. Was wird über den Draht geliefert wird? Wie Änderungen an der Replikate angewendet werden?
  3. Ist es einfach, Konsistenz zwischen Master und Slaves zu überprüfen?
  4. Wie einfach ist es, ein ausgefallenes Replik zurück synchron mit dem Master zu bekommen?
  5. Performance? Eine Sache, die ich über die MySQL-Replikation hasse ist, dass es Single-Thread, und Repliken haben oft Probleme mitzuhalten, da der Meister viele Updates parallel ausgeführt werden können, aber die Replikate haben sie seriell laufen. Gibt es Fallstricke, wie dies in anderen Datenbanken?
  6. Jede weitere interessante Features ...
War es hilfreich?

Lösung

MySQL-Replikation ist schwach da braucht man eine andere Funktionalität zu opfern volle Master / Master-Unterstützung (aufgrund der Beschränkung auf Backends) zu erhalten.

PostgreSQL Replikation ist schwach da nur Master / Standby-Modus unterstützt eingebaut (unter Verwendung des Protokollversand); leistungsfähigeren Lösungen (wie Slony oder Londiste) benötigen Add-on-Funktionalität. Archiv-Log-Segmente werden über den Draht geliefert, die die gleichen Datensätze werden verwendet, um sicherzustellen, dass eine eigenständige Datenbank ist in Arbeit, konsistenten Zustandes auf unreinen Start. Dies ist, was ich verwende derzeit, und wir haben Resynchronisation (und das Setup und andere Funktionalität) vollautomatisch. Keiner dieser Ansätze sind völlig synchron. Eine vollständigere Unterstützung wird ab PostgreSQL 8.5 eingebaut werden. Der Protokollversand erlaubt keine Datenbanken aus Synchronisierung zu kommen, so gibt es keine Notwendigkeit für Prozesse des synchronisierten Status zu prüfen; die beiden Datenbanken wieder in Synchronisierung zu bringen beinhaltet auf dem Master den Backup-Flag eingestellt wird, auf den Slave rsyncing (wobei die Datenbank weiterhin runnning, das sicher ist), und Lösen des Backup-Flag (und den Slave-Prozess neu zu starten) mit den Archivprotokollen erzeugt während der Backup-Prozess zur Verfügung; mein Geschäft hat diesen Prozess (wie alle anderen Verwaltungsaufgaben) automatisiert. Performance ist kein Thema, da die Master die Logsegmente intern ohnehin zusätzlich zu tun, andere Arbeit zu wiederholen hat; so werden immer die Sklaven unter weniger Last als der Meister.

Oracle RAC (die nicht richtig Replikation ist, da es nur eine Speicher-Backend - aber Sie haben mehrere Frontends die Lastverteilung und Redundanz in das gemeinsam genutzte Speicher-Backend aufbauen kann sich, so ist es erwähnenswert hier) ist ein Multi-Master-Ansatz weit umfassender als andere Lösungen, sondern ist extrem teuer. Datenbankinhalte werden nicht „über den Draht geliefert“; Stattdessen sind sie auf den gemeinsam genutzten Backend gespeichert, die alle beteiligten Systeme zugreifen können. Da es nur ein Back-End ist, können die Systeme nicht kommen out of sync.

Continuent bietet eine Lösung von Drittanbietern, die für alle drei der oben genannten Datenbanken mit Unterstützung vollständig synchron auf Anweisungsebene Replikation tut; jedoch ist die kommerziell unterstützte Version ihres Produkts nicht besonders günstig (obwohl erheblich weniger teuer. Letztes Mal habe ich es verabreicht, Continuent Lösung für manuelle Eingriffe erforderlich, um einen Cluster wieder in sync zu bringen.

Andere Tipps

Ich habe einige Erfahrung mit MS-SQL 2005 (Verleger) und SQLEXPRESS (Abonnenten) mit Übersee Mergereplikation. Hier sind meine Kommentare:

1 - Ist die Replikation eingebaut oder ein Add-on / Plugin

?

gebaut

2 - Wie funktioniert die Replikation Arbeit     (High-Level)?

Verschiedene Möglichkeiten zum Replizieren von Snapshot (mit Angabe von statischen Daten auf der Abonnent Ebene) zu einer Transaktionsreplikation (jeweils INSERT / DELETE / UPDATE Befehl auf allen Servern ausgeführt wird). Mergereplikation nur letzte Änderungen (successives UPDATES auf demselben Datensatz wird sofort während der Replikation vorgenommen werden) replizieren.

3 - Ist es einfach, Konsistenz zwischen Master und Slaves zu überprüfen

?

Etwas, was ich noch nie getan ...

4 - Wie einfach ist es, ein ausgefallenes Replik zurück synchron mit dem Master zu bekommen

Der Grund Neusynchronisation Prozess ist nur ein Doppelklick auf einem .... Aber wenn Sie 4Go von Daten haben eine 64 Kb Verbindung neu zu initialisieren über, es wird ein langer Prozess sein, wenn Sie es besonders an.

5 - Leistung?

Nun ja ... Sie haben natürlich einen Engpass irgendwo, wobei die Verbindung Leistung, Datenvolumen oder schließlich Ihre Serverleistung. In meiner Konfiguration, schreiben Benutzer nur an Abonnenten, die alle mit der Hauptdatenbank = publisher replizieren. Dieser Server wird dann nie von Endnutzern sollicited und seine CPU ist auf die Datenreplikation (auf mehrere Server) und Backup streng gewidmet. Abonnenten werden den Kunden gewidmet und eine Replikation (Verlag), die für die Endverbraucher ein sehr interessantes Ergebnis in Bezug auf die Datenverfügbarkeit bietet. Replikationen zwischen Verleger und Abonnenten können gemeinsam gestartet werden.

6 - weiteres interessantes Feature ...

Es ist möglich, mit einem gewissen Erwartung, auf developping die Datenbank zu halten, ohne auch nur den Replikationsprozess zu stoppen .... Tabellen (in indirekter Weise), Felder und Regeln können an Ihre Abonnenten hinzugefügt und repliziert werden.

Konfigurationen mit einem Haupt Verlag und mehrere-Abonnenten können sehr billig sein (wenn zu einigen anderen verglichen ...), wie Sie den kostenlosen SQLEXPRESS auf der Subscriber Seite verwenden können, auch wenn fusionieren oder Transaktions Replikationen ausgeführt

Versuchen Sie Sybase SQL Anywhere

Hinzufügen Nur um die Optionen mit SQL Server (insbesondere SQL 2008, die Änderungsverfolgung bietet jetzt hat). Etwas zu prüfen, ist die Sync Framework von Microsoft. Es gibt ein paar Möglichkeiten gab, von dem Grunde Hub-and-Spoke-Architektur, die groß ist, wenn Sie einen einzigen zentralen Server und manchmal verbundene Clients bis hin zu Peer-to-Peer-Synchronisierung, die Ihnen die Möglichkeit gibt, zu tun, viel weiter fortgeschritten Synchronisieren mit mehreren 'Master' Datenbanken.

Der Grund, warum Sie diese Replikation anstelle der traditionellen will vielleicht prüfen ist, dass Sie viel mehr Kontrolle von Code haben, zum Beispiel Sie Ereignisse während der Synchronisierung Fortschritts Nach einem Update / Update erhalten können, Update / Löschen, Löschen / Update, Insert / Konflikte einsetzen und entscheiden, wie sie auf Geschäftslogik basierte zu lösen, und bei Bedarf speichert die Verlierer des irgendwoen Daten des Konflikts für die manuelle oder automatische Verarbeitung. Hier finden Sie aktuelle dieser Anleitung , um zu entscheiden, was mit der möglich ist, verschiedene Methoden der Replikation und / oder Sync.

Für die scharfen Programmierer der Sync Framework ist offen genug, dass man die Clients über WCF zu Ihrem WCF-Dienst verbinden haben kann, die abstrahieren kann jeder Back-End-Datenspeicher (Ich höre manche Leute experimentieren mit Oracle als Back-End) .

Mein Team hat Release nur mit einem großen Projekt gegangen, die mehrere SQL Express-Datenbanken synchronisieren Teilmengen von Daten aus einer zentralen SQL-Server-Datenbank über WAN und Internet (langsam DFÜ-Verbindung in einigen Fällen) mit großem Erfolg geht.

MS SQL 2005 Standard Edition und hat über ausgezeichnete Replikationsfunktionen und Werkzeuge. Schauen Sie sich auf:

http://msdn.microsoft.com/ en-us / library / ms151198 (SQL.90) aspx

Es ist ziemlich fähig. Sie können auch SQL Server Express als Nur-Lese-Teilnehmer verwenden.

Es gibt viele verschiedene Dinge, die CALL-Replikation Datenbanken. Nicht alle von ihnen beinhalten tatsächlich Replikation und solche, die völlig andere Art und Weise zu tun arbeiten. Einige Datenbanken unterstützen verschiedene Arten.

MySQL unterstützt asynchrone Replikation, was für manche Dinge sehr gut. Allerdings gibt es Schwächen. Anweisungsbasierten Replikation ist nicht das gleiche wie das, was die meisten (alle?) Andere Datenbanken zu tun, und führt nicht immer in dem erwarteten Verhalten. Row-basierte Replikation wird nur durch eine nicht produktionsfertige Version nicht unterstützt (ist aber im Einklang mit, wie andere Datenbanken tut es).

Jede Datenbank seine eigenen Gedanken über die Replikation hat, beinhalten einige andere Werkzeuge Anstecken.

Ein bisschen off-topic, aber möchten Sie vielleicht Maatkit für Werkzeuge überprüfen, mit MySQL-Replikation zu helfen.

Alle wichtigen kommerziellen Datenbanken haben anständige Replikation - aber einige sind anständig als andere. IBM Informix Dynamic Server (Version 11 und höher) ist besonders gut. Es hat tatsächlich zwei Systeme - eine für hohe Verfügbarkeit (HDR - hochverfügbare Datenreplikation) und die andere für die Verteilung von Daten (ER - Enterprise-Replikation). Und die die Mach-11-Features (RSS - Remote-Sekundärstandalone und SDS - gemeinsam genutzte Platten sekundär). Sind hervorragend auch doppelt so in 11.50, wo Sie entweder den primären oder sekundären ein HDR-Paar schreiben

( Vollständige Offenlegung:. Ich arbeite auf Informix softare )

Ich habe es selbst nicht ausprobiert, aber Sie möchten vielleicht auch in OpenBaseSQL suchen, die einige einfache zu haben scheint Replikation Einbau-verwenden.

Ein weiterer Weg zu gehen, ist in einer virtualisierten Umgebung laufen zu lassen. Ich dachte, die Daten in diesem Blog-Artikel war interessant

http://chucksblog.typepad.com/chucks_blog/2008 /09/enterprise-apps.html

Es ist aus EMV-Exekutive, so offensichtlich, es ist nicht unabhängig, aber das Experiment sollte reproduzierbar sein

Hier sind die spezifischen Daten für Oracle

http: / /oraclestorageguy.typepad.com/oraclestorageguy/2008/09/to-rac-or-not-to-rac-reprise.html

Edit: Wenn Sie virtualisiert laufen, dann gibt es Möglichkeiten, etwas zu replizieren

machen

http://chucksblog.typepad.com/chucks_blog /2008/05/vmwares-srm-cha.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top