Adatbázis Snapshot létrehozása megváltoztathatatlan kép az adatbázis, akkor gondolom, hogy figyelembe aktuális fotó adatbázis.
ha egy példán keresztül magyarázom, világosabb lesz.
például az AdventureWorks2014 adatbázis pillanatképét készítjük. Ezt a pillanatképet olvassuk. Az AdventureWorks2014 adatbázisban még nem történt változás. A kiválasztás az eredeti adatbázisba megy, mert az eredeti adatbázisban nincs változás.
ha változások történnek az eredeti adatbázisban, akkor ezeket a módosításokat a lemez egy dedikált helyére írják Pillanatkép (úgynevezett ritka fájlok).
ha el akarjuk olvasni az adatokat, ha az adatok megváltoztak az eredeti adatbázisban, akkor az adatok változatlan változata a ritka fájlból olvasható ki. Ily módon a fénykép sértetlen lesz.
annak ellenére, hogy nem foglal lemezterületet, amint pillanatképet kapunk, a ritka fájlok mérete növekszik, ahogy az eredeti adatbázis változásai növekednek. Ha a ritka fájlok mérete növekszik, és nincs hely a lemezen, a pillanatkép gyanússá válik, és törölni kell a pillanatképet.
leginkább tükrözési technológiával használják.
azt javaslom, olvassa el a cikkemet “Adatbázis tükrözés az SQL Server – en”. A tükrözés során nem tudunk olvasni a másodlagos adatbázisból. Amikor a másodlagos adatbázisból akarunk olvasni, ezt a másodlagos adatbázis pillanatképével tehetjük meg.
ily módon NEM hozunk létre terhet a jelentés számára az elsődleges adatbázisban azáltal, hogy jelentés lekérdezéseket készítünk a másodlagos adatbázisból.
vagy lekérheti az adatbázis pillanatképét a kötegelt frissítési vagy törlési művelet végrehajtása előtt. A helytelen frissítési vagy törlési művelet pillanatkép segítségével megfordítható. Sokkal gyorsabb módszer lenne, mint a biztonsági mentésből való visszatérés.
a Pillanatképnek ugyanazon a példányon kell lennie az adatbázissal.
folytassuk két példával.
az első példában egy pillanatképet kapunk, amely képes olvasni a tükrözött adatbázis másodlagos adatbázisából.
a második példában pillanatképet kapunk a helytelen frissítési művelet megfordításához.
Example1:
először is, a tükrözött adatbázisnak szinkronnak kell lennie. Tehát a másodlagos adatbázis képének a következőnek kell lennie.
ezután elkészítjük a pillanatképet a következő szkript segítségével. Meg kell adnia az összes fájlt az adatbázisban.
példánkban két fájl volt. Pillanatképet készítettünk ehhez a két fájlhoz. Ha nem ismeri a Filegroupot és a fájlt, olvassa el a “Hogyan hozzunk létre adatbázist az SQL Server-en”című cikkemet.
1
2
3
4
5
|
adatbázis létrehozása AdventureWorks2014_Snapshot ON
( NAME = AdventureWorks2012_Data, FILENAME = ‘C:\DB\Data\AdventureWorks2012_Data.ss’ ),
( NAME = AdventureWorks2014_Deneme, fájlnév = ‘C:\DB\Data\AdventureWorks2014_Deneme.SS’)
mint pillanatkép AdventureWorks2014;
megy
|
a következő szkriptet kaptam az msdn-től.
a következő szkript segítségével megtalálhatja a lemezen lévő pillanatkép méretét és a maximális méretét.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
válassza a DB_NAME (sd.forrás_database_id) AS ,
sd.name AS,
mf.name AS,
size_on_disk_bytes/1024 AS ,
mf2.méret/128 mint
a sys-től.master_files mf
csatlakozzon a sys-hez.SD
adatbázisok az mf – en.database_id = sd.database_id
csatlakozzon a sys-hez.master_files mf2
sd-n.source_database_id = mf2.database_id
és mf.file_id = mf2.file_id
a SYS.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
ahol mf. is_sparse = 1
és mf2. is_sparse = 0
sorrend 1;
|
a következő eredményhalmaz visszatért a szkript futtatásakor. A két adatfájl méretét 256 mb-ra állítottam.
ezért a pillanatkép legfeljebb 256 MB-ra nőhet.
létrehoztuk a pillanatképünket.
a pillanatképből úgy olvashat, mintha adatbázis lenne az adatbázisok-> Adatbázis Pillanatképek szakasz SSMS-en.
normális esetben nem lehet olvasni a másodlagos adatbázis tükrözés. De a másodlagos adatbázis pillanatképéből olvashat.
Example2:
futtassuk az alábbi szkriptet az elsődleges adatbázisban.
1
2
3
4
5
|
adatbázis létrehozása AdventureWorks2014_Snapshot ON
( NAME = AdventureWorks2012_Data, FILENAME = ‘C:\DB\Data\AdventureWorks2012_Data.ss’ ),
( NAME = AdventureWorks2014_Deneme, fájlnév = ‘C:\DB\Data\AdventureWorks2014_Deneme.SS’)
mint pillanatkép AdventureWorks2014;
megy
|
a pillanatkép készítése után törölje a rekordokat bármelyik táblából a következő parancsfájl segítségével. Rekordokat törölök a Snapshot_deneme nevű táblából, amelyet korábban az AdventureWorks2014 adatbázisban hoztam létre.
1
|
Törlés a Snapshot_deneme-ből
|
a törlési folyamat után visszaállíthatja a törölt rekordokat a következő szkript segítségével.
de ha a Pillanatfelvétel készítése után újabb műveletet hajtott végre, elveszíti ezeket a változásokat.
1
2
3
|
USE master
GO
adatbázis visszaállítása AdventureWorks2014 innen: DATABASE_SNAPSHOT = ‘AdventureWorks2014_Snapshot’
|
Author: dbtut
több mint 10 éves adatbázis-kezelő és BI tapasztalattal rendelkező csapat vagyunk. Szakértőink: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Elasticsearch, Kibana, Grafana.