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

Snapshot del database di SQL Server -1

Ciao

In questo articolo, spiegherò gli snapshot di database in SQL Server. Database Snapshot è una funzionalità fornita con SQL Server 2005 ed è una funzionalità in corso nel 2008, 2012, 2014, 2016, SQL Server 2017 e così via. Istantanea del database; La definizione più semplice è che una copia di sola lettura del database o un'istantanea del database in un dato momento.

Quando viene eseguito il processo di snapshot, SQL Server acquisisce l'immagine corrente del database selezionato ma non dispone dei dati fisici correnti sul disco per il database di snapshot.

C'è un dato fisico univoco ed è solo per il database di produzione. Annulla il rollback delle transazioni durante l'acquisizione dello snapshot. Eventuali modifiche apportate al database degli snapshot verranno scritte nel File Sparse per il database delle istantanee.

Ciò significa che se qualcuno ha modificato i dati nel database Snapshot quando qualcuno interroga qualsiasi select relativo agli stessi dati da Snapshot , SQL Server leggerà i dati modificati dal file Sparse e leggerà i dati non modificati dal database originale.

Il ritratto più bello che riassume questo scenario è l'immagine seguente pubblicata da MSDN.

Come mostrato nell'immagine sopra, nel 1° caso, 3 pagine su 10 del Database di produzione sono in aggiornamento. Questi Aggiornamenti sono scritti anche in Sparse File come mostrato nel 1° caso. nel 2° caso, vengono aggiornate 8 pagine dal database di origine e 7 pagine vengono scritte nel file sparse.

Quando un report o una query viene eseguito da snapshot, SQL Server legge le pagine non modificate dal database di origine di SQL Server e SQL Server legge le pagine modificate dal file Sparse.

Lo scopo principale di Snapshot è creare un report stabile o testare un database per gli sviluppatori per un determinato intervallo eseguendo un backup di qualsiasi database e creando report tramite Snapshot. se si verificano errori minori nel database di produzione, l'amministratore può tornare al suo stato originale da Snapshot.

Tuttavia, è molto importante che il database Snapshot sia connesso uno a uno al database di origine. Se viene eliminato o migrato, il database principale non può essere restituito dal database Snapshot. Ecco perché il database Snapshot non è esattamente una strategia di backup per SQL Server. Può essere utilizzato per i database di test.

Continuerò a parlare dell'istantanea del database di SQL Server nel prossimo post.