sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server Databas Snapshots -4

Hej

Jag kommer att fortsätta att förklara databasögonblicksbilder i SQL Server i den här artikeln.

Läs tidigare artiklar före detta inlägg.

SQL Server Database Snapshots -1

SQL Server Databas Snapshots -2

SQL Server Databas Snapshots -3

Detta fel är mycket skrämmande och ekonomisk förlust för produktionsdatabasen.

Vi kommer att använda Snapshot-databasen för att återvända från detta fel. Vi använder tabellen AWBuildVersion i Snapshot-databasen  för att skapa tabellen AWBuildVersion i AdventureWorks-databasen. Vi kommer att använda Välj * i kommandot för detta. Skärmdumpen efter att ha kört skriptet är som följer. Som indikeras av den röda linjen returneras Borttagen tabell till källdatabasen med dess data.

Låt oss göra ett annat liknande exempel när det gäller att vara mer begriplig. Låt oss ta bort data från valfri tabell och returnera den från Snapshot-databasen igen. Som beskrivs i bild 1.1 nedan, raderas tabellen BillOfMaterials längst ned i ProductionWorks-databasen från AdventureWorks-databasen. När vi samtidigt väljer Välj antal, frågas posten 0 enligt bilden nedan.

Vi använder Snapshot-databasen igen för att återvända från detta fel. Som i 2.1 ovan, infogar vi samma schema och tabell i Snapshot-databasen i motsvarande tabell i källdatabasen. På samma sätt infogas samma antal radposter som visas i bild 2.2 när vi frågade Välj antal.

Låt oss slutligen göra ett administratörsfel från Snapshot-databasen, och den här gången kommer vi att återställa källdatabasen från Snaphot-databasen. Således återgår AdventureWorks databas ögonblicksbild till det ursprungliga tillståndet. Jag tar bort data från BillOfMaterials-tabellen från produktionsschema och samtidigt tappade jag SalesOrderDetail-tabellen under Sales-schemat. Skärmdumpen är som följer. Eftersom data i tabellen BillOfMaterials längst ned i produktionsschemat har raderats, visas inte tabellen SalesOrderDetail eftersom den har tagits bort.

Vi gjorde många ändringar i källdatabasen, vi har sagt att dessa ändringar alltid skrivs till Sparse File. Följande bild visar den slutliga versionen av Sparse-filen. Även om den ursprungliga storleken 1 inte har ändrats, har den ursprungliga Sparse-filen nummer 2 ökat. Anledningen till detta är som sagt att alla ändringar som görs i Källdatabasen skrivs här. Så när användaren läser ändrad data läser den från Sparse File. Om användaren frågar efter oförändrad data, kommer den att läsas från källdatabasen.

Låt oss nu gå tillbaka till Snapshot.

SQL Server 2017 Database Snaphot Restore code

restore database  AdventureWorks from database_snapshot='AdventureWorksSnaphot'

Vi kan fråga alla borttagna och borttagna tabeller efter att ha återställt Snapshot enligt bilden ovan.


  1. ODBC-anrop misslyckades med lagrad procedur - Skicka igenom förfrågan

  2. Hantera opålitliga nätverk när du skapar en HA-lösning för MySQL eller MariaDB

  3. Hur anropar man en lagrad procedur i ett orakelpaket med Entity Framework?

  4. MAX() – Hitta det maximala värdet i en kolumn i MySQL