Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Kezdés előtt:
Adatbázis visszaállítása adatbázis-pillanatképre a következővel:Transact-SQL
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:
Ellenőrizze, hogy az adatbázis nem sérült-e.
Jegyzet
Ha az adatbázis sérült, vissza kell állítania a biztonsági másolatokból. További információ: Teljes adatbázis-visszaállítás (Simple Recovery Model) vagy Teljes adatbázis-visszaállítás (Teljes helyreállítási modell).
Azonosítsa a hiba előtt létrehozott legutóbbi pillanatképet. További információ: Adatbázis-pillanatkép megtekintése (SQL Server).
Jelenleg az adatbázisban lévő bármely más pillanatkép törlése. További információért tekintse meg: Adatbázis-pillanatkép elvetése (Transact-SQL).
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.
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.
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).
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.
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).
Indítsa el az adatbázist.
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:
A Sales adatbázisról és a sales_snapshot0600 pillanatképről lásd: "Adatbázis létrehozása fájlcsoportokkal" és "Adatbázis-pillanatkép létrehozása" CREATE DATABASE (SQL Server Transact-SQL).
A sales_snapshot1200 pillanatképet a "Pillanatkép létrehozása az értékesítési adatbázison" című témakörben talál, Adatbázis-pillanatkép létrehozása (Transact-SQL).
--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)