Datenbank replizieren mit SQLSyncer

Nachdem wir in einem vorausgehenden Artikel über die Migration einer Datenbank in einen Docker Container betrachtet haben, wollen wir uns heute anschauen wie wir eine Datenbank mithilfe des SQLSyncers replizieren können.

Unter der Replikation einer Datenbank versteht man den kontinuierlichen Datenabgleich einer Datenbank mit einer Kopie der Datenbank an einem sekundären Standort. Mit dem SQLSyncer kann eine solche Replikation auf zwei unterschiedliche Arten realisiert werden:

  1. Synchronisation einer zuvor migrierten Datenbank

    Eine Quell-Datenbank wird erst an einen sekundären Standort migriert und anschließend die Änderung an der Datenbank (einschließlich der Änderungen die während der Migration angewendet wurden) auf der Ziel-Datenbank repliziert.

  2. Synchronisation einer Datenbank mit einer sekundären Datenbank

    Alle Änderungen an einer Quell-Datenbank mit einer existierenden Kopie der Datenbank an einem sekundären Standort werden auf der Ziel-Datenbank repliziert.

Die Gründe bzw. Vorteile der Verwendung einer Replikation sind vielseitig: In einer Entwicklungsumgebung in der wiederholt Änderungen oder Tests an einer Muster-Datenbank vorgenommen werden müssen – für Umgebungen die unter einer räumlichen Separation leiden und eine gemeinsame Basis benötigen oder im Fall einer Migration in einer hochproduktiven Umgebung, in der die Erreichbarkeit der Quell-Datenbank unabdinglich ist und während der Migration Änderungen am System umgesetzt werden können. Die Liste ist endlos.

Transfer Properties – Datenbank synchronisieren

Im den folgenden Abschnitten werden wir unser Beispiel vom letzten Artikel, in dem wir eine Datenbank auf einen Docker Container migriert haben, erweitern und zusätzlich dafür sorgen, dass die Änderungen an der Quell-Datenbank auf dem Replikat angewendet werden.

Wir beginnen mit der Erstellung einer Konfiguration. Dafür wählen wir die Schaltfläche mit der Aufschrift “Configuration” und werden zum Setup weitergeleitet.

Wir wählen zuerst einen Namen für unsere neue Konfiguration, bevor wir den Quell- und Ziel-Server für die Migration definieren.

Als nächstes können wir die sog. Transfer Properties für die Konfiguration wählen. An dieser Stelle ist es wichtig zu verstehen, dass die beiden Optionen Migrate database und Synchronise database unabhängig oder in Symbiose verwendet werden können. Dass bedeutet, dass sich folgende Möglichkeiten für die Transfer Properties ergeben:

  • Migration einer Quell-Datenbank
  • Migration einer Quell-Datenbank mit anschließender Synchronisation
  • Synchronisation einer Ziel-Datenbank basierend auf Änderungen an einer identischen Quell-Datenbank
  Ein besonders interessantes Szenario bietet die Migration einer Datenbank wobei lediglich die Struktur der Datenbankobjekte übertragen werden, die Änderungen an der Quelle anschließend jedoch synchronisiert werden. Es entsteht dabei ein Replikat der Quell-Datenbank, das jedoch nur über neue Informationen verfügt und keine historischen Daten hält.

In unserem Beispiel werden wir uns auf die Migration einer Datenbank mit anschließender Synchronisation beschränken. Das Vorgehen für die unterschiedlichen Optionen ist dabei aber nahezu analog.

Eine entscheidende Besonderheit die der SQLSyncer bietet, ist die frei wählbare Granularität der Synchronisation. Sie basiert auf zwei Parametern: Die Anzahl der Iterationen der Synchronisation und die Zeitspanne zwischen den einzelnen Iterationen.

In unserem Beispiel haben wir uns für 120 Iterationen und eine Zeitspanne zwischen den einzelnen Iterationen von 15 Minuten entscheiden. Das bedeutet, dass die Synchronisation über einen Zeitraum von insgesamt 30 Stunden (120 / 4 = 30) läuft und in einem 15-Minuten-Takt die Änderungen der Quelle auf dem Ziel repliziert werden.
Für Szenarien, in denen es entscheidend ist Änderungen entsprechend schnell auf dem Ziel zu erhalten, sollte eine geringere Zeitspanne zwischen den Iterationen, aber dafür eine höhere Anzahl an Iterationen gewählt werden.

Die Erstellung der Konfiguration kann von hier wie gewohnt abschlossen werden.

(Daten-) Integrität und Change Data Capture

Ein wichtiger Aspekt in der Arbeit mit Daten und Datenbanksystemen ist die Integrität der verwalteten Informationen. An dieser Stelle fragt man sich vielleicht: Wie schafft der SQLSyncer alle Änderungen schon während der initialen Migration zu erfassen und erwartungsgemäß umzusetzen? Hier kommt die Change Data Capture (CDC) Technologie von SQL Server zum vollen Einsatz. Noch vor der Anwendung von Änderungen (auch bei einer reinen Migration) werden mithilfe von CDC alle Datenbank-Tabellen erfasst und so Änderungen an der Datenbank auf Tabellenebene aufgezeichnet.
Basierend auf diesen Aufzeichnungen kann der SQLSyncer blitzschnell ein Delta zwischen Quell- und Zieldatenbank bestimmen und so alle ausgeführten CRUD-Operationen auf dem Ziel replizieren.

Selbst überzeugen

Seit Anfang diesen Jahres steht eine öffentlich zugängliche Demo-Version des SQLSyncer mit einer Laufzeit von 14-Tagen zur Verfügung. Profitieren Sie von der Innovation, die der SQLSyncer für den Workflow und Arbeitsalltag bietet und laden Sie sich hier die kostenlose Demo-Version herunter.

Bei Interesse am Erwerb einer Lizenz, Beratung, Problemen oder Fragen können Sie bequem über calendly.com/mainzerdatenfabrikgmbh einen unverbindlichen Termin mit uns vereinbaren oder unter info@madafa.azurewebsites.net eine Nachricht für uns hinterlassen.