Datenbankspiegelung und Datenbanksnapshots
Aktualisiert: 14. April 2006
Sie können die Vorteile einer Spiegeldatenbank, die aus Gründen der Verfügbarkeit verwaltet wird, auch für die ausgelagerte Berichterstellung ausnutzen. Zur Verwendung einer Spiegeldatenbank für die Berichterstellung können Sie Datenbanksnapshots für die Spiegeldatenbank erstellen und die Clientverbindungsanforderungen an den zuletzt erstellten Snapshot weiterleiten. Ein Datenbanksnapshot ist eine statische, schreibgeschützte, hinsichtlich der Transaktionen konsistente Momentaufnahme des Zustands einer Quelldatenbank, in dem sich diese zum Zeitpunkt der Erstellung des Snapshots befand. Zum Erstellen eines Datenbanksnapshots für die Spiegeldatenbank muss sich die Datenbank im synchronisierten Spiegelungsstatus befinden.
Im Gegensatz zur eigentlichen Spiegeldatenbank ist ein Datenbanksnapshot auch für Clients zugreifbar. Solange der Spiegelserver mit dem Prinzipalserver kommuniziert, können Sie Berichtsclients an eine Verbindung mit einem Snapshot weiterleiten. Da Datenbanksnapshots statisch sind, sind neue Daten nicht verfügbar. Sie müssen in regelmäßigen Abständen einen neuen Datenbanksnapshot erstellen und sicherstellen, dass Anwendungen eingehende Clientverbindungen an den neuesten Snapshot weiterleiten, um den Benutzern relativ neue Daten zur Verfügung zu stellen.
Ein neuer Datenbanksnapshot ist fast leer. Er nimmt jedoch im Laufe der Zeit an Größe zu, wenn immer mehr Datenbankseiten zum ersten Mal aktualisiert werden. Da jeder Snapshot für eine Datenbank auf diese Weise schrittweise größer wird, verbraucht jeder einzelne Datenbanksnapshot genauso viele Ressourcen wie eine normale Datenbank. Abhängig von der Konfiguration des Spiegelservers und des Prinzipalservers kann sich bei Vorhandensein einer übermäßig hohen Anzahl von Datenbanksnapshots auf einer Spiegeldatenbank die Leistung der Prinzipaldatenbank verringern. Sie sollten daher nur einige wenige, relativ neue Snapshots auf den Spiegeldatenbanken behalten. Nachdem Sie einen Ersatzsnapshot erstellt haben, sollten Sie eingehende Abfragen an den neuen Snapshot weiterleiten und den früheren Snapshot löschen, sobald alle aktuellen Abfragen abgeschlossen sind.
Hinweis: |
---|
Weitere Informationen zu Datenbanksnapshots finden Sie unter Datenbanksnapshots. |
Wenn ein Rollenwechsel stattfindet, werden die Datenbank und die zugehörigen Snapshots neu gestartet, wobei die Verbindung mit den Benutzern vorübergehend getrennt wird. Anschließend verbleiben die Datenbanksnapshots auf der Serverinstanz, auf der sie erstellt wurden und die zur neuen Prinzipaldatenbank geworden ist. Die Snapshots können nach dem Failover weiter verwendet werden. Dies bedeutet für den neuen Prinzipalserver jedoch eine zusätzliche Belastung. Falls in Ihrer Umgebung die Leistung eine wichtige Überlegung ist, sollten Sie auf der neuen Spiegeldatenbank einen Snapshot erstellen, sobald diese verfügbar ist, die Clients zu dem neuen Snapshot umleiten und alle Datenbanksnapshots aus der früheren Spiegeldatenbank löschen.
Hinweis: |
---|
Wenn Sie eine dedizierte, gut skalierte Berichterstellung bevorzugen, sollten Sie eine Replikation in Betracht ziehen. Weitere Informationen finden Sie unter Datawarehousing- und Berichtsserver. |
Beispiel
In diesem Beispiel werden Snapshots für eine gespiegelte Datenbank erstellt.
Angenommen, die AdventureWorks
-Datenbank wird in einer Datenbank-Spiegelungssitzung verwendet. In diesem Beispiel werden drei Datenbanksnapshots für die Spiegelkopie der AdventureWorks
-Datenbank erstellt, die sich auf Laufwerk F
befindet. Die Snapshots werden mit AdventureWorks_0600
, AdventureWorks_1200
und AdventureWorks_1800
bezeichnet, um den ungefähren Zeitpunkt ihrer Erstellung anzugeben.
Erstellen Sie den ersten Datenbanksnapshot für den Spiegel von
AdventureWorks
.CREATE DATABASE AdventureWorks_0600 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP') AS SNAPSHOT OF AdventureWorks
Erstellen Sie den zweiten Datenbanksnapshot für den Spiegel von
AdventureWorks
. Benutzer, die noch immerAdventureWorks_0600
verwenden, können diese auch weiterhin verwenden.CREATE DATABASE AdventureWorks_1200 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP') AS SNAPSHOT OF AdventureWorks
Die neuen Clientverbindungen können nun programmgesteuert an den zuletzt erstellten Snapshot weitergeleitet werden.
Erstellen Sie den dritten Snapshot für den Spiegel von
AdventureWorks
. Benutzer, die immer nochAdventureWorks_0600
oderAdventureWorks_1200
verwenden, können diese auch weiterhin verwenden.CREATE DATABASE AdventureWorks_1800 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP') AS SNAPSHOT OF AdventureWorks
Die neuen Clientverbindungen können nun programmgesteuert an den zuletzt erstellten Snapshot weitergeleitet werden.
So erstellen Sie einen Datenbanksnapshot
So zeigen Sie einen Datenbanksnapshot an
So löschen Sie einen Datenbanksnapshot
Siehe auch
Konzepte
Andere Ressourcen
Herstellen von Clientverbindungen mit einer gespiegelten Datenbank
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
14. April 2006 |
|
05. Dezember 2005 |
|