sql >> Database >  >> RDS >> Sqlserver

Snapshots van SQL Server-database -3

Hallo

Ik zal in dit artikel doorgaan met het uitleggen van database-snapshots in SQL Server.

Lees eerdere artikelen voor dit bericht.

Snapshots van SQL Server-database -1

Snapshots van SQL Server-database -2

Database-snapshots onder het tabblad Databases zijn als volgt. Aangezien er geen momentopname van een database is gemaakt, is het tabblad Databasemomentopnamen leeg zoals het wordt weergegeven

U kunt geen momentopname maken in SQL Server Management Studio, u moet T-SQL-code gebruiken in de volgende afbeelding. Een voorbeeld is de AdventureWorks-database, de testdatabase die ik in veel voorbeelden heb gebruikt.

SQL Server Database Snaphot code

CREATE DATABASE AdventureWorksSnaphot  ON
( NAME = AdventureWorks_Data, FILENAME = 'd:\Snapshot\AdventureWorks_SparseFile.ss' )
AS SNAPSHOT OF AdventureWorks;
GO

AdventureWorksSnaphot is gemaakt onder aan het tabblad Snaphot, zoals het aan de linkerkant wordt weergegeven wanneer het script wordt uitgevoerd. Deze database is slechts een afbeelding of momentopname van de AdventureWorks-database. Hoewel een Sparse-bestand wordt gemaakt tot de grootte van de AdventureWorks-database op de schijf, wordt het aanvankelijk gemaakt als een zeer kleine grootte. De volgende afbeelding toont de locatie van de AdventureWorksSnaphot-database op de fysieke schijf.

De grootte 1 van de bovenstaande afbeelding (1) is eigenlijk de grootte van de AdventureWorks Source-database. Grootte 2 is de grootte van het Sparsefile-bestand van AdventureWorksSnaphot. Sparse bestand zoals weergegeven in de onderstaande afbeelding, alleen de brondatabase worden gewijzigde pagina's.

Wanneer we de Snapshot-database onderzoeken, bevinden alle items zoals Tabel, Weergaven, Opgeslagen Procedures enz. in de Bron zich allemaal in de Snapshot-database. Zoals in de afbeelding hieronder, kunnen dezelfde tabellen als de Brondatabase ook worden opgevraagd vanuit de Snaphot-database.

Ik zei dat Snapshot-database ook effectief is voor beheerders- en gebruikersfouten. Bijvoorbeeld fouten zoals het volledig verwijderen van een tabel of het afkappen van de tabel bekende beheerdersfouten. De tabel AWBuildVersion die in Frame 1 onder het DBO-schema uit de AdventureWorks-database wordt weergegeven, wordt bijvoorbeeld verwijderd. Wanneer het tabblad Tabellen wordt vernieuwd nadat het script is uitgevoerd, wordt de AWBuildVersion-tabel verwijderd uit de AdventureWorks Source-database zoals deze wordt weergegeven in afbeelding 2 hieronder.

Wat gaan we nu doen als DBA?

Ik zal het in de volgende post blijven vertellen.


  1. ORA-02287:volgnummer is hier niet toegestaan

  2. Hoe het verschil in uren (decimaal) tussen twee datums in SQL Server te berekenen?

  3. Voeg een gegenereerde kolom toe aan een tabel in SQLite

  4. SQL Server 2016 - Introduction to Stretch Database