Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Datenbank-Snapshots -1

Hallo

In diesem Artikel werde ich Datenbank-Snapshots in SQL Server erläutern. Datenbank-Snapshot ist eine Funktion, die mit SQL Server 2005 geliefert wird und eine fortlaufende Funktion in 2008, 2012, 2014, 2016, SQL Server 2017 usw. ist. Datenbank-Snapshot; Die einfachste Definition ist eine schreibgeschützte Kopie der Datenbank oder ein Snapshot der Datenbank zu einem bestimmten Zeitpunkt.

Wenn der Snapshot-Prozess ausgeführt wird, nimmt SQL Server das aktuelle Image der ausgewählten Datenbank, hat aber nicht die aktuellen physischen Daten auf dem Datenträger für die Snapshot-Datenbank.

Es gibt eindeutige physische Daten, die nur für die Produktionsdatenbank bestimmt sind. Rollback von Transaktionen rückgängig machen, während der Snapshot erstellt wird. Alle an der Snapshot-Datenbank vorgenommenen Änderungen werden in die Sparse-Datei geschrieben für Snapshot-Datenbank.

Dies bedeutet, dass, wenn jemand Daten in der Snapshot-Datenbank geändert hat, wenn jemand eine Auswahl im Zusammenhang mit denselben Daten aus Snapshot abfragt, der SQL Server die geänderten Daten aus der Sparse-Datei und die unveränderten Daten aus der ursprünglichen Datenbank liest.

Das schönste Porträt, das dieses Szenario zusammenfasst, ist das folgende Bild, das von MSDN veröffentlicht wird.

Wie oben im Bild gezeigt, werden im ersten Fall 3 von 10 Seiten der Produktionsdatenbank aktualisiert. Diese Updates werden auch in Sparse File geschrieben, wie im 1. Fall gezeigt. im 2. Fall werden 8 Seiten aus der Quelldatenbank aktualisiert und 7 Seiten in die Sparse-Datei geschrieben.

Wenn ein Bericht oder eine Abfrage von Snapshot ausgeführt wird, liest SQL Server unveränderte Seiten aus der SQL Server-Quelldatenbank und SQL Server liest geänderte Seiten aus der Sparse-Datei.

Der Hauptzweck von Snapshot besteht darin, einen stabilen Bericht oder eine Testdatenbank für Entwickler für ein bestimmtes Intervall zu erstellen, indem eine Sicherungskopie einer beliebigen Datenbank erstellt und Berichte über Snapshot erstellt werden. Wenn in der Produktionsdatenbank geringfügige Fehler auftreten, kann der Administrator von Snapshot zum ursprünglichen Zustand zurückkehren.

Es ist jedoch sehr wichtig, dass die Snapshot-Datenbank eins zu eins mit ihrer Quelldatenbank verbunden ist. Wenn sie gelöscht oder migriert wird, kann die Hauptdatenbank nicht von der Snapshot-Datenbank zurückgegeben werden. Aus diesem Grund ist die Snapshot-Datenbank nicht gerade eine Sicherungsstrategie für SQL Server. Es kann für Testdatenbanken verwendet werden.

Ich werde im nächsten Beitrag weiter über den SQL Server-Datenbank-Snapshot berichten.