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
Ez a cikk áttekintést nyújt az SQL Server adatbázis-visszaállítási és helyreállítási folyamatáról.
Áttekintés
Ha egy SQL Server-adatbázist hiba miatt szeretne helyreállítani, az adatbázis-rendszergazdának vissza kell állítania az SQL Server biztonsági másolatainak egy logikailag helyes és értelmes visszaállítási sorozatát. Az SQL Server visszaállítási és helyreállítási folyamata támogatja az adatok visszaállítását egy teljes adatbázis, adatfájl vagy adatlap biztonsági másolataiból az alábbiak szerint:
Az adatbázis (teljes adatbázis-visszaállítási)
A rendszer visszaállítja és helyreállítja a teljes adatbázist, és az adatbázis offline állapotban van a visszaállítási és helyreállítási műveletek során.
Az adatfájl (fájl visszaállítása)
Egy adatfájl vagy fájlkészlet visszaállítása és helyreállítása történik. A fájlok visszaállítása során a fájlokat tartalmazó fájlcsoportok automatikusan offline állapotba kerülnek a visszaállítás során. Az offline fájlcsoportok elérésére tett kísérletek hibát okoznak.
Az adatlap (lap visszaállítása)
A teljes helyreállítási modell vagy a tömegesen naplózott helyreállítási modell alatt visszaállíthatja az egyes lapokat. A lap-visszaállítások bármely adatbázisban elvégezhetők, függetlenül a fájlcsoportok számától.
Az SQL Server biztonsági mentése és visszaállítása minden támogatott operációs rendszeren működik. A támogatott operációs rendszerekkel kapcsolatos információkért lásd hardver- és szoftverkövetelmények. Az SQL Server korábbi verzióiból származó biztonsági másolatok támogatásáról a kompatibilitási támogatási szakaszban olvashat a RESTORE.
Visszaállítási forgatókönyvek
Az SQL Server visszaállítási forgatókönyve az adatok egy vagy több biztonsági mentésből való visszaállításának, majd az adatbázis helyreállításának folyamata. A támogatott visszaállítási forgatókönyvek az adatbázis helyreállítási modelljétől és az SQL Server kiadásától függenek.
Az alábbi táblázat bemutatja a különböző helyreállítási modellekhez támogatott lehetséges visszaállítási forgatókönyveket.
Visszaállítási forgatókönyv | Az egyszerű helyreállítási modell esetén | Teljes/tömbnaplózott helyreállítási modellek esetén |
---|---|---|
Adatbázis-visszaállítás befejezése | Az alapvető visszaállítási stratégia. A teljes adatbázis-visszaállítás magában foglalhatja a teljes adatbázis biztonsági mentésének egyszerű visszaállítását és helyreállítását. Másik lehetőségként a teljes adatbázis-visszaállítás magában foglalhatja a teljes adatbázis biztonsági mentésének visszaállítását, majd a különbségi biztonsági mentés visszaállítását és helyreállítását. További információ: Teljes adatbázis-visszaállítás (Simple Recovery Model). |
Az alapvető visszaállítási stratégia. A teljes adatbázis-visszaállítás magában foglalja a teljes adatbázis biztonsági mentésének visszaállítását, és opcionálisan egy különbségi biztonsági mentést (ha van ilyen), majd az összes későbbi napló biztonsági mentésének visszaállítását (sorrendben). A teljes adatbázis-visszaállítás az utolsó napló biztonsági mentésének helyreállításával és visszaállításával (RESTORE WITH RECOVERY) fejeződik be. További információ: Teljes adatbázis-visszaállítás (Teljes helyreállítási modell) |
Fájl-visszaállítási 1 | Állítson helyre egy vagy több sérült írásvédett fájlt, anélkül, hogy az egész adatbázist helyreállítaná. A fájl-visszaállítás csak akkor érhető el, ha az adatbázis legalább egy írásvédett fájlcsoporttal rendelkezik. | Egy vagy több fájlt állít vissza a teljes adatbázis visszaállítása nélkül. A fájl visszaállítása az adatbázis offline állapotában, illetve az SQL Server egyes kiadásaiban is elvégezhető, miközben az adatbázis online állapotban marad. A fájl-visszaállítás során a visszaállítandó fájlokat tartalmazó fájlcsoportok mindig offline állapotban vannak. |
Lap visszaállítása | Nem alkalmazható | Egy vagy több sérült lap visszaállítása. Az oldal visszaállítása akkor végezhető el, ha az adatbázis offline állapotban van, vagy az SQL Server egyes kiadásai esetében, miközben az adatbázis online állapotban marad. A lap-visszaállítás során a visszaállított lapok mindig offline állapotban vannak. A naplóbiztonsági mentéseknek töretlen láncnak kell rendelkezésre állnia az aktuális naplófájlig, és mindegyiket alkalmazni kell, hogy az oldal up-tonaprakész legyen az aktuális naplófájllal. További információ: Visszaállítási lapok (SQL Server). |
Részleges visszaállítás 1 | Állítsa vissza és állítsa helyre az adatbázist a fájlcsoport szintjén, kezdve az elsődleges és az összes olvasási/írási másodlagos fájlcsoporttal. | Állítsa vissza és állítsa helyre az adatbázist a fájlcsoport szintjén, kezdve az elsődleges fájlcsoporttal. További információkért lásd: Részleges visszaállítások (SQL Server) |
1 Online visszaállítás csak az Enterprise kiadásban támogatott.
Az adatbázis visszaállításának lépései
A fájl visszaállításához az adatbázismotor két lépést hajt végre:
Létrehozza a hiányzó adatbázisfájlokat.
Másolja az adatokat a biztonsági mentési eszközökről az adatbázisfájlokba.
Az adatbázis-visszaállítás végrehajtásához az adatbázismotor három lépést hajt végre:
Létrehozza az adatbázis- és tranzakciónapló-fájlokat, ha még nem léteznek.
Másolja az összes adatot, naplót és indexlapot az adatbázis biztonsági mentési adathordozójáról az adatbázisfájlokba.
A tranzakciónaplót az úgynevezett helyreállítási folyamat során alkalmazzák.
Függetlenül attól, hogy az adatok hogyan állíthatók vissza, az ADATBÁZIS helyreállítása előtt az SQL Server adatbázismotorja garantálja, hogy a teljes adatbázis logikailag konzisztens. Ha például visszaállít egy fájlt, nem tudja helyreállítani és online állapotba helyezni, amíg a fájl nem kerül olyan messzire, hogy konzisztens legyen az adatbázissal.
A fájl- vagy lap-visszaállítás előnyei
A fájlok vagy lapok visszaállítása és helyreállítása a teljes adatbázis helyett a következő előnyöket biztosítja:
A kevesebb adat visszaállítása csökkenti a másoláshoz és helyreállításhoz szükséges időt.
Az SQL Serveren a fájlok vagy lapok visszaállítása lehetővé teheti, hogy az adatbázis más adatai online állapotban maradjanak a visszaállítási művelet során.
Helyreállítás és a tranzakciónapló
A legtöbb visszaállítási forgatókönyv esetében tranzakciónapló biztonsági mentését kell alkalmazni, és engedélyezni kell, hogy az SQL Server adatbázismotorja futtassa a helyreállítási folyamatot az adatbázis online állapotba hozásához. A helyreállítás az SQL Server által az egyes adatbázisokhoz használt folyamat, amely tranzakciós konzisztens - vagy tiszta - állapotban indul el.
Feladatátvétel vagy más nem szabályos leállítás esetén előfordulhat, hogy az adatbázisok olyan állapotban maradnak, amelyben bizonyos módosítások nem kerültek leírásra a puffergyorsítótárból az adatfájlokba, és lehetnek módosítások hiányos tranzakciókból az adatfájlokban. Az SQL Server egy példányának indításakor az egyes adatbázisok helyreállítása fut, amely három fázisból áll, az utolsó adatbázis-ellenőrzőpontalapján:
1. fázis az elemzési fázis, amely elemzi a tranzakciónaplót, hogy meghatározza az utolsó ellenőrzőpontot, és létrehozza a Dirty Page Table (DPT) és az Active Transaction Table (ATT). A DPT olyan oldalak rekordjait tartalmazza, amelyek az adatbázis leállításakor piszkosak voltak. Az ATT olyan tranzakciók rekordjait tartalmazza, amelyek akkor voltak aktívak, amikor az adatbázist nem állították le teljesen.
2. fázis az a újraírási fázis, amely a naplóban rögzített minden olyan módosítást továbbít, amelyet az adatbázis leállításakor esetleg nem írtak az adatfájlokba. A DPT tartalmazza a sikeres adatbázis-szintű helyreállításhoz szükséges minimum naplósorozatszámot (minLSN), és jelzi az összes piszkos oldalon elvégzendő redo műveletek kezdetét. Ebben a fázisban az SQL Server adatbázismotor a véglegesített tranzakciókhoz tartozó összes piszkos lapot lemezre írja.
A 3. fázis az visszavonási fázis, amely visszavonja az ATT-ben található befejezetlen tranzakciókat az adatbázis integritásának megőrzése érdekében. A visszaállítás után az adatbázis online állapotba kerül, és a tranzakciónaplók biztonsági mentései nem alkalmazhatók az adatbázisra.
Az egyes adatbázis-helyreállítási fázisok állapotával kapcsolatos információk az SQL Server hibanaplóbannaplóba kerülnek. Az adatbázis-helyreállítás előrehaladása a kiterjesztett események használatával is nyomon követhető. További információkért lásd a blogbejegyzést: Új kiterjesztett események az adatbázis-helyreállítási folyamat előrehaladásához.
Jegyzet
Részleges visszaállítási forgatókönyv esetén, ha egy fájlcsoport már a fájlbiztonsági mentés létrehozása előtt írásvédett volt, akkor a naplófájlok alkalmazása a fájlcsoporton szükségtelen, és a fájl visszaállítása ezt kihagyja.
Jegyzet
Ha maximalizálni szeretné az adatbázisok rendelkezésre állását egy vállalati környezetben az SQL Server szolgáltatás elindítása után, például egy Always On feladatátvételi fürtpéldány feladatátvétele vagy a helyben történő újraindítás után, az SQL Server Enterprise Edition online állapotba helyezheti az adatbázist az újraküldési fázis után, miközben a visszavonási fázis továbbra is fut. Ezt Fast Recovery-nek nevezzük. A Fast Recovery azonban nem érhető el, ha az adatbázis online állapotba vált, de az SQL Server szolgáltatás nem lett újraindítva. A ALTER DATABASE AdventureWorks SET ONLINE;
végrehajtása például nem teszi lehetővé, hogy az adatbázis írás-olvasás állapotban legyen mindaddig, amíg a helyreállítás mindhárom fázisa be nem fejeződik.
Helyreállítási modellek és támogatott visszaállítási műveletek
Az adatbázisokhoz elérhető visszaállítási műveletek a helyreállítási modelltől függenek. Az alábbi táblázat összefoglalja, hogy az egyes helyreállítási modellek támogatnak-e és milyen mértékben egy adott visszaállítási forgatókönyvet.
Visszaállítási művelet | Teljes helyreállítási modell | Tömegesen naplózott helyreállítási modell | Egyszerű helyreállítási modell |
---|---|---|---|
Adat-helyreállítás | Teljes helyreállítás (ha a napló elérhető). | Némi adatvesztési kockázat. | Az utolsó teljes vagy különbségi biztonsági mentés óta eltelt adatok elvesznek. |
Időponthoz kötött visszaállítás | A napló biztonsági másolatai által lefedett időpontok. | Nem engedélyezett, ha a napló biztonsági mentése tömegesen naplózott módosításokat tartalmaz. | Nem támogatott. |
Fájl-visszaállítási 1 | Teljes körű támogatás. | Néha. 2 | Csak írásvédett másodlagos fájlokhoz érhető el. |
Lap visszaállítása 1 | Teljes körű támogatás. | Néha. 2 | Egyik sem. |
Darabos (fájlcsoportszintű) visszaállítás 1 | Teljes körű támogatás. | Néha. 2 | Csak olvasható másodlagos fájlokhoz érhető el. |
1 Csak az SQL Server Enterprise kiadásában érhető el
2 A szükséges feltételekről a cikk későbbi részében, az egyszerű helyreállítási modell visszaállítási korlátozásait ismertető cikkben olvashat.
Fontos
Az adatbázis helyreállítási modelljétől függetlenül az SQL Server biztonsági mentése nem állítható vissza a biztonsági mentést létrehozó verziónál régebbi SQL Server-adatbázismotor-verzióra.
Visszaállítási forgatókönyvek az egyszerű helyreállítási modellben
Az egyszerű helyreállítási modell a visszaállítási műveletekre a következő korlátozásokat alkalmazza:
A fájl-visszaállítás és a részlet-visszaállítás csak írásvédett másodlagos fájlcsoportok esetén érhető el. A visszaállítási forgatókönyvekről további információt a Fájl-visszaállítások (Simple Recovery Model) és darabos visszaállítások (SQL Server)című témakörben talál.
A lap visszaállítása nem engedélyezett.
Az időponthoz kötött visszaállítás nem engedélyezett.
Ha a korlátozások bármelyike nem megfelelő a helyreállítási igényekhez, javasoljuk, hogy fontolja meg a teljes helyreállítási modell használatát. További információ: Biztonsági mentés áttekintése (SQL Server).
Fontos
Az adatbázis helyreállítási modelljétől függetlenül az SQL Server biztonsági mentése nem állítható vissza az SQL Server azon verziójával, amely régebbi a biztonsági mentést létrehozó verziónál.
Visszaállítás a tömegesen naplózott helyreállítási modell esetén
Ez a szakasz a nagy mennyiségben naplózott helyreállítási modellre jellemző visszaállítási szempontokat ismerteti, amelyek kizárólag a teljes helyreállítási modell kiegészítéseként használatosak.
Jegyzet
A tömeges naplózású helyreállítási modell bevezetéséhez lásd: A tranzakciónapló.
A tömegesen naplózott helyreállítási modell általában a teljes helyreállítási modellhez hasonló, és a teljes helyreállítási modellhez leírt információk mindkettőre vonatkoznak. Az időponthoz kötött helyreállításra és az online visszaállításra azonban hatással van a tömegesen naplózott helyreállítási modell.
Időponthoz kötött helyreállítás korlátozásai
Ha a tömegesen naplózott helyreállítási modellben készített napló biztonsági mentése tömegesen naplózott módosításokat tartalmaz, az időponthoz kötött helyreállítás nem engedélyezett. Ha tömeges módosításokat tartalmazó napló biztonsági mentésén próbál időponthoz kötött helyreállítást végezni, a visszaállítási művelet meghiúsul.
Az online visszaállítás korlátozásai
Az online visszaállítási sorozat csak akkor működik, ha a következő feltételek teljesülnek:
A visszaállítási folyamat megkezdése előtt minden szükséges napló biztonsági mentését el kell végezni.
Az online visszaállítási sorozat elindítása előtt a tömeges módosításokat biztonsági másolatot kell készítenünk.
Ha tömeges módosítások léteznek az adatbázisban, minden fájlnak online-nak kell lennie, vagy (azaz már nem része az adatbázisnak).
Ha ezek a feltételek nem teljesülnek, az online visszaállítási folyamat meghiúsul.
Jegyzet
Javasoljuk, hogy az online visszaállítás megkezdése előtt váltson a teljes helyreállítási modellre. További információ: Recovery-modellek (SQL Server).
Az online visszaállítás végrehajtásáról további információt az Online visszaállítás (SQL Server)című témakörben talál.
Database Recovery Advisor (SQL Server Management Studio)
A Database Recovery Advisor olyan visszaállítási tervek készítését teszi lehetővé, amelyek optimálisan megfelelő visszaállítási sorozatokat implementálnak. Számos ismert adatbázis-visszaállítási problémát és az ügyfelek által kért fejlesztéseket elhárítottunk. A Database Recovery Advisor által bevezetett főbb fejlesztések a következők:
Visszaállítási terv algoritmus: A visszaállítási tervek létrehozásához használt algoritmus jelentősen javult, különösen összetett visszaállítási forgatókönyvek esetén. Számos szélsőséges esetet, köztük a pillanatfelvétel-alapú visszaállítások elágaztatási forgatókönyveit is hatékonyabban kezelik, mint az SQL Server korábbi verzióiban.
Időponthoz kötött visszaállítások: A Database Recovery Advisor jelentősen leegyszerűsíti az adatbázisok adott időpontra való visszaállítását. A vizualizációk biztonsági mentési ütemterve jelentősen növeli az időponthoz kötött visszaállítások támogatását. Ez a vizualizációs idővonal lehetővé teszi egy megvalósítható időpont azonosítását, mint az adatbázis helyreállításának célhelyét. Az idővonal megkönnyíti az elágaztatott helyreállítási útvonalak (a helyreállítási villákra kiterjedő) áthaladását. Egy adott időponthoz kötött visszaállítási terv automatikusan tartalmazza azokat a biztonsági másolatokat, amelyek a célpontra való visszaállítás szempontjából relevánsak (dátum és idő). További információért lásd: SQL Server-adatbázis visszaállítása egy időpontra a teljes helyreállítási modellben.
További információt a Database Recovery Advisorról az alábbi SQL Server-kezelhetőségi blogokban talál:
Gyorsított adatbázis-helyreállítás
gyorsított adatbázis-helyreállítás (ADR) az SQL Server 2019-ben (15.x) érhető el. Az ADR az Azure SQL Database-ben, az Azure SQL Managed Instance-ben, az Azure Synapse Analyticsben (csak dedikált SQL-készlet) és a Microsoft Fabric SQL Database-ben is elérhető. A gyorsított adatbázis-helyreállítás jelentősen javítja az adatbázisok rendelkezésre állását, különösen hosszú ideig futó tranzakciók esetén az SQL Server adatbázismotorjának helyreállítási folyamatújratervezésével. Az ADR-kompatibilis adatbázisok a feladatátvétel vagy más váratlan leállítás után jelentősen gyorsabban hajtják végre a helyreállítási folyamatot. Ha az ADR engedélyezve van, a megszakított, hosszú ideig futó tranzakciók visszaállítása azonnal befejeződik.
Az adatbázisonkénti ADR-t az SQL Server 2019 (15.x) és újabb verzióiban az alábbi szintaxissal engedélyezheti:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Jegyzet
Az ADR mindig engedélyezve van az Azure SQL Database,az Azure SQL Managed Instance, az Azure Synapse Analytics (csak dedikált SQL-készlet) és a Microsoft Fabric SQL Database-ben.