Benutzer mit den meisten Antworten
MS SQL Datenbankabgleich in Echtzeit

Frage
-
Hallo Zusammen,
besteht die Möglichkeit (durch Konfiguration), zwei Datenbanken (MS SQL 2012) unterschiedlicher Standorte in Echtzeit miteinander zu synchronisieren?
Auf die jeweiligen Datenbanken wird schreiben zugegriffen und die Datenstruktur verwendet verschiedene Zwischentabellen, es werden Daten schreibend ausgetauscht und es werden verschachtelte Abfragedaten (u.a. datenbankübergreifend) verwendet.
Die Abarbeitung innerhalb einer Datenbank erfolgt seriell.
Könnte dieses Szenario direkt mit MS SQL 2012 umgesetzt werden (z.B. durch Verwendung von Replikation) oder werden u.U. zusätzliche Komponenten wie das Sync Framework benötigt?
Danke & Viele Grüße
Stefan
Antworten
-
Hallo Stefan,
wie definierst Du "Echtzeit"? Millisekunden, Sekunden oder vielleicht eher im Minutenbereich?
Wenn es im Minutenbereicht ausreicht (also bis zu 1 min), dann kannst Du es in der Tat mit der Mergereplikation lösen. Allerdings setzt die gewissen Anforderungen (ggf. Änderungen) an einer Tabelle voraus, was bei Third Party Produkten/Datenbank schwierige sein kann.
Z.B. muss eine eindeutige GUID Spalte vorhanden sein, Identity Werte müssen gesondern in der Replikation behandelt werden usw.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Donnerstag, 5. Dezember 2013 08:31
-
Hallo Zusammen,
1) besteht die Möglichkeit (durch Konfiguration), zwei Datenbanken (MS SQL 2012) unterschiedlicher Standorte in Echtzeit miteinander zu synchronisieren?
(2) Auf die jeweiligen Datenbanken wird schreiben zugegriffen und die Datenstruktur verwendet verschiedene Zwischentabellen, es werden Daten schreibend ausgetauscht und es werden verschachtelte Abfragedaten (u.a. datenbankübergreifend) verwendet.
(3) Die Abarbeitung innerhalb einer Datenbank erfolgt seriell.
...1) Im Prinzip gibt es dafür Replikation. Ich würde hier eher an Peer-to-Peer Transaktionsreplikation denken. Mergereplikation ist da eher zu statisch vom Konzept her, und auch der anfälligste Typ.
Hier findest Du weitere Hintergründe zu den Varianten: Auswählen des geeigneten Replikationstyps
2) Das mit der unterschiedlichen Datenstruktur verstehe ich jetzt allerdings nicht ganz. Dann wäre also doch nicht alles identisch synchron vermute ich.
Bei Datenbankübergreifenden Abfragen wird es natürlich noch eine Ebene komplexer. Da muss man eine Menge beachten. Nicht nur beim Aufbau sondern auch im Betrieb und bei Notfallwiederherstellungen.
3) serielle Abarbeitung? Soll das heißen es greift immer nur ein Prozess gleichzeitig auf ein Objekt, seriell nach einem anderen drauf zu?
Interessant. Aber letztlich sollte das nicht so entscheidend sein.
PS: aber wie Olaf schon sagte, "Echtzeit" ist letztlich nicht wirklich möglich. Es wir immer einen gewissen Zeitversatz geben.
Andreas Wolter | Microsoft Certified Master SQL Server
Blog: www.insidesql.org/blogs/andreaswolter
Web: www.andreas-wolter.com | www.SarpedonQualityLab.com- Bearbeitet Andreas.WolterMicrosoft employee Montag, 2. Dezember 2013 10:50 PS - Zeitdifferenz
- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Donnerstag, 5. Dezember 2013 08:31
Alle Antworten
-
Hallo Stefan,
wie definierst Du "Echtzeit"? Millisekunden, Sekunden oder vielleicht eher im Minutenbereich?
Wenn es im Minutenbereicht ausreicht (also bis zu 1 min), dann kannst Du es in der Tat mit der Mergereplikation lösen. Allerdings setzt die gewissen Anforderungen (ggf. Änderungen) an einer Tabelle voraus, was bei Third Party Produkten/Datenbank schwierige sein kann.
Z.B. muss eine eindeutige GUID Spalte vorhanden sein, Identity Werte müssen gesondern in der Replikation behandelt werden usw.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Donnerstag, 5. Dezember 2013 08:31
-
Hallo Zusammen,
1) besteht die Möglichkeit (durch Konfiguration), zwei Datenbanken (MS SQL 2012) unterschiedlicher Standorte in Echtzeit miteinander zu synchronisieren?
(2) Auf die jeweiligen Datenbanken wird schreiben zugegriffen und die Datenstruktur verwendet verschiedene Zwischentabellen, es werden Daten schreibend ausgetauscht und es werden verschachtelte Abfragedaten (u.a. datenbankübergreifend) verwendet.
(3) Die Abarbeitung innerhalb einer Datenbank erfolgt seriell.
...1) Im Prinzip gibt es dafür Replikation. Ich würde hier eher an Peer-to-Peer Transaktionsreplikation denken. Mergereplikation ist da eher zu statisch vom Konzept her, und auch der anfälligste Typ.
Hier findest Du weitere Hintergründe zu den Varianten: Auswählen des geeigneten Replikationstyps
2) Das mit der unterschiedlichen Datenstruktur verstehe ich jetzt allerdings nicht ganz. Dann wäre also doch nicht alles identisch synchron vermute ich.
Bei Datenbankübergreifenden Abfragen wird es natürlich noch eine Ebene komplexer. Da muss man eine Menge beachten. Nicht nur beim Aufbau sondern auch im Betrieb und bei Notfallwiederherstellungen.
3) serielle Abarbeitung? Soll das heißen es greift immer nur ein Prozess gleichzeitig auf ein Objekt, seriell nach einem anderen drauf zu?
Interessant. Aber letztlich sollte das nicht so entscheidend sein.
PS: aber wie Olaf schon sagte, "Echtzeit" ist letztlich nicht wirklich möglich. Es wir immer einen gewissen Zeitversatz geben.
Andreas Wolter | Microsoft Certified Master SQL Server
Blog: www.insidesql.org/blogs/andreaswolter
Web: www.andreas-wolter.com | www.SarpedonQualityLab.com- Bearbeitet Andreas.WolterMicrosoft employee Montag, 2. Dezember 2013 10:50 PS - Zeitdifferenz
- Als Antwort markiert Raul TalmaciuMicrosoft contingent staff Donnerstag, 5. Dezember 2013 08:31
-
Hallo,
haben die Tipps weitergeholfen?
Gruss,
RaulRaul Talmaciu, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.