sql >> Database >  >> RDS >> Sqlserver

Snapshots van SQL Server-database -1

Hallo

In dit artikel zal ik Database Snapshots in SQL Server uitleggen. Database Snapshot is een functie die wordt geleverd met SQL Server 2005 en is een doorlopende functie in 2008, 2012, 2014, 2016, SQL Server 2017 enzovoort. Databasemomentopname; De eenvoudigste definitie is dat er op elk moment een alleen-lezen kopie van de database of een momentopname van de database is.

Wanneer het snapshot-proces wordt uitgevoerd, neemt SQL Server de huidige afbeelding van de geselecteerde database, maar heeft niet de huidige fysieke gegevens op de schijf voor de Snapshot-database.

Er zijn unieke fysieke gegevens en deze zijn alleen voor de productiedatabase. Het terugdraaien van transacties ongedaan maken terwijl de momentopname wordt gemaakt. Alle wijzigingen die in de snapshot-database worden gemaakt, worden weggeschreven naar het Sparse File voor Snapshot-database.

Dit betekent dat als iemand gegevens in de Snapshot-database heeft gewijzigd wanneer iemand een selectie opvraagt ​​die verband houdt met dezelfde gegevens uit Snapshot , SQL Server de gewijzigde gegevens uit het Sparse-bestand zal lezen en de ongewijzigde gegevens uit de oorspronkelijke database zal lezen.

Het mooiste portret dat dit scenario samenvat, is de volgende foto die is gepubliceerd door MSDN.

Zoals de bovenstaande afbeelding laat zien, worden in het eerste geval 3 van de 10 pagina's van de productiedatabase bijgewerkt. Deze Updates zijn ook geschreven in Sparse File zoals weergegeven in het eerste geval. in het 2e geval worden 8 pagina's uit de brondatabase bijgewerkt en 7 pagina's naar het schaarse bestand geschreven.

Wanneer een rapport of query wordt uitgevoerd vanuit Momentopname, leest SQL Server ongewijzigde pagina's uit de SQL Server-brondatabase en leest SQL Server gewijzigde pagina's uit het Sparse-bestand.

Het belangrijkste doel van Snapshot is om een ​​stabiel rapport of testdatabase voor ontwikkelaars te maken voor een bepaald interval door een back-up te maken van een van de databases en rapporten te maken via Snapshot. als er kleine fouten optreden in de productiedatabase, kan de beheerder vanuit Snapshot terugkeren naar de oorspronkelijke staat.

Het is echter erg belangrijk dat de Snapshot-database één-op-één is verbonden met de brondatabase. Als deze wordt verwijderd of gemigreerd, kan de hoofddatabase niet worden geretourneerd vanuit de Snapshot-database. Daarom is de Snapshot-database niet bepaald een back-upstrategie voor SQL Server. Het kan worden gebruikt voor testdatabases.

Ik zal in de volgende post blijven vertellen over de momentopname van de SQL Server-database.


  1. SQLite-tabellen weergeven

  2. Hoe kan ik een SQL Server-verbindingsreeks instellen?

  3. Hoe synchroniseer ik met de lokale database en ontleden?

  4. Wat is controlebeperking in SQL Server - SQL Server / TSQL-zelfstudie, deel 82