SQL Server Review and Drop Database Snapshot

SQL Server Review and Drop Database Snapshot

Nel server SQL, un'istantanea del database è una vista statica di sola lettura di un determinato database (database di origine). Un'istantanea cattura lo stato attuale del database al momento dell'acquisizione dell'istantanea. Ciò significa che un'istantanea del database è transazionalmente coerente.

L'istantanea del database si trova nella stessa istanza del database di origine. Sebbene le istantanee forniscano una vista di sola lettura nei dati del database di destinazione, sono dipendenti dalla fonte. Ciò significa che le dimensioni possono crescere man mano che le modifiche vengono applicate al database di origine. Allo stesso modo, l'istantanea diventa anche corrotta se il database di origine è corrotto.

È quindi importante tenere presente che le snapshot del database non servono come backup contro errori come il fallimento del disco o la corruzione del database.

Assicurarsi di prendere backup completi o parziali per il tuo database per proteggere da tali guasti.

Discutiamo di come possiamo prendere un'istantanea del database nel server SQL.

Database di esempio e tabella

Prima di discutere come prendere un'istantanea di un database, impostiamo un database di esempio per scopi di illustrazione.

Le domande sono come previste da segue:

Drop database se esiste l'inventario;
Creare inventario del database;
Utilizzare l'inventario;
Drop tabella se esistono prodotti;
Crea prodotti da tavolo
(
Id Int Identity Key Primary non null,
Product_Name Varchar (100),
Produttore Varchar (50),
quantità int non null,
Prezzo int predefinito 0,
in_stock bit
);
Insert in Products (Product_Name, produttore, quantità, prezzo, in_stock)
Valori ('Apple iPad Air - 2022', 'Apple', 100, 569.99, 1),
("Samsung Galaxy Z Flip 4 - 2022", "Samsung", 302, 1569.00, 1),
("Sony PlayStation 5 - 2020", "Sony", 500, 499.99, 1),
('Samsung Galaxy Watch -5 Pro - 2022', 'Samsung', 600, 209 / .99, 1),
("Apple Watch Series 6 - 2022", "Apple", 459, 379.90, 1),
("Apple AirPods Pro - 2022", "Apple", 200, 199.99, 1),
('55 "Classe S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
("Schermata di gioco curvo Mini -LED di Odyssey Ark - 2021", "Samsung", 50, 2999.90, 1);

SQL Server prendi l'istantanea del database

Per prendere un'istantanea di un determinato database, utilizziamo la query di database Crea seguita dalla clausola AS Snapshot.

La sintassi è la seguente:

Crea database database_snapshot_name
SU
(Name = logical_file_name, fileName = 'os_file_name') [, ... n]
Come istantanea di source_database_name;

Ad esempio, per prendere un'istantanea del database "Inventario" che abbiamo creato in precedenza, possiamo eseguire la seguente query:

Crea database Inventory_Snap su
(Name = Inventory,
filename = 'C: \ Programmi \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQL \ Backup \ Inventory.ss ')
come istantanea dell'inventario;

SQL Server View Database Snapshot - SSMS

È possibile visualizzare le snapshot del database nello studio di gestione del server SQL navigando nei database - Snapshot del database.

SQL Server View Database Snapshot - Transact -SQL

Per visualizzare l'istantanea del database utilizzando la query Transact-SQL, eseguire quanto segue:

Seleziona Nome, Database_id, Source_database_id da sys.banche dati;

Questo dovrebbe restituire i database nel server. La colonna Source_database_id mostra il database di origine per una determinata istantanea.

Un esempio è il seguente:

Come mostrato dalla tabella precedente, il database Inventor_SNAP indica il database dell'inventario come sorgente.

SQL Server Drop Drop Database Snapshot - Transact -SQL

Per rimuovere un'istantanea del database, è possibile utilizzare la query come mostrato di seguito:

Drop database database_snapshot_name;

Esempio:

Drop Database Inventory_Snap;

Tieni presente che il comando Drop Database termina tutte le connessioni che utilizzano il database Inventory_SNAP.

Conclusione

In questo post, hai imparato a lavorare con le snapshot del database nel server SQL, inclusa la creazione di nuove snapshot del database, visualizzare le istantanee del database e rimuovere le istantanee dal server del server.

Grazie per aver letto!