mikä on tietokannan tilannekuva SQL Server

tietokannan tilannekuva on muuttumattoman kuvan luominen tietokannasta, Voit ajatella sen ottavan nykyisen kuvan tietokannasta.

jos selitän sen esimerkin kautta, se on selkeämpi.

otamme esimerkiksi adventureworks2014-tietokannan tilannekuvan. Luemme tätä kuvaa. AdventureWorks2014-tietokantaan ei ole vielä tehty muutoksia. Valintamme menevät alkuperäiseen tietokantaan, koska alkuperäisessä tietokannassa ei ole muutoksia.

jos alkuperäisessä tietokannassa tapahtuu muutoksia, nämä muutokset kirjoitetaan levylle erilliseen tilaan tilannevedosta varten (kutsutaan harvoiksi tiedostoiksi).

kun haluamme lukea tiedot, Jos tiedot ovat muuttuneet alkuperäisessä tietokannassa, luetaan tietojen muuttumaton versio sparse-tiedostosta. Näin kuvasta tulee ehjä.

vaikka se ei vie levytilaa heti tilannekuvan saatuaan, harvojen Tiedostojen koko kasvaa alkuperäisen tietokannan muutosten kasvaessa. Jos harvojen tiedostojen koko kasvaa eikä levyyn jää tilaa, tilannevedoksesta tulee epäilyttävä ja sinun täytyy poistaa tilannevedos.

sitä käytetään enimmäkseen Peilaustekniikalla.

suosittelen lukemaan artikkelini ”Database Mirroring on SQL Server”. Peilauksessa emme voi lukea toissijaisesta tietokannasta. Kun haluamme lukea toissijaisesta tietokannasta, voimme tehdä tämän toisiotietokannan tilannekuvan avulla.

ja tällä tavalla emme aiheuta raportille rasitetta ensisijaisessa tietokannassa tekemällä raporttikyselyjä toissijaisesta tietokannasta.

tai voit saada tietokannan tilannekuvan ennen eräpäivitys-tai poistotoiminnon suorittamista. Virheellinen päivitys-tai poistotoiminto voidaan peruuttaa tilannekuvan avulla. Se olisi paljon nopeampi tapa kuin varmuuskopioinnista palaaminen.

tilannekuvan tulisi olla samassa esiintymässä tietokannan kanssa.

jatketaan kahdella esimerkillä.

ensimmäisessä esimerkissä saadaan tilannekuva, jota voidaan lukea peilatun tietokannan toissijaisesta tietokannasta.

toisessa esimerkissä saamme tilannekuvan peruuttamaan virheellisen päivitysoperaation.

Example1:

ensinnäkin peilatun tietokannan on oltava synkroninen. Joten kuvan toissijaisen tietokannan pitäisi olla seuraava.

tämän jälkeen luomme tilannekuvan seuraavan käsikirjoituksen avulla. Sinun täytyy määrittää kaikki tiedostot tietokantaan.

esimerkissämme oli kaksi tiedostoa. Loimme tilannekuvan näille kahdelle tiedostolle. Jos et tunne FileGroup ja tiedosto, voit lukea minun artikkeli ”Miten luoda tietokannan SQL Server”.

1
2
3
4
5

Luo tietokanta AdventureWorks2014_Snapshot on
(NAME = AdventureWorks2012_Data, FILENAME = ” C:\DB\Data\AdventureWorks2012_Data.ss’ ),
( NAME = AdventureWorks2014_Deneme, FILENAME = ” C:\DB\Data\AdventureWorks2014_Deneme.ss’)
as SNAPSHOT OF Adventureworks 2014;
GO

sain seuraavan käsikirjoituksen msdn: ltä.

seuraavasta kirjoituksesta selviää, minkä kokoinen tilannekuva levyltä on ja minkä kokoiseksi se voi kasvaa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

valitse DB_NIMI (sd.source_database_id) AS,
sd.name AS,
mf.name AS,
size_on_disk_bytes / 1024 AS ,
mf2.koko/128 AS
SYS: stä.master_files MF
JOIN sys.tietokannat sd
mf.database_id = sd.database_id
JOIN sys.master_files MF2
SD.source_database_id = mf2.tietokanta_id
ja mf.file_id = mf2.file_id
CROSS APPLY sys. dm_io_virtual_file_stats(sd. database_id, mf.file_id)
missä MF. is_sparse = 1
ja MF2. is_sparse = 0
järjestys 1;

seuraava tulosjoukko palasi, kun ajoin käsikirjoituksen. Asetin näiden kahden datatiedoston koon 256 mb: ksi.

siksi tilannekuva voi kasvaa maksimissaan 256 MB: iin.

loimme tilannekuvan.

voit lukea tilannekuvastasi ikään kuin se olisi tietokanta tietokannoista-> tietokannan tilannekuvia-osiosta SSMS.

normaalisti peilauksen toissijaisesta tietokannasta ei voi lukea. Mutta voit lukea toisiotietokannan tilannekuvasta.

Esimerkki 2:

ajetaan alla oleva skripti ensisijaisessa tietokannassa.

1
2
3
4
5

Luo tietokanta AdventureWorks2014_Snapshot on
(NAME = AdventureWorks2012_Data, FILENAME = ” C:\DB\Data\AdventureWorks2012_Data.ss’ ),
( NAME = AdventureWorks2014_Deneme, FILENAME = ” C:\DB\Data\AdventureWorks2014_Deneme.SS’)
kuva Seikkailutyöstä2014;
mene

kun olet ottanut Snapshot, poista tietueet missä tahansa taulukossa avulla seuraavan komentosarjan. Olen poistamalla tietueita taulukosta nimeltään Snapshot_deneme että olen luonut aiemmin AdventureWorks2014 tietokantaan.

1
Poista tiedostosta Snapshot_deneme

poiston jälkeen, voit palauttaa poistetut tietueet avulla seuraavan komentosarjan.

mutta jos olet tehnyt toisen leikkauksen tilannekuvan ottamisen jälkeen, menetät nuo muutokset.

1
2
3

USE master
GO
palauta database seikkailut 2014 DATABASE_SNAPSHOT = ”seikkailut 2014_snapshot’

dbtut

tekijä: dbtut

olemme tiimi, jolla on yli 10 vuoden kokemus tietokannan hallinnasta ja BI-kokemuksesta. Asiantuntijamme: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.

Vastaa

Sähköpostiosoitettasi ei julkaista.