SQL Server Snapshot Database

SQL Server Snapshot Database

I SQL-serveren er et database-øyeblikksbilde et skrivebeskyttet, statisk visning av en gitt database (kildedatabase). Et øyeblikksbilde fanger gjeldende tilstand i databasen på tidspunktet for øyeblikksbildefangst. Dette betyr at et database -øyeblikksbilde er transaksjonelt konsistent.

Databasens øyeblikksbilde er lokalisert i samme tilfelle som kildedatabasen. Selv om øyeblikksbilder gir en skrivebeskyttet visning i dataene fra måldatabasen, er de kildeavhengig. Dette betyr at størrelsen kan vokse når endringene brukes på kildedatabasen. Tilsvarende blir øyeblikksbildet også ødelagt hvis kildedatabasen er ødelagt.

Det er derfor viktig å huske på at databasens øyeblikksbilder ikke fungerer som sikkerhetskopiering mot feil som diskfeil eller databasekorrupsjon.

Forsikre deg om å ta fulle eller delvis sikkerhetskopiering for databasen din for å beskytte den mot slike feil.

La oss diskutere hvordan vi kan ta et database -øyeblikksbilde i SQL -serveren.

Eksempel på database og tabell

Før vi diskuterer hvordan du tar et øyeblikksbilde av en database, la oss sette opp en eksempeldatabase for illustrasjonsformål.

Spørsmålene er som gitt i følgende:

Drop Database hvis eksisterer inventar;
Opprette databasebeholdning;
Bruk varelager;
Slippbord hvis det eksisterer produkter;
Lag bordprodukter
(
id int identitet primær nøkkel ikke null,
produktnavn varchar (100),
Produsenten varchar (50),
mengde int ikke null,
pris int standard 0,
in_stock bit
);
sett inn i produkter (produktnavn, produsent, mengde, pris, in_stock)
Verdier ('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 "Klasse S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini -ledet buet spillskjerm - 2021', 'Samsung', 50, 2999.90, 1);

SQL Server Take Database Snapshot

For å ta et øyeblikksbilde av en gitt database, bruker vi Create Database Query etterfulgt av AS Snapshot -leddet.

Syntaksen er som følger:

Opprett databasedatabase_snapshot_name

(Name = logical_file_name, filname = 'os_file_name') [, ... n]
Som øyeblikksbilde av source_database_name;

For å ta et øyeblikksbilde av "Inventory" -databasen som vi opprettet tidligere, kan vi kjøre spørringen som vist i følgende:

Opprett databasebeholdning_snap på
(Navn = Inventory,
filnavn = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLServer \ MSSQL \ Backup \ Inventory.ss ')
som øyeblikksbilde av inventar;

Når du er opprettet, kan du se øyeblikksbildet ved å bruke SSMS ved å navigere til databasen - Database Snapshot.

Der tok du et øyeblikksbilde av databasen din. Du kan bruke øyeblikksbildene til å gjenopprette databasen til et bestemt punkt som øyeblikksbildet ble tatt.

For å gjenopprette databasen ved hjelp av øyeblikksbildet, kan du kjøre følgende spørsmål:

Bruk master;
Gjenopprett databasedatabase_navn
Fra Database_SnapShot = SnapShot_Name;

MERK: Gjenopprette en database -øyeblikksbilde krever at du bruker Master -databasen før du utfører operasjonen.

Eksempel:

Bruk master;
Gjenopprett databasebeholdning
fra
Database_snapshot = 'inventar_snap';

Dette skal gjenopprette databasen fra øyeblikksbildet.

Konklusjon

Dette innlegget dekket prosessen med å ta og gjenopprette en database -øyeblikksbilde ved hjelp av Transact -SQL -kommandoene.

Takk for at du leste!