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
Azure SQL Database
Az ellenőrzőpontok létrehoznak egy ismert hasznos pontot, amelyből az SQL Server adatbázismotor egy váratlan leállítás vagy összeomlás után megkezdheti a naplóban található módosítások alkalmazását.
Áttekintés
Teljesítménybeli okokból az adatbázismotor a memóriában, a puffergyorsítótárban módosítja az adatbázislapokat, és nem írja ezeket a lapokat a lemezre minden módosítás után. Ehelyett az adatbázismotor rendszeresen kiad egy ellenőrzőpontot az egyes adatbázisokon. Egy ellenőrzőpont megírja az aktuális memóriabeli módosított lapokat (más néven piszkos oldalakat) és a tranzakciónapló adatait a memóriából a lemezre, és rögzíti a tranzakciónaplóban lévő információkat is.
Az adatbázismotor többféle ellenőrzőpontot támogat: automatikus, közvetett, manuális és belső. Az alábbi táblázat összefoglalja az ellenőrzőpontok típusait.
| Név | Transact-SQL felület | Description |
|---|---|---|
| Automatikus | EXEC sp_configure "helyreállítási időköz", "másodperc" | Automatikusan kiadva a háttérben annak érdekében, hogy megtörténjen a helyreállítási időköz kiszolgáló konfigurációs beállításai által javasolt felső időkorlát elérése. Az automatikus ellenőrzőpontok a befejezésig futnak. Az automatikus ellenőrzőpontok szabályozása a függőben lévő írások számától és attól függ, hogy az adatbázismotor észleli-e az írási késés 50 ezredmásodperc feletti növekedését. További információ: A helyreállítási időköz konfigurálása kiszolgálókonfigurációs lehetőség. |
| Közvetett | ALTER DATABASE ... SET TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | PERCEK } | A háttérben végrehajtva, hogy megfeleljen egy adott adatbázis felhasználó által megadott helyreállítási célnak megfelelő időnek. Az SQL Server 2016 -tól kezdve (13.x) az alapértelmezett érték 1 perc. Az alapértelmezett érték a 0 a régebbi verziók esetében, ami azt jelzi, hogy az adatbázis automatikus ellenőrzőpontokat fog használni, amelyek gyakorisága a kiszolgálópéldány helyreállítási időközének beállításától függ. További információ: Adatbázis (SQL Server) célhelyreállítási idejének módosítása. |
| Kézikönyv | CHECKPOINT [ checkpoint_duration ] | Transact-SQL CHECKPOINT-parancs végrehajtásakor van kiadva. A manuális ellenőrzőpont végrehajtása a kapcsolat jelenlegi adatbázisában történik. Alapértelmezés szerint a manuális ellenőrzőpontok teljesen lefutnak. A szabályozás ugyanúgy működik, mint az automatikus ellenőrzőpontok esetében. Ha szükséges, a checkpoint_duration paraméter másodpercben megadja a kért időt az ellenőrzőpont befejezéséhez. További információ: CHECKPOINT (Transact-SQL). |
| belső | None | A különböző kiszolgálói műveletek, például a biztonsági mentés és az adatbázis-pillanatkép létrehozása által kibocsátott lemezképek garantálják, hogy a lemezképek megfeleljenek a napló aktuális állapotának. |
Az -k SQL Server speciális beállításával az adatbázis-rendszergazda szabályozhatja az ellenőrzőpontok I/O-viselkedését az I/O-alrendszer bizonyos típusú ellenőrzőpontok átviteli sebessége alapján. A -k beállítás az automatikus ellenőrzőpontokra, valamint az egyébként nem szabályozott manuális és belső ellenőrzőpontokra vonatkozik.
Az automatikus, manuális és belső ellenőrzőpontok esetében csak a legutóbbi ellenőrzőpont utáni módosításokat kell előterjeszteni az adatbázis-helyreállítás során. Ez csökkenti az adatbázisok helyreállításához szükséges időt.
Fontos
A hosszú ideig futó, nem véglegesített tranzakciók növelik az összes ellenőrzőpont-típus helyreállítási idejét.
A TARGET_RECOVERY_TIME és a helyreállítási időköz beállításainak interakciója
Az alábbi táblázat összefoglalja a kiszolgálószintű sp_configure 'recovery interval' és az adatbázis-specifikus ALTER DATABASE ... TARGET_RECOVERY_TIME beállítás közötti interakciót.
| CÉLZOTT_HELYREÁLLÍTÁSI_IDŐ | "helyreállítási időköz" | Használt ellenőrzőpont típusa |
|---|---|---|
| 0 | 0 | automatikus ellenőrzőpontok, amelyek visszaállítási célzott időtartama 1 perc. |
| 0 | > 0 | Automatikus ellenőrzőpontok, amelyeknek a helyreállítási céltartományát a felhasználó által megadott sp_configure 'recovery interval' beállítás határozza meg. |
| > 0 | Nem alkalmazható | Közvetett ellenőrzőpontok, amelyek célhelyreállítási idejét a TARGET_RECOVERY_TIME beállítás határozza meg, kifejezve másodpercekben. |
Automatikus ellenőrzőpontok
Az automatikus ellenőrzőpont minden alkalommal megtörténik, amikor a naplórekordok száma eléri azt a számot, amely az adatbázismotor becslése szerint feldolgozható a helyreállítási időköz kiszolgáló konfigurációs beállításában megadott idő alatt. További információ: A helyreállítási időköz konfigurálása kiszolgálókonfigurációs lehetőség.
Minden olyan adatbázisban, amelyben nincs felhasználó által meghatározott célhelyreállítási idő, az adatbázismotor automatikus ellenőrzőpontokat hoz létre. A gyakoriság a helyreállítási időköz speciális kiszolgálókonfigurációs beállításától függ, amely meghatározza, hogy egy adott kiszolgálópéldány mennyi időt használjon adatbázis helyreállítására a rendszer újraindítása során. Az adatbázismotor a helyreállítási időközön belül feldolgozható naplórekordok maximális számát becsüli meg. Amikor egy automatikus ellenőrzőpontot használó adatbázis eléri a naplórekordok maximális számát, az adatbázismotor egy ellenőrzőpontot ad ki az adatbázison.
Az automatikus ellenőrzőpontok közötti időintervallum nagy mértékben változó lehet. A jelentős tranzakciós számítási feladatokkal rendelkező adatbázisok gyakrabban rendelkeznek ellenőrzőpontokkal, mint egy elsősorban írásvédett műveletekhez használt adatbázissal. Az egyszerű helyreállítási modellben egy automatikus ellenőrzőpont is várólistára kerül, ha a napló 70%-kal megtelik.
Az egyszerű helyreállítási modellben, hacsak nem valamilyen tényező késlelteti a napló csonkolását, az automatikus ellenőrzőpont csonkolja a tranzakciónapló nem használt szakaszát. Ezzel szemben a teljes és tömeges naplózású helyreállítási modellekben, miután létrejött egy naplómentési lánc, az automatikus ellenőrzőpontok nem okoznak napló metszését. További információ: A tranzakciónapló (SQL Server).
A rendszer összeomlása után az adott adatbázis helyreállításához szükséges idő nagyban függ attól, hogy mennyi véletlenszerű I/O szükséges az összeomlás időpontjában piszkos oldalak újbóli végrehajtásához. Ez azt jelenti, hogy a helyreállítási időköz beállítása megbízhatatlan. Nem tudja meghatározni a helyreállítás pontos időtartamát. Továbbá, ha egy automatikus ellenőrzőpont folyamatban van, az adatok általános I/O-tevékenysége jelentősen és kiszámíthatatlanul nő.
A helyreállítási időköz hatása a helyreállítási teljesítményre
A rövid tranzakciókat használó online tranzakciófeldolgozási (OLTP) rendszerek esetében a helyreállítási időköz az elsődleges tényező, amely meghatározza a helyreállítási időt. A helyreállítási időköz beállítás azonban nem befolyásolja a hosszú ideig futó tranzakciók visszavonásához szükséges időt. Egy hosszú ideig futó tranzakcióval rendelkező adatbázis helyreállítása sokkal tovább tarthat, mint a helyreállítási időköz beállításában megadott idő.
Ha például egy hosszú ideig futó tranzakció két órát vett igénybe a frissítések végrehajtásához, mielőtt a kiszolgálópéldány le lett tiltva, a tényleges helyreállítás jelentősen tovább tart, mint a helyreállítási időköz értéke a hosszú tranzakció helyreállításához. A hosszú ideig futó tranzakciók helyreállítási időre gyakorolt hatásáról további információt a Tranzakciónaplóban (SQL Server) talál. A helyreállítási folyamatról további információt a Visszaállítás és helyreállítás áttekintése (SQL Server) című témakörben talál.
Az alapértelmezett értékek általában optimális helyreállítási teljesítményt biztosítanak. A helyreállítási időköz módosítása azonban a következő körülmények között javíthatja a teljesítményt:
Ha a helyreállítás rutinszerűen 1 percnél hosszabb időt vesz igénybe, amikor a hosszú ideig futó tranzakciók nincsenek visszaállítva.
Ha azt tapasztalja, hogy a gyakori ellenőrzőpontok rontják az adatbázisok teljesítményét.
Ha úgy dönt, hogy növeli a helyreállítási időköz beállítását, javasoljuk, hogy kis lépésekkel fokozatosan növelje, és értékelje az egyes növekményes növekedésnek a helyreállítási teljesítményre gyakorolt hatását. Ez a megközelítés azért fontos, mert a helyreállítási időköz beállításának növekedésével az adatbázis-helyreállítás ennyi ideig tart. Ha például a helyreállítási időközt 10 percre módosítja, a helyreállítás körülbelül 10-szer hosszabb időt vesz igénybe, mint amikor a helyreállítási időköz 1 percre van állítva.
Közvetett ellenőrzőpontok
Az SQL Server 2012-ben (11.x) bevezetett közvetett ellenőrzőpontok konfigurálható adatbázisszintű alternatívát biztosítanak az automatikus ellenőrzőpontok helyett. Ez a célhelyreállítási idő adatbázis konfigurációs beállításának megadásával konfigurálható. További információ: Adatbázis (SQL Server) célhelyreállítási idejének módosítása. Rendszer összeomlása esetén a közvetett ellenőrzőpontok potenciálisan gyorsabb, kiszámíthatóbb helyreállítási időt biztosítanak, mint az automatikus ellenőrzőpontok.
A közvetett ellenőrzőpontok a következő előnyöket kínálják:
A közvetett ellenőrzőpontok biztosítják, hogy a piszkos oldalak száma egy bizonyos küszöbérték alatt legyen, így az adatbázis helyreállítása a célhelyreállítási időn belül befejeződik.
A helyreállítási időköz konfigurációs beállítás a tranzakciók számát használja a helyreállítási idő meghatározásához, szemben a közvetett ellenőrzőpontokkal , amelyek a piszkos oldalak számát használják. Ha egy nagy számú DML-műveletet fogadó adatbázisban engedélyezve vannak a közvetett ellenőrzőpontok, a háttéríró elkezdhet agresszíven kiüríteni a piszkos puffereket a lemezre, hogy a helyreállításhoz szükséges idő az adatbázis célhelyreállítási időhalmazán belül legyen. Ez további I/O-tevékenységet okozhat bizonyos rendszereken, ami hozzájárulhat a teljesítmény szűk keresztmetszetéhez, ha a lemezalrendszer az I/O-küszöbérték felett vagy közelében működik.
A közvetett ellenőrzőpontok lehetővé teszik az adatbázis-helyreállítási idő megbízható szabályozását a reDO során a véletlenszerű I/O költségeinek figyelembe adásával. Ez lehetővé teszi, hogy a kiszolgálópéldány egy adott adatbázis helyreállítási idejének felső határán belül maradjon (kivéve, ha egy hosszú ideig futó tranzakció túlzott UNDO időt okoz).
A közvetett ellenőrzőpontok csökkentik az ellenőrzőponttal kapcsolatos I/O-spikálást azáltal, hogy folyamatosan piszkos lapokat írnak a lemezre a háttérben.
A közvetett ellenőrzőpontokhoz konfigurált adatbázisok online tranzakciós számítási feladatai azonban teljesítménycsökkenést tapasztalhatnak. Ennek az az oka, hogy a közvetett ellenőrzőpont által használt háttéríró néha növeli a kiszolgálópéldány teljes írási terhelését.
Fontos
A közvetett ellenőrzőpont az SQL Server 2016-ban (13.x) létrehozott új adatbázisok alapértelmezett viselkedése, beleértve a model és tempdb adatbázisokat is.
A helyben frissített vagy az SQL Server egy korábbi verziójából visszaállított adatbázisok az előző automatikus ellenőrzőpont-viselkedést használják, kivéve, ha explicit módon módosították a közvetett ellenőrzőpont használatát.
Továbbfejlesztett közvetett ellenőrzőpontok méretezhetősége
Az SQL Server 2019 (15.x) előtt előfordulhatnak nem jelentkező ütemezési hibák, ha van egy olyan adatbázis, amely nagyszámú piszkos oldalt generál, például a tempdb. Az SQL Server 2019 (15.x) továbbfejlesztett méretezhetőséget biztosít a közvetett ellenőrzőpontokhoz, ami segít elkerülni ezeket a hibákat a nagy UPDATE/INSERT számítási feladattal rendelkező adatbázisokban.
Belső ellenőrzőpontok
A belső ellenőrzőpontokat különböző kiszolgálóösszetevők állítják elő, hogy a lemezképek megfeleljenek a napló aktuális állapotának. A belső ellenőrzőpontok a következő eseményekre reagálva jönnek létre:
Az adatbázisfájlokat az ALTER DATABASE használatával adták hozzá vagy távolították el.
A rendszer biztonsági másolatot készít az adatbázisról.
Létrejön egy adatbázis-pillanatkép, akár explicit módon, akár belsőleg a DBCC CHECKDB-hez.
Egy adatbázis-leállítást igénylő tevékenység történik. Például AUTO_CLOSE be van kapcsolva, és az adatbázis utolsó felhasználói kapcsolata lezárul, vagy olyan adatbázis-beállításmódosítás történik, amely az adatbázis újraindítását igényli.
Az SQL Server egy példányát leállítja az SQL Server (MSSQLSERVER) szolgáltatás leállítása. Ez a művelet az SQL Server példányában lévő adatbázisokban ellenőrzőpontot okoz.
SQL Server feladatátvevő fürtpéldány (FCI) offline állapotba helyezése.
Következő lépések
- A helyreállítási időköz konfigurálása kiszolgálókonfigurációs beállítás
- Adatbázis célhelyreállítási idejének módosítása (SQL Server)
- ELLENŐRZŐPONT (Transact-SQL)