Megosztás a következőn keresztül:


Adatbázis pillanatképének létrehozása (Transact-SQL)

A következőkre vonatkozik:SQL Server

Az SQL Server-adatbázis pillanatképének létrehozásának egyetlen módja a Transact-SQL használata. Az SQL Server Management Studio nem támogatja az adatbázis-pillanatképek létrehozását.

Előfeltételek

A forrásadatbázisnak, amely bármilyen helyreállítási modellt használhat, meg kell felelnie a következő előfeltételeknek:

  • A kiszolgálópéldánynak az SQL Server adatbázis-pillanatképet támogató kiadását kell futtatnia. További információ az SQL Server adatbázis-pillanatképeinek támogatásáról: Az SQL Server 2022 kiadásai és támogatott funkciói.

  • A forrásadatbázisnak online állapotúnak kell lennie, kivéve, ha az adatbázis tükrözési munkameneten belüli tükrözött adatbázis.

  • Ha adatbázis-pillanatképet szeretne létrehozni egy tükrözött adatbázison, az adatbázisnak szinkronizált tükrözési állapotban kell lennie.

  • A forrásadatbázis nem konfigurálható skálázható megosztott adatbázisként.

  • Az SQL Server 2019 (15.x) előtt a forrásadatbázis nem tudott fájlcsoportot MEMORY_OPTIMIZED_DATA tartalmazni. Az SQL Server 2019-ben (15.x) hozzáadták a memórián belüli adatbázis-pillanatképek támogatását.

Fontos

További fontos szempontokat az Adatbázis-pillanatképek (SQL Server) című témakörben talál.

Recommendations

Ez a szakasz a következő ajánlott eljárásokat ismerteti:

Ajánlott eljárás: adatbázis-pillanatképek elnevezése

A pillanatképek létrehozása előtt fontos megfontolni, hogyan nevezze el őket. Minden adatbázis-pillanatképhez egyedi adatbázisnév szükséges. Az adminisztráció megkönnyítése érdekében a pillanatképek neve tartalmazhat olyan információkat, amelyek azonosítják az adatbázist, például:

  • A forrásadatbázis neve.

  • Annak jelzése, hogy az új név egy pillanatképet jelöl.

  • A pillanatkép létrehozási dátuma és időpontja, egy sorszám vagy más információ( például a nap időpontja) az adott adatbázis szekvenciális pillanatképeinek megkülönböztetéséhez.

Vegyük például az adatbázis pillanatképeinek sorozatát AdventureWorks2025 . Három napi pillanatkép jön létre 6 órás időközönként 6 és 18 óra között, 24 órás idő alapján. Minden napi pillanatképet 24 órán át őrizünk meg, mielőtt elvetnénk őket, és lecserélnénk egy azonos nevű új pillanatképre. Minden pillanatkép neve az órát jelöli, de a napot nem:

AdventureWorks_snapshot_0600
AdventureWorks_snapshot_1200
AdventureWorks_snapshot_1800

Ha a napi pillanatképek létrehozási ideje napról napra változik, célszerűbb lehet egy kevésbé pontos elnevezési konvenció, például:

AdventureWorks_snapshot_morning
AdventureWorks_snapshot_noon
AdventureWorks_snapshot_evening

Ajánlott eljárás: az adatbázis-pillanatképek számának korlátozása

A pillanatképek sorozatának létrehozása az idő függvényében rögzíti a forrásadatbázis egymást követő pillanatképeit. Az egyes pillanatképek mindaddig megmaradnak, amíg explicit módon el nem távolítják. Mivel az egyes pillanatképek az eredeti lapok frissítésekor tovább növekednek, érdemes lehet megőrizni a lemezterületet úgy, hogy töröl egy régebbi pillanatképet egy új pillanatkép létrehozása után.

Megjegyzés:

Ha vissza szeretne térni egy adatbázis-pillanatképhez, törölnie kell minden más pillanatképet az adatbázisból.

Ajánlott eljárás: ügyfélkapcsolatok adatbázis-pillanatképhez

Az adatbázis-pillanatképek használatához az ügyfeleknek tudniuk kell, hol találhatók. A felhasználók egy adatbázis-pillanatképből olvashatnak, miközben egy másikat létrehoznak vagy törölnek. Ha azonban lecserél egy új pillanatképet egy meglévőre, át kell irányítania az ügyfeleket az új pillanatképre. A felhasználók manuálisan csatlakozhatnak adatbázis-pillanatképhez az SQL Server Management Studióval vagy az Azure Data Studióval. Az éles környezet támogatásához azonban olyan programozás útján megvalósított megoldást kell létrehoznia, amely transzparens módon irányítja a jelentéskészítő felhasználókat az adatbázis legújabb pillanatképére.

Permissions

Bármely felhasználó, aki létrehozhat egy adatbázist, létrehozhat egy adatbázis-pillanatképet; A tükrözött adatbázis pillanatképének létrehozásához azonban a sysadmin rögzített kiszolgálói szerepkör tagjának kell lennie.

Adatbázis-pillanatmásolat létrehozása Transact-SQL használatával

  1. A forrásadatbázis aktuális méretétől függően győződjön meg arról, hogy elegendő lemezterülettel rendelkezik az adatbázis pillanatképének tárolásához. Az adatbázis-pillanatképek maximális mérete a forrásadatbázis mérete a pillanatkép létrehozásakor. További információért lásd: Adatbázis pillanatkép ritka fájljának mérete (Transact-SQL).

  2. Adjon ki egy CREATE DATABASE nyilatkozatot a fájlokra a AS SNAPSHOT OF záradék használatával. A pillanatkép létrehozásához meg kell adnia a forrásadatbázis minden adatbázisfájljának logikai nevét. A szintaxis a következő:

    CREATE DATABASE database_snapshot_name
    ON
    (
        NAME = logical_file_name
        , FILENAME = 'os_file_name'
    ) [ , ...n ]
    
    AS SNAPSHOT OF source_database_name
    [;]
    

    Az argumentumok a következők:

    Argument Description
    database_snapshot_name Annak a pillanatképnek a neve, amelyre vissza szeretné állítani az adatbázist.
    logical_file_name A forrásadatbázis logikai neve, amelyet a forrásadatbázis a fájlra való hivatkozáskor használ az SQL Serverben.
    os_file_name Az operációs rendszer által a fájl létrehozásakor használt elérési út és fájlnév.
    source_database_name A forrásadatbázis.

    A szintaxis teljes leírását a CREATE DATABASE (SQL Server Transact-SQL) című témakörben talál.

    Megjegyzés:

    Adatbázis-pillanatkép létrehozásakor a naplófájlok, az offline fájlok, a fájlok visszaállítása és a megszűnt fájlok nem engedélyezettek az CREATE DATABASE utasításban.

Példák

Az .ss ezekben a példákban használt bővítmény kényelmes, és nem szükséges. A több fájlt tartalmazó adatbázisokban minden fájlt meg kell adni a szintaxisnak megfelelően. A fájlcsoportok nincsenek megadva.

A. Pillanatkép létrehozása az AdventureWorks-adatbázisban

Ez a példa létrehoz egy adatbázis-pillanatképet az AdventureWorks adatbázisban. A pillanatkép neve, AdventureWorks_dbss_1800, és ritka fájljának fájlneve, AdventureWorks_data_1800.ss, 18:00 (1800 óra) létrehozási időt jelez.

CREATE DATABASE AdventureWorks_dbss1800 ON (
    NAME = AdventureWorks,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss'
    ) AS SNAPSHOT OF AdventureWorks;
GO

B. Pillanatkép létrehozása a Sales adatbázisban

Ez a példa létrehoz egy adatbázis-pillanatképet sales_snapshot1200, az Sales adatbázison, amely ugyanaz a példa-adatbázis, mint a "Adatbázis létrehozása fájlcsoportokkal" példa a CREATE DATABASE részben.

--Create sales_snapshot1200 as snapshot of the Sales database:
CREATE DATABASE sales_snapshot1200 ON (
    NAME = SPri1_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'
    ),
    (
    NAME = SPri2_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'
    ),
    (
    NAME = SGrp1Fi1_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'
    ),
    (
    NAME = SGrp1Fi2_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'
    ),
    (
    NAME = SGrp2Fi1_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'
    ),
    (
    NAME = SGrp2Fi2_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss'
    ) AS SNAPSHOT OF Sales;
GO