Können Verfügbarkeitsgruppen die Transaktionsreplikation ersetzen?

8

Ich habe mir die neuen Funktionen von SQL Server 2012 angesehen und herausgefunden, wie sie meiner aktuellen Situation helfen können.

Derzeit arbeiten wir mit SQL Server 2008 R2 und replizieren die Datenbanken von zwei OLTP-Servern über die Transaktionsreplikation auf einen einzelnen Berichtsserver. Wir verwenden diese replizierten DBs dann für die Berichterstellung.

Ich bin daran interessiert, ob SQL Server 2012 und die Verfügbarkeitsgruppen dies ersetzen können. Anstelle der Transaktionsreplikation würde ich daher die neuen Verfügbarkeitsgruppen verwenden und die Datenbanken der beiden OLTP-Server auf den Berichtsserver spiegeln - wo die Berichterstellung möglich ist um auf die schreibgeschützten Replikate zuzugreifen.

Ich bin mir nicht sicher, ob dies gut oder überhaupt funktionieren wird.

Ich möchte mich von der Replikation entfernen, da dies Probleme mit meiner Bereitstellungsstrategie verursacht (Verwenden von VSDBCMD.exe). Ich möchte auch Verzögerungen bei der Neuinitialisierung der Replikation bei großen DBs vermeiden.

Hat jemand gute Beispiele oder Erfahrungen damit? Ist es möglich, mit lesbaren Replikaten von mehreren Servern auf einen einzelnen Server zu spiegeln, wie dies bei der normalen Spiegelung in niedrigeren Versionen der Fall ist?

Dies wurde ursprünglich hier gefragt: /programming/10415225/mirroring-and-availability-groups-in-sql2012 Entschuldigung, ich glaube, ich kann noch keine Fragen migrieren.

Meff
quelle

Antworten:

10

Von meiner Antwort auf StackOverflow gestrichen , nur um zu verhindern, dass andere sich um dieselbe Art von Antwort bemühen.

Persönlich denke ich, dass dies viel besser funktioniert als die Transaktionsreplikation, obwohl ich in einem echten Migrationsszenario keine formalen Vergleiche der beiden durchgeführt habe. Ich weiß, dass Sie mit der Menge an Problemen, die Leute mit der Transaktionsreplikation haben, im Vergleich zur Standardspiegelung (und dies ist ein Upgrade davon) sicherlich weniger Probleme haben werden.

Der größte Vorteil ist, dass die sekundäre Datei als schreibgeschützt markiert werden kann. Sie können also alle gewünschten Berichte ausführen, ohne die Spiegelung zu beeinträchtigen. Sie brauchen nur eine kräftigere Tempdb (da hierfür im Wesentlichen rcsi verwendet wird).

Natürlich müssen Sie sich darüber im Klaren sein, dass beide Seiten der AG vollständig lizenziert sein müssen, um das Replikat für schreibgeschützte Vorgänge verwenden zu können. Und beide Seiten müssen unter bestimmten Windows-Versionen ausgeführt werden (Enterprise oder besser unter 2008 R2 und niedriger; Standard oder besser ab 2012 und höher), da sie ein Failover-Clustering erfordern - die SQL-Instanzen in AGs müssen jedoch nicht geclustert werden Sie müssen auf dieser Infrastruktur im Betriebssystem sitzen.

Aaron Bertrand
quelle
Danke Aaron, ich werde es für andere Antworten offen lassen, da ich hoffe, hier mehr Meinung als Stack Overflow zu bekommen :)
Meff
Keine Sorge, ich habe vermutet, dass Sie es deshalb hier wiederholt haben und nicht versucht haben, das zu unterdrücken. Ich versuche nur, den Aufwand zu reduzieren.
Aaron Bertrand
Ich dachte nur, ich möchte darauf hinweisen, dass Windows Server 2012 keine Enterprise Edition für das Failover-Clustering benötigt. Dies ist jetzt in Standard verfügbar.
SomeGuy
@SomeGuy das stimmt, aber liegt es nicht daran, dass sie die Enterprise Edition weggenommen und Standard abgeschlossen haben? Die vier Editionen von Windows Server 2012 sind DataCenter, Standard (früher Enterprise), Essentials (früher SBS) und Foundations (scheint Web ähnlich zu sein?).
Aaron Bertrand
7

Vorteile der Transaktionsreplikation gegenüber Verfügbarkeitsgruppen für die Berichterstellung von Workloads

Als Gegenpol zur obigen Antwort sind hier einige Gründe aufgeführt, warum die Transaktionsreplikation eine bessere Lösung als Verfügbarkeitsgruppen für die Berichterstellung von Workloads sein kann.

  • Sie können eine Teilmenge von Tabellen in der Datenbank replizieren. Verfügbarkeitsgruppenreplikate sind immer die gesamte Datenbank. Wenn einige Tabellen vertrauliche Informationen enthalten, ist die Überwachung des Zugriffs einfacher, wenn alle Berichte für eine Datenbank erstellt werden, die diese Informationen nicht enthält.
  • Sie können die zu replizierenden Zeilen filtern, um eine hohe Granularität zu erzielen. Sie können beispielsweise abteilungsspezifische Informationen auf eine Vielzahl von Abteilungsberichtsservern replizieren, von denen jeder nur auf deren Informationen zugreifen kann.
  • Sie können eine völlig andere Indizierungsstrategie zwischen dem Herausgeber und dem Abonnenten verfolgen. Bei Verfügbarkeitsgruppen sind die Indizes identisch, und obwohl Statistiken auf dem Replikat erstellt und in Tempdb gespeichert werden, können Sie diese Replikation nicht optimieren.
  • Sicherheitsprobleme. Im Allgemeinen stellen Berichtsbenutzer mithilfe von SSMS, Zugriff oder Excel eine direkte Verbindung zur Datenbank her, und Sie möchten ihren Zugriff nur auf die Berichtsdatenbank beschränken.

Wenn keines dieser Probleme ein großes Problem darstellt, sind Verfügbarkeitsgruppen möglicherweise die bessere Wahl.

StrayCatDBA
quelle