Hallo
Ich werde Datenbank-Snapshots in SQL Server in diesem Artikel weiter erläutern.
Lesen Sie frühere Artikel vor diesem Beitrag.
SQL Server-Datenbank-Snapshots -1
SQL Server-Datenbank-Snapshots -2
SQL Server-Datenbank-Snapshots -3
Dieser Fehler ist sehr beängstigend und ein finanzieller Verlust für die Produktionsdatenbank.
Wir werden die Snapshot-Datenbank verwenden, um von diesem Fehler zurückzukehren. Wir verwenden die AWBuildVersion-Tabelle der Snapshot-Datenbank, um die AWBuildVersion-Tabelle in der AdventureWorks-Datenbank zu erstellen. Wir werden dafür den Befehl Select * into verwenden. Der Screenshot nach dem Ausführen des Skripts sieht wie folgt aus. Wie durch die rote Linie angezeigt, wird die gelöschte Tabelle mit ihren Daten in die Quelldatenbank zurückgegeben.
Machen wir ein weiteres ähnliches Beispiel, um verständlicher zu sein. Lassen Sie uns die Daten einer beliebigen Tabelle löschen und sie erneut aus der Snapshot-Datenbank zurückgeben. Wie in Abbildung 1.1 unten dargestellt, wird die BillOfMaterials-Tabelle am Ende der ProductionWorks-Datenbank aus der AdventureWorks-Datenbank gelöscht. Wenn wir gleichzeitig den Select-Zähler auswählen, wird der 0-Datensatz abgefragt, wie im Bild unten gezeigt.
Wir verwenden die Snapshot-Datenbank erneut, um von diesem Fehler zurückzukehren. Wie in 2.1 oben führen wir das Einfügen desselben Schemas und derselben Tabelle der Snapshot-Datenbank in die entsprechende Tabelle in der Quelldatenbank durch. Auf die gleiche Weise wird die gleiche Anzahl von Zeilendatensätzen eingefügt, wie in Bild 2.2 gezeigt, wenn wir Select Count abgefragt haben.
Lassen Sie uns abschließend einen Administratorfehler aus der Snapshot-Datenbank machen, und dieses Mal werden wir die Quelldatenbank aus der Snapshot-Datenbank wiederherstellen. Daher kehrt der Snapshot der AdventureWorks-Datenbank in den ursprünglichen Zustand zurück. Ich lösche die Daten der BillOfMaterials-Tabelle aus dem Production-Schema und löschte gleichzeitig die SalesOrderDetail-Tabelle unter dem Sales-Schema. Der Screenshot ist wie folgt. Da die Daten der BillOfMaterials-Tabelle am Ende des Produktionsschemas gelöscht wurden, wird die SalesOrderDetail-Tabelle nicht angezeigt, da sie gelöscht wurde.
Wir haben viele Änderungen in der Quelldatenbank vorgenommen, wir haben gesagt, dass diese Änderungen immer in die Sparse-Datei geschrieben werden. Das folgende Bild zeigt die endgültige Version der Sparse-Datei. Während sich die ursprüngliche Größe 1 nicht geändert hat, hat sich die ursprüngliche Sparse-Dateinummer 2 erhöht. Der Grund dafür ist, wie gesagt, dass alle Änderungen, die in der Quelldatenbank vorgenommen werden, hier geschrieben werden. Wenn der Benutzer also geänderte Daten liest, liest er aus der Sparse-Datei. Wenn Benutzer unveränderte Daten abfragen, werden sie aus der Quelldatenbank gelesen.
Kehren wir nun zu Snapshot zurück.
SQL Server 2017 Database Snaphot Restore coderestore
database
AdventureWorks
from
database_snapshot=
'AdventureWorksSnaphot'
Wir können alle abgelegten und gelöschten Tabellen abfragen, nachdem wir den Snapshot wie oben gezeigt wiederhergestellt haben.