2009-02-08 13 views
23

Soweit ich weiß, bietet SQL Server 4 Techniken für eine bessere Verfügbarkeit.Was sind die Szenarien für die Verwendung von Spiegelung, Protokollversand, Replikation und Clustering in SQL Server

Ich denke, das sind die primären Einsatzszenarien, in Zusammenfassung: -

1) Replikation für Online-Offline-Datensynchronisation Szenarien in erster Linie geeignet wäre (Laptop, mobile Geräte, Remote-Servern).

2) Lügt Versand verwendet werden könnte, einen Failover-Server mit Handschaltung zu haben, während

3) Datenbank Mirroring ist eine automatische Failover Technik

4) Failover Clustering ist eine erweiterte Datenbanktyp-Spiegelung.

Bin ich richtig?

Danke.

+2

Ausgezeichnete Antwort. Eine Sache möchte ich hinzufügen .. jetzt, da es fast 2013 ist. Frau rät, keine Spiegelung zu verwenden. Es wird irgendwann verschwinden. Außerdem ist die Spiegelung auf nur einen Partner beschränkt. –

Antwort

24

Failover-Clustering ist eine Verfügbarkeitstechnologie, die Redundanz auf Hardwareebene bietet und auf der Windows Clustering-Technologie aufbaut, d. H. Sie ist nicht spezifisch für SQL Server.

Beispielsweise explodiert der Prozessor auf Server A. Glücklicherweise ist Server A Teil eines SQL Server-Clusters und Server B übernimmt innerhalb von Sekunden die Aufgabe, den SQL Server-Dienst bereitzustellen. All dies geschieht automatisch und ist für die Datenbankbenutzer und die Anwendung transparent, die vom Cluster bedient werden.

Der Hauptunterschied zwischen Datenbankspiegelung und Clustering besteht darin, dass SQL Clustering für Redundanz auf Instanzebene sorgt, während Datenbankspiegelung für Redundanz auf Datenbankebene sorgt.

Der folgende Link bietet einen Vergleich zwischen diesen beiden Technologien, die Sie möglicherweise verwenden.

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

Log Versand ist eher eine Redundanz Technologie.

Zum Beispiel kann damit eine vollständige Kopie Ihrer primären Umgebung bereitgestellt werden, die normalerweise als Warm-Standby verwendet wird, die manuell online geschaltet werden kann. Dies kann verwendet werden, um zusätzliche Redundanz für Ihre Sicherungsstrategie bereitzustellen. Der Protokollversand kann auch dazu verwendet werden, Berichte von einem primären Server zu entfernen, indem eine schreibgeschützte Kopie der Produktionsdatenbank an einem alternativen Speicherort/Server erstellt wird.

Replikation ist eine ziemlich vielfältige Technologie und kann verwendet werden, um eine Reihe von verschiedenen Szenarien zu berücksichtigen, deren Auswahl den spezifischen Typ der Replikation bestimmt, die implementiert wird.

Zum Beispiel kann die Mergereplikation verwendet werden, um verteilte Verarbeitung zu unterstützen, indem die Arbeitslast einer Anwendung auf mehrere Server verteilt wird, d. H. Verteilte Verarbeitungsarchitekturen.

Die Mergereplikation erfordert häufig eine Anwendung, die sich ihrer Umgebung relativ bewusst ist. Auch Techniken wie die Konfliktlösung müssen berücksichtigt werden, um die Datenkonsistenz in der gesamten integrierten Umgebung zu gewährleisten.

Die Transaktionsreplikation kann auf ähnliche Weise zum Protokollieren des Versands verwendet werden, Sie können jedoch die spezifischen Objekte einschränken, die auf den Abonnenten repliziert werden. Dies kann nützlich sein, wenn nur eine Teilmenge von Tabellen für Berichtszwecke benötigt wird.

Ich hoffe, dass dies die Dinge für Sie ein wenig aufklärt. Sie können eine Vielzahl von Dokumentationen zu jeder dieser Technologien in SQL Server-Büchern online finden oder nach jeder Technologie in Google suchen. Das heißt, wenn Sie spezifische Fragen haben, würde ich gerne helfen, so fühlen Sie sich frei, mich fallen zu lassen.

Prost, John

2

In SQL 2008 Enterprise gibt es auch etwas namens Change Data Capture (CDC), das wir dort erfolgreich einsetzen, wo ich arbeite.

Wir haben eine übermäßig normalisierte Datenbank, die es schwierig macht, Informationen herauszubekommen. Wir mussten die Datenstruktur zur gleichen Zeit ändern, als wir diese Daten für Berichte und ähnliches auf einen anderen Server replizieren.

Es funktioniert sehr gut für uns.

+0

Ich sprach kürzlich mit einem Benutzer von SQL Server 2005, der auch sagte, dass ihre Datenbank übermäßig normalisiert wurde und sie Daten auf einem Berichtsserver replizieren. Soll eine Datenbank nicht sowohl Transaktionen als auch Berichte verarbeiten? Warum müsste ich in 2 Server investieren und replizieren? Ich denke, das ist ein Overhead. – Chakra

+2

@Chakra, das ist keine Regel, es wird nur verwendet, wenn Ihr Server nicht gut mit der Datenbank arbeiten kann, die für die Produktionsauslastung und Berichterstellung verwendet wird. –

-2

AFAIK Protokoll Versand und Replikation wäre wahrscheinlich besser umgekehrt.

Der Protokollversand ist eine geplante Synchronisation, daher wäre die Replikation besser für das manuelle Wechseln geeignet, da der Backup-Server so aktuell ist, wie es möglich wäre, es sei denn, Sie hätten ein Kommunikationsproblem Problem).

Offline-Daten sind nicht so empfindlich auf Verzögerungen wie ein Backup-Server, aber persönlich sehe ich keine Notwendigkeit für den Log-Versand überhaupt, ich kann nicht sehen, wann es jemals besser geeignet wäre Alternative zur Replikation (aber es könnte sein, dass die Replikation nicht vor sql2005 implementiert wurde)

Vielleicht verwirre ich die Replikation mit Spiegelung, und als Hinweis, Spiegelung gibt Ihnen keine automatische Failover, nur HA-Cluster gibt Ihnen Diese Funktionalität, das heißt:

mit Atleast SQL Server 2005 Standard, Windows Enterprise und einem gemeinsamen Datenspeicher (wie ein SAN).

+0

Sie liegen falsch. Die Spiegelung hat einen Failover, ist aber nur dann automatisch, wenn Sie eine Zeuge-SQL-Instanz verwenden. Die Spiegelung funktioniert auf Datenbankebene und sendet Transaktionen an die entfernte SQL-Instanz. Wenn sie sich im Modus mit hoher Sicherheit befindet, wird eine Transaktion nur dann ausgeführt, wenn die entfernte Seite die Transaktion ausgeführt hat. Der Unterschied zur Transaktionsreplikation besteht darin, dass Schemaänderungen und das Hinzufügen von Tabellen möglich sind, da es sich um einen vollständigen Datenbankspiegel handelt. Die Replikation ist an Datenbankobjekte gebunden. Wenn Sie also ein neues Objekt in der Datenbank erstellen, wird es nicht automatisch hinzugefügt. LogShipping hat eine höhere Synchronisationslatenz. –

+0

Das stimmt, eine weitere Untersuchung gab mir diese Schlussfolgerung später, bevor diese Antwort eingegeben wurde. HA-Cluster hat jedoch den Vorteil mit voller Umschaltung zwischen den beiden Knoten, die Spiegelung nicht hat. Einmal gescheitert, müssen Sie die Spiegelung manuell "rückwärts" einrichten. – jishi