Bei der Replikation hast du einen Verteiler- und Verlegerserver. Dort erstellst du auf eine Datenbank eine Publikation, die einen oder mehrere Artikel enthalten kann. Ein Artikel kann dort z. B. aus Tabellen bestehen, die natürlich auch noch vertikal oder horizontal gefiltert werden können.
Zu dieser Publikation wird eine Replikationsmethode gewählt, wie z. B. die Snapshot- oder Transaktionsreplikation.
Auf der anderen Seite hast du dann einen Abonennten, der diese Publikation abonniert und per Push- oder Pull-Verfahren Aktualisierungen erhält, aber auch Änderungen senden könnte.
Beispiel: Du hast einen zentralen Server, auf dem die Umsätze deiner Verkaufsregionen Nord, Süd, Ost u. West gespeichert werden. Die einzelnen Standorte erhalten per Replikation die für sie relevanten Daten und geben dann ihre Änderungen an die Zentrale zurück. Dies wäre dann z. B. eine Mergereplikation.
Wofür ist Replikation?
Daten sollen verteilt und für Benutzer problemlos verfügbar gemacht werden. Es werden sozusagen Kopien der Daten erstellt, die in einem losen Verbund verteilt werden können. Dabei muss das Ziel nicht unbedingt ein SQL 2005 Server (Standard- oder Enterprise) sein, sondern auch ein Vertriebsmitarbeiter, der mit dem auf seinem Notebook installierten SQL 2005 Express arbeitet.
Wenn man von Datenbankspiegelung im SQL 2005 spricht, besteht vom Unternehmen die Anforderung, einen Server mit hoher Verfügbarkeit zu gewährleisten.
Nicht jedes Unternehmen kann sich einen Failover-Cluster leisten und als "kleinere" Alternative könnte man dort die Spiegelung einordnen.
Dort gibt es einen Prinzipalserver, der die Datenbank bereitstellt, optional einen Zeugenserver, der den primären und den Spiegeldatenbankserver überwacht und den Spiegelserver. Es gibt verschiedene Betriebsmodi, wie z. B. "hohe Verfügbarkeit", "hoher Schutz" oder "hohe Leistung". Die Datenbank auf dem Spiegelserver befindet sich im Wiederherstellungs-Modus.
Der Vorteil bei der Spiegelung ist, dass Clients, die per SQL Native Client oder .NET-Framework 2.0-Datenprovider auf die Datenbank zugreifen im Falle eines Ausfalls automatisch und für sie transparent zum Spiegelserver weitergeleitet werden. Bei anderen Datenzugriffstechnologien müsste der Client bei einem Serverausfall angepasst werden.
Spiegelung wird zur Gewährleistung der Redundanz auf individueller Datenbankebene verwendet. Oder auch wenn das Unternehmen nicht in clusterfähige Hardware investieren oder einfach weniger Verwaltungsaufwand betreiben möchte, wie das bei einem Failover-Cluster der Fall wäre.
Datenbankspiegelung und Replikation (Heterogen o. Peer-to-Peer) übrigens nur möglich mit Enterprise-, bzw. Developers-Edition.