IBExpert Replikation FAQs

<< FAQs IBExpert Personal Edition | Dokumentation | Firebird 2 Schnellanleitung >>

IBExpert Replikation FAQs

  1. Was ist eine Replikation?
  2. Welche Firebird Versionen sind für die IBExpert Replikation einsetzbar?
  3. Welche Vorteile bestehen durch die IBExpert Replikation gegenüber dem
    regelmäßigen Backup/Restore?
  4. Welche Vorteile bestehen durch die IBExpert Replikation gegenüber einem
    Shadow?
  5. Funktioniert die IBExpert Replikation auch mit InterBase®?
  6. Funktioniert die IBExpert Replikation auch mit anderen Datenbanksystemen?
  7. Welche Betriebssysteme werden durch die IBExpert Replikation unterstützt?
  8. Welche Daten können repliziert werden?
  9. Können auch Blobs repliziert werden?
  10. Können auch Metadaten repliziert werden?
  11. Welche Betriebsarten werden bei der IBExpert Replikation unterstützt?
  12. Müssen die Server ständig verbunden sein?
  13. Wie erkennt man den Status der Replikation?
  14. Was muss man bei einer Multimaster Replikation beachten?
  15. Welche Betriebsart eignet sich am besten für replizierte Laptops?
  16. Welchen Einfluss auf die Performance hat der Einsatz der Replikation?
  17. Welche Hardware Konfiguration ist optimal?
  18. Welche Konfigurationen sind für Hochverfügbarkeit und Skalierbarkeit optimal?
  19. Ist bei der Replikation Transaktionssicherheit gewährleistet?
  20. Wie werden mehrfache Triggerausführungen verhindert?
  21. Was passiert bei Replikationskonflikten?
  22. Was passiert, wenn ein Replikationspartner nicht verfügbar ist?
  23. Müssen alle Daten repliziert werden?
  24. Können Generatoren repliziert werden?
  25. Kann man in einer Session mit inaktiver Replikation arbeiten?
  26. Welche Befehle sollten gesondert behandelt werden?
  27. Was muss ich machen, wenn ich selbst Metadaten geändert habe?
  28. Wie kann ich eine IBExpert Replikation beauftragen?
  29. Ist das IBExpert Replikationssystem vergleichbar mit anderen Firebird
    Replikationslösungen?

Diese Artikel ist auch als PDF Download verfügbar.

Was ist eine Replikation?

Wikipedia: Replikation oder Replizierung (von lateinisch replicare „erwidern“, „wiederholen“) bezeichnet die mehrfache Speicherung derselben Daten an meist mehreren verschiedenen Standorten und die Synchronisation dieser Datenquellen.

Welche Firebird Versionen sind für die IBExpert Replikation einsetzbar?

Wir empfehlen den Einsatz der aktuellen Firebird 2.5.x oder 3.0.x Version für die synchrone IBExpert Replikation. Die asynchrone IBExpert Replikation kann auch mit älteren Firebird Versionen realisiert werden, jedoch erfolgt hier der Datenaustausch über externe Event-gesteuerte Skripte, deren Laufzeitverhalten eventuell zum Verlust von committeten Transaktionen führen kann.

Wir können auch eine Replikation zwischen Firebird 2.5 und 3.0 Datenbanken erstellen. So können Sie bereits in einem Multi-Master-Setup mit Clients arbeiten, die die Firebird 3.0 Vorteile wie z.B. erweiterte Multithread-Unterstützung verwenden, mit einer zweiten Datenbank, welche die bewährte FB 2.5 Version nutzt. Alle Operationen arbeiten unter vollständiger Transaktionssteuerung auf allen Replikations-Nodes, so dass jedes Commit oder Rollback global auf allen Nodes funktioniert. Bei der Verwendung des asynchronen Modus implementieren wir auch ein unbegrenztes globales Audit für alle Datensätze in der Datenbank, da sich alle Operationen im Transaktionsprotokoll mit Benutzernamen, Zeitstempel und IP-Adresse befinden.

Welche Vorteile bestehen durch die IBExpert Replikation gegenüber dem regelmäßigen Backup/Restore?

Ein Backup/Restore Zyklus ermöglicht zwar die Datensicherung im laufenden Betrieb, aber sämtliche Transaktionen, die seit dem Start des Backup Vorgangs ausgeführt wurden, sind nach dem Restore verloren. Je größer die Datenbank ist und je länger dadurch auch der Backup Restore Zyklus dauert, umso größer ist der ggf. zu akzeptierende Datenverlust. Durch die IBExpert Replikation werden im synchronen Modus Firebird Transaktionen sofort auf dem Slave geschrieben und bei Hardwareausfall des Masters geht keine committete Transaktion verloren.

Welche Vorteile bestehen durch die IBExpert Replikation gegenüber einem Shadow?

Ein Shadow ist bei Firebird eine stets aktuelle Kopie der Datenbankdatei auf einem zweiten Laufwerk. Je nach Betriebssystem kann das Shadow nur auf dem gleichen Server sein, auf dem auch die Originaldatenbankdatei liegt. Bei Ausfall des Servers ist daher in den meisten Fällen auch das Shadow nicht mehr erreichbar. Weiterhin muss ein Shadow auch nach kurzer Ausfallzeit wieder komplett neu aufgebaut werden, d.h. bei großen Datenbanken dauert dieser Vorgang mehrere Minuten.

Funktioniert die IBExpert Replikation auch mit InterBase®?

Ja, aber nur asynchron und mit weiteren Einschränkungen, da wir aufgrund der immer geringeren Verbreitung von InterBase® die Weiterentwicklung auf dieser Plattform eingestellt haben. Wir empfehlen bei hohen Anforderungen an Performance und Ausfallsicherheit den Umstieg auf Firebird und unterstützen Sie gerne dabei.

zurück zum Seitenanfang

Funktioniert die IBExpert Replikation auch mit anderen Datenbanksystemen?

Wir haben bereits Erfahrungen mit der Anbindung als Slave mit Oracle, MSSQL und DB2. Dabei werden Inhalte der Firebird Datenbank via ODBC in diese Datenbanken übertragen und dort synchronisiert. Generell lässt sich das mit jeder ODBC-fähigen Datenbank realisieren, um zum Beispiel die Daten in MySQL-basierenden Webshop zu synchronisieren.

Das führende System ist dabei aber immer eine Firebird Datenbank. Schreibende Änderungen aus den anderen Datenbanken können dabei im Batchbetrieb auch eingelesen werden. Dabei sollte aber das Fremdsystem über Datenfelder verfügen, über welche die geänderten Datensätze abgetragen werden können.

Welche Betriebssysteme werden durch die IBExpert Replikation unterstützt?

Generell eignen sich alle Betriebssysteme, auf denen Firebird 2.5.x läuft, auch uneingeschränkt für die IBExpert Replikation, zum Beispiel Win32, Win64, Mac OSX, Linux etc. Die IBExpert Replikation nutzt ausschließlich in Firebird verfügbare Techniken.

Welche Daten können repliziert werden?

Sie können sämtliche Daten, die in einer Firebird Datenbank gespeichert werden können, auch mit der IBExpert Replikation replizieren. Wir empfehlen den SQL Dialekt 3, können aber im Einzelfall auch Datenbanken auf Basis Dialekt 1 replizieren.

Können auch Blobs repliziert werden?

Ja, auch Blobs können uneingeschränkt repliziert werden.

zurück zum Seitenanfang

Können auch Metadaten repliziert werden?

Ja, auch Metadatenänderungen können repliziert werden, zum Beispiel CREATE TABLE Befehle. Diese Fähigkeit ist insbesondere im 24/7 Betrieb, aber auch beim Einsatz der asynchronen Replikation mit Laptops wichtig.

Welche Betriebsarten werden bei der IBExpert Replikation unterstützt?

  1. Master-Slave synchron: Bei der synchronen Master-Slave Replikation wird jede Transaktion auf dem Master sofort auf den Slave übertragen. Schreibvorgänge können nur auf dem Master durchgeführt werden, Lesevorgänge auf dem Master und auf dem Slave. Bei Ausfall des Masters kann der Slave sofort die Aufgabe des Masters übernehmen und auch Schreibvorgänge ausführen. Solange der Master vom Slave erreichbar ist, lehnt dieser schreibende Verbindungen ab. Sollte der Master nach einem Ausfall feststellen, dass der Slave die Aufgaben des Masters übernommen hat, lehnt der ehemalige Master alle Verbindungen ab. Typischer Anwendungsfall ist die Skalierbarkeit für Lesevorgänge und Erhöhung der Ausfallsicherheit.
  2. Master-Multi-Slave synchron: Vorgehensweise wie bei a., jedoch mit mehreren Read-Only-Slaves. Typischer Anwendungsfall ist die nahezu unbegrenzte Skalierbarkeit für Lesevorgänge
  3. Master-Slave asynchron: Bei der asynchronen Master-Slave Replikation wird jede Transaktion zunächst in der Master Datenbank gecacht. Erst nach Abschluss der Transaktion wird versucht, diese im Rahmen einer eigenen Transaktion an den Slave zu übertragen. Sollte der Slave nicht verfügbar sein, dann werden die Daten zunächst lokal gesammelt, um diese dann bei erneuter Verfügbarkeit des Slaves zu übertragen. Typischer Anwendungsfall sind lesende Filialanwendungen, bei denen nicht ständig verfügbare oder langsame Datenleitungen zwischen Master und Slave eine synchrone Übertragung nicht möglich machen.
  4. Master-Multi-Slave asynchron: Vorgehensweise wie bei c., jedoch mit mehreren Read-Only-Slaves. Typischer Anwendungsfall ist der Einsatz von Laptops, die zu nicht vorhersehbaren Zeiten verbunden sind. Dabei wird der Datenaustausch durch den Slave im Pull Verfahren initiiert.
  5. Master-Master synchron: Bei diesem Verfahren behandelt die IBExpert Replikation jeden beteiligten Node sowohl als Master als auch als Slave. Schreibvorgänge können ohne Einschränkungen auf jedem Master ausgeführt werden. Um diese Konfiguration realisieren zu können, sind ggf. Anpassungen im Datenmodell erforderlich, weil die verteilte Erstellung von Primärschlüsseln und Fremdschlüsseln möglich sein muss. Typischer Anwendungsfall ist die Skalierbarkeit für Lese- und Schreibvorgänge und Erhöhung der Ausfallsicherheit.
  6. Master-Master asynchron: Dabei gilt die gleiche Vorgehensweise wie bei e., jedoch wird hier jede Transaktion lokal gecacht und dann erst an den anderen Server übertragen. Typischer Anwendungsfall sind lesende und schreibende Filialanwendungen an zwei Standorten, bei denen nicht ständig verfügbare oder langsame Datenleitungen eine synchrone Übertragung nicht möglich machen.
  7. Multi-Master synchron: Siehe e., jedoch mit mehr als 2 Masters. Typischer Anwendungsfall ist die nahezu unbegrenzte Skalierbarkeit für Lese- und Schreibvorgänge.
  8. Multi-Master asynchron: Siehe f., jedoch mit mehr als 2 Masters. Typischer Anwendungsfall sind lesende und schreibende Filialanwendungen an mehr als zwei Standorten, bei denen nicht ständig verfügbare oder langsame Datenleitungen eine synchrone Übertragung nicht möglich machen.

zurück zum Seitenanfang

Müssen die Server ständig verbunden sein?

Nein, es sei denn, dieses Sicherheitsmerkmal ist gewünscht. Beim synchronen Modus kann das System so konfiguriert werden, das bei Ausfall eines Servers dieser zunächst im asynchronen Modus weiterhin im Cluster bleibt und bei erneuter Verfügbarkeit durch die noch laufenden Systeme synchronisiert wird, bevor dieser wieder Clientanfragen beantworten darf.

Wie erkennt man den Status der Replikation?

Eine Abfrage durch eine Stored Procedure stellt den Status der beteiligten Nodes dar. Über ein externes Script kann das Ergebnis im Fehlerfall auch benutzt werden, um eine E-Mail an den Administrator zu senden, wenn dessen Eingriff erforderlich sein sollte.

Was muss man bei einer Multimaster Replikation beachten?

Eine Multimaster Replikation im synchronen Modus ist vergleichsweise unkritisch in der Handhabung, da eventuelle Replikationskonflikte durch die Transaktionssicherheit sofort erkannt werden und konkurrierende Updates ebenfalls zu einer Exception führen, als ob dieser Vorgang in derselben Datenbank ausgeführt wird. Im asynchronen Modus muss dabei im Datenmodell ggf. sichergestellt werden, dass konkurrierende Updates möglichst vermieden werden.

Welche Betriebsart eignet sich am besten für replizierte Laptops?

Wir haben in mehreren Projekten positive Erfahrungen mit der Multimaster asynchron Betriebsart. Bei einem angepassten Datenmodell wird diese Betriebsart mit tausenden Systemen erfolgreich eingesetzt.

Welchen Einfluss auf die Performance hat der Einsatz der Replikation?

Bei Schreibvorgängen greifen die im Rahmen der IBExpert Replikation eingesetzten Trigger und beanspruchen so natürlich die Performance. Durch eine entsprechende Hardware, die sich in erster Linie durch sehr schnelle I/O Subsysteme (am besten Enterprise SSDs) auszeichnen sollte, ist der Einfluss gering. Als Netzwerkverbindung empfehlen wir ein dediziertes Gigabit Crosskabel und jeweils eigene Netzwerkkarten zwischen den Nodes. Wir raten explizit von Virtualisierung ab, da im Rahmen der Virtualisierung sehr viele nicht beeinflussbare Faktoren eine Rolle spielen. Die hohen Anforderungen an die erforderliche I/O Leistung können virtuelle Systeme nur selten erbringen. Nicht ohne Grund raten ebenso wie wir nahezu alle großen Datenbankhersteller bei Hochleistungs-Datenbanksystemen von der Virtualisierung ab.

zurück zum Seitenanfang

Welche Hardware Konfiguration ist optimal?

Wir raten generell zu dedizierten Systemen mit abgespeckten 64 Bit Betriebssystemen, bei denen alle Funktionen, die nicht explizit für den Einsatz als Datenbankserver gebraucht werden, abgeschaltet sind. Für den Einsatz des Firebird Datenbanksystems ist der Einsatz eines NAS (Network Attached Storage)-Systems meistens negativ, da bei Firebird in erster Linie kleine Blöcke geschrieben werden müssen und dafür die Latenz der Anbindung des NAS-Systems deutliche Performanceeinbußen ergeben. Generell haben XEON E3 oder E5 CPUs ein sehr gutes Preis-Leistungsverhältnis beim Einsatz mit Firebird. Auf Stromsparversionen sollte man generell verzichten, aber auch zu viele CPU Kerne sind nicht immer von Vorteil.

Welche Konfigurationen sind für Hochverfügbarkeit und Skalierbarkeit optimal?

Nach dem Vorbild von Facebook- und Google-Rechenzentren empfehlen wir bevorzugt auf mehrere einfache replizierte Systeme zu setzen, anstatt diese durch einen High-End-Server zu ersetzen, bei denen auch meist noch exotische Ersatzteile erforderlich sind.

Ist bei der Replikation Transaktionssicherheit gewährleistet?

Ja, Im synchronen Modus werden alle Transaktionen sofort auf alle Nodes repliziert. Sollte einer der Nodes eine Exception auslösen, dann gilt dieses auch automatisch für den aufrufenden Client.

Wie werden mehrfache Triggerausführungen verhindert?

Die Replikation wird durch einen speziellen User übertragen. Sämtliche Operationen, die durch diesen User ausgeführt werden, sollten im Trigger-Quelltext ignoriert werden. Das kann durch einfache Ergänzungen in der ersten Zeile jedes vorhandenen Triggers automatisch umgesetzt werden.

Was passiert bei Replikationskonflikten?

Beim synchronen Modus führen diese ohne Einschränkung zur gleichen Exception, die auch auftritt, wenn die beiden konkurrierenden Operationen auf einer Datenbank ausgeführt werden.

Was passiert, wenn ein Replikationspartner nicht verfügbar ist?

Normalerweise wird dann dieser Partner im asynchronen Modus weiter bedient. Auf Wunsch kann im Ausnahmefall aber auch bis zur erneuten Verfügbarkeit jede neue Transaktion verboten werden. Das ist aber selten gewünscht.

zurück zum Seitenanfang

Müssen alle Daten repliziert werden?

Nein. Die IBExpert Replikation erzeugt die Replikationsobjekte durch eine Stored Procedure. Diese steht Ihnen im Quellcode zur Verfügung und kann beliebige Ausnahmen von der Replikation ausschließen.

Können Generatoren repliziert werden?

Nein, da Generatoren nicht Transaktionskonsistent sind. Wir haben aber verschiedene Verfahren, um Generatoren für den asynchronen Betrieb zu synchronisieren, so dass ausreichend Sicherheit gegen Primärschlüsselkonflikte gegeben ist. Im synchronen Betrieb können ggf. die Generatoren von einem führenden Master Vorrang bekommen.

Kann man in einer Session mit inaktiver Replikation arbeiten?

Durch Benutzung des speziellen Replikationsusers lassen sich Befehle auch ohne Replikation ausführen. Das sollte aber mit Vorsicht genutzt werden.

Welche Befehle sollten gesondert behandelt werden?

Für Massenoperationen, z.B. DELETE FROM TABLE, würde die IBExpert Replikation normalerweise jeden einzelnen Datensatz gesondert abarbeiten. Für solche Fälle kann mit Hilfe einer speziellen Prozedur ein solcher Befehl auch als ein Befehl übertragen werden.

Was muss ich machen, wenn ich selbst Metadaten geändert habe?

Wenn Sie sich an alle Regeln gehalten haben (z.B. keine Tabelle ohne Primärschlüssel), dann müssen Sie nach der Metadatenänderung nur noch eine Prozedur aufrufen, die alle erforderlichen Replikationsobjekte erzeugt. Um die Metadatenänderungen auf allen Systemen parallel auszuführen, gibt es spezielle Prozeduren, mit denen Sie das SQL auf alle im Cluster aktiven Datenbanken parallel ausführen können. Alternativ bietet die IBExpert IDE auch spezielle Funktionen, dieses auch bei interaktiven Änderungen automatisch auszuführen.

zurück zum Seitenanfang

Wie kann ich eine IBExpert Replikation beauftragen?

Sie benötigen nur eine einfache Master-Slave Konfiguration für den Einsatz Ihrer Datenbank an Ihrem Unternehmensstandort? Oder möchten Sie die IBExpert Replikation an ihre Kunden, Filialen oder Mitarbeiter ausliefern? Für ein Angebot über Distributionssoftware kontaktieren Sie bitte sales@ibexpert.biz oder +49 4407 3148770.

Ist das IBExpert Replikationssystem vergleichbar mit anderen Firebird Replikationslösungen?

Unser System basiert auf 15 Jahren Entwicklungszeit in Enterprise-Umgebungen, bei denen sämtliche andere Lösungen aus verschiedenen technischen Gründen und konzeptionellen Schwächen nicht einsetzbar sind. Wir garantieren Ihnen Wartungsfreiheit, Stabilität und Performance, wenn Sie sich an die im Workshop vermittelten Regeln halten.

Diese Artikel ist auch als PDF Download verfügbar.

zurück zum Seitenanfang

<< FAQs IBExpert Personal Edition | Dokumentation | Firebird 2 Schnellanleitung >>