sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server Database Snapshots -4

Hej

Jeg vil fortsætte med at forklare databasesnapshots i SQL Server i denne artikel.

Læs tidligere artikler før dette indlæg.

SQL Server Database Snapshots -1

SQL Server Database Snapshots -2

SQL Server Database Snapshots -3

Denne fejl er meget skræmmende og økonomisk tab for produktionsdatabasen.

Vi vil bruge Snapshot-databasen til at vende tilbage fra denne fejl. Vi bruger AWBuildVersion-tabellen i Snapshot-databasen  til at oprette AWBuildVersion-tabellen i AdventureWorks-databasen. Vi vil bruge Vælg * i kommandoen til dette. Skærmbilledet efter at have kørt scriptet er som følger. Som angivet med den røde linje, returneres Dropped Table til kildedatabasen med dens data.

Lad os gøre et andet lignende eksempel med hensyn til at være mere forståelig. Lad os slette dataene i enhver tabel og returnere dem fra Snapshot-databasen igen. Som beskrevet i billede 1.1 nedenfor slettes BillOfMaterials-tabellen nederst i ProductionWorks-databasen fra AdventureWorks-databasen. Når vi vælger tælleren Vælg samtidig, bliver 0-posten forespurgt som vist på billedet nedenfor.

Vi bruger Snapshot-databasen igen for at vende tilbage fra denne fejl. Som i 2.1 ovenfor, indsætter vi det samme skema og tabel i Snapshot-databasen i den tilsvarende tabel i kildedatabasen. På samme måde indsættes det samme antal linjeposter som vist i billede 2.2, da vi forespurgte Select Count.

Lad os endelig lave en administratorfejl fra Snapshot-databasen, og denne gang vil vi gendanne kildedatabasen fra Snaphot-databasen. Således vender AdventureWorks-database-øjebliksbilledet tilbage til den oprindelige tilstand. Jeg sletter dataene i BillOfMaterials-tabellen fra produktionsskemaet, og samtidig droppede jeg SalesOrderDetail-tabellen under Sales-skemaet. Skærmbilledet er som følger. Da dataene i BillOfMaterials-tabellen i bunden af ​​produktionsskemaet er blevet slettet, vises SalesOrderDetail-tabellen ikke, fordi den er slettet.

Vi lavede mange ændringer i kildedatabasen, vi har sagt, at disse ændringer altid skrives til Sparse File. Følgende billede viser den endelige version af Sparse-filen. Mens den originale størrelse 1 ikke er ændret, er den originale Sparse-fil nummer 2 øget. Grunden til dette er som sagt, at alle ændringer foretaget i Kildedatabasen er skrevet her. Så når brugeren læser ændrede data, læser den fra Sparse File. Hvis brugeren forespørger om uændrede data, vil de blive læst fra kildedatabasen.

Lad os nu vende tilbage til Snapshot.

SQL Server 2017 Database Snaphot Restore code

restore database  AdventureWorks from database_snapshot='AdventureWorksSnaphot'

Vi kan forespørge på alle tabte og slettede tabeller efter gendannelse af Snapshot som vist ovenfor.


  1. PostgreSQL dato() med tidszone

  2. Opretter forbindelse til SQL Server 2012 ved hjælp af sqlalchemy og pyodbc

  3. Sådan beregnes forskellen mellem to tidsstempler i PostgreSQL

  4. Oracle Rows to Column Transformation