Adatbázis visszaállítása adatbázis-pillanatképre

A következőkre vonatkozik:SQL Server

Ha egy online adatbázisban lévő adatok megsérülnek, bizonyos esetekben az adatbázis visszaállítása adatbázis-pillanatképre, amely megelőzi a kárt, megfelelő alternatíva lehet az adatbázis biztonsági másolatból való visszaállításához. Egy adatbázis visszaállítása például hasznos lehet egy közelmúltbeli, felhasználók által elkövetett súlyos hiba, például egy törölt tábla helyrehozásához. A pillanatkép létrehozása után végrehajtott módosítások azonban elvesznek.

Mielőtt hozzákezdene

Korlátozások és korlátozások

A visszaállítás a következő feltételek mellett nem támogatott:

  • Az adatbázishoz több pillanatkép is készült. A visszaállításhoz csak egy pillanatképnek kell lennie az adatbázishoz, amelyhez vissza szeretne térni.

  • Az adatbázisban minden írásvédett vagy tömörített fájlcsoport létezik.

  • A fájlok mostantól offline állapotban vannak, de a pillanatkép létrehozásakor online állapotban voltak.

Az adatbázis visszaállítása előtt vegye figyelembe a következő korlátozásokat:

  • A visszaállítás nem adathordozó-helyreállításra szolgál. Az adatbázis-pillanatkép az adatbázisfájlok hiányos másolata, ezért ha az adatbázis vagy az adatbázis pillanatképe sérült, a pillanatképből való visszaállítás valószínűleg lehetetlen lesz. Továbbá, még ha lehetséges is, a visszaállítás hibásodás esetén valószínűtlen, hogy megoldja a problémát. Ezért az adatbázisok védelméhez elengedhetetlen a rendszeres biztonsági mentések és a visszaállítási terv tesztelése. További információ: SQL Server-adatbázisok biztonsági mentése és visszaállítása.

    Jegyzet

    Ha vissza kell tudnia állítani a forrásadatbázist arra az időpontra, amikor létrehozott egy adatbázis-pillanatképet, használja a teljes helyreállítási modellt, és implementáljon egy biztonsági mentési szabályzatot, amely lehetővé teszi ezt.

  • Az eredeti forrásadatbázist felülírja a visszaállított adatbázis, így a pillanatkép létrehozása óta az adatbázis minden frissítése elveszik.

  • A visszaállítási művelet felülírja a régi naplófájlt is, és újraépíti a naplót. Következésképpen a visszaállított adatbázis nem léptethető előre a felhasználói hiba pontjáig. Ezért javasoljuk, hogy az adatbázis visszaállítása előtt biztonsági másolatot készítsön a naplóról.

    Jegyzet

    Bár az eredeti napló nem állítható vissza az adatbázis továbbításához, az eredeti naplófájl adatai hasznosak lehetnek az elveszett adatok rekonstruálásához.

  • A visszaállítás megszakítja a napló biztonsági mentési láncát. Ezért a visszaállított adatbázis naplóinak biztonsági mentéséhez először teljes adatbázis-biztonsági mentést vagy fájl biztonsági mentést kell végeznie. Javasoljuk, hogy készítsen teljes adatbázis-biztonsági mentést.

  • A visszaállítási művelet során a pillanatkép és a forrásadatbázis sem érhető el. A forrásadatbázis és a pillanatkép egyaránt "Visszaállítás alatt" feliratú. Ha a visszaállítási művelet során hiba történik, az adatbázis újraindulásakor a visszaállítási művelet megpróbálja befejezni a visszaállítást.

  • A visszaállított adatbázis metaadatai megegyeznek a pillanatkép metaadataival.

  • Visszaállításkor elvesznek az összes teljes szöveges katalógusok.

Előfeltételek

Győződjön meg arról, hogy a forrásadatbázis és az adatbázis pillanatképe megfelel az alábbi előfeltételeknek:

Biztonság

Engedélyek

Minden olyan felhasználó, aki visszaállítási adatbázis-engedélyekkel rendelkezik a forrásadatbázison, visszaállíthatja azt az állapotába az adatbázis pillanatképének létrehozásakor.

Adatbázis visszaállítása adatbázis-pillanatképre (Transact-SQLhasználatával )

Egy adatbázis visszaállítása egy adatbázis-pillanatképre

Jegyzet

Erre az eljárásra példaként lásd a jelen szakasz későbbi, Példák (Transact-SQL)című szakaszát.

  1. Azonosítsa azt az adatbázis-pillanatképet, amelyre vissza szeretné állítani az adatbázist. A pillanatképeket az SQL Server Management Studióban tekintheti meg egy adatbázisban (lásd Adatbázis-pillanatkép megtekintése (SQL Server)). Emellett a sys.databases (Transact-SQL) katalógusnézet source_database_id oszlopából is azonosíthatja a nézet forrásadatbázisát.

  2. Bármely más adatbázis-pillanatkép eldobása.

    A pillanatképek elvetéséről további információt az Adatbázis-pillanatkép elvetése (Transact-SQL)című témakörben talál. Ha az adatbázis a teljes helyreállítási modellt használja, a visszaállítás előtt biztonsági másolatot kell készítenie a naplóról. További információért lásd: A tranzakciónapló biztonsági mentése (SQL Server) vagy A tranzakciónapló biztonsági mentése sérült adatbázis esetén (SQL Server).

  3. Hajtsa végre a visszaállítási műveletet.

    A visszaállítási művelethez VISSZAÁLLÍTÁSI ADATBÁZIS-engedélyekre van szükség a forrásadatbázison. Az adatbázis visszaállításához használja a következő Transact-SQL utasítást:

    ADATBÁZIS database_name VISSZAÁLLÍTÁSA ADATBÁZIS_PILLANATKÉP =adatbázis_pillanatkép_neve

    Ahol a database_name a forrásadatbázis, a database_snapshot_name pedig annak a pillanatképnek a neve, amelyre vissza szeretné állítani az adatbázist. Figyelje meg, hogy ebben az utasításban a pillanatkép nevét kell megadnia a biztonsági mentési eszköz helyett.

    További információ: RESTORE (Transact-SQL).

    Jegyzet

    A visszaállítási művelet során a pillanatkép és a forrásadatbázis sem érhető el. A forrásadatbázis és a pillanatkép egyaránt "Visszaállításkor" állapotúként van megjelölve. Ha a visszaállítási művelet során hiba történik, a rendszer megpróbálja befejezni a visszaállítást, amikor az adatbázis újra elindul.

  4. Ha az adatbázis tulajdonosa az adatbázis pillanatképének létrehozása óta megváltozott, érdemes lehet frissíteni a visszaállított adatbázis adatbázis-tulajdonosát.

    Jegyzet

    A visszaállított adatbázis megőrzi az adatbázis pillanatképének engedélyeit és konfigurációját (például az adatbázis tulajdonosát és helyreállítási modelljét).

  5. Indítsa el az adatbázist.

  6. Ha szükséges, biztonsági másolatot készít a visszaállított adatbázisról, különösen akkor, ha a teljes (vagy tömegesen naplózott) helyreállítási modellt használja. Az adatbázisok biztonsági mentéséhez tekintse meg a Teljes adatbázis biztonsági mentése (SQL Server)című témakört.

Példák (Transact-SQL)

Ez a szakasz az alábbi példákat tartalmazza az adatbázisok adatbázis-pillanatképre való visszaállítására:

Egy. Pillanatkép visszaállítása az AdventureWorks-adatbázisban

Ez a példa feltételezi, hogy jelenleg csak egy pillanatkép létezik a AdventureWorks2025 adatbázisban. Az adatbázis visszaállítására szolgáló pillanatképet létrehozó példáért lásd: Adatbázis-pillanatkép létrehozása (Transact-SQL).

USE master;  
-- Reverting AdventureWorks to AdventureWorks_dbss1800  
RESTORE DATABASE AdventureWorks from   
DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';  
GO  

B. Pillanatkép visszaállítása a Sales adatbázisban

Ez a példa feltételezi, hogy jelenleg két pillanatkép található a Sales adatbázisban: sales_snapshot0600 és sales_snapshot1200. A példa törli a pillanatképek régebbi részeit, és visszaállítja az adatbázist a legújabb pillanatképre.

A mintaadatbázis létrehozására szolgáló kód és a példa alapjául szolgáló pillanatképek:

--Test to see if sales_snapshot0600 exists and if it   
-- does, delete it.  
IF EXISTS (SELECT database_id FROM sys.databases  
    WHERE NAME='sales_snapshot0600')  
    DROP DATABASE SalesSnapshot0600;  
GO  
-- Reverting Sales to sales_snapshot1200  
USE master;  
RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';  
GO  

Kapcsolódó tevékenységek

Lásd még:

adatbázis-pillanatképek (SQL Server)
VISSZAÁLLÍTÁS (Transact-SQL)
sys.databases (Transact-SQL)
Adatbázis-tükrözés és adatbázis-pillanatképek (SQL Server)