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


Gyorsított adatbázis-helyreállítás kezelése

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók

Ez a cikk bemutatja gyorsított adatbázis-helyreállítás (ADR) engedélyezését és letiltását az SQL Server 2019-es (15.x) és újabb verziók Transact-SQL (T-SQL) használatával, valamint az ADR által használt állandó verziótár (PVS) fájlcsoport módosításával.

Jegyzet

Az Azure SQL Database-ben, a felügyelt Azure SQL-példányban és a Microsoft Fabric sql-adatbázisában a gyorsított adatbázis-helyreállítás (ADR) mindig engedélyezve van. Ha problémákat észlel, például a PVS által okozott magas tárterület-használatot vagy a lassú ADR-takarítást, lásd a(z) Az adatbázis gyorsított helyreállításának figyelése és hibaelhárítása, vagy forduljon Azure támogatáshoz.

Kinek érdemes megfontolnia a gyorsított adatbázis-helyreállítást

Sok ügyfél értékes technológiának találja a gyorsított adatbázis-helyreállítást (ADR) az adatbázis-helyreállítási idő javítása és a hosszú visszaállítások elkerülése érdekében.

Ha az adatbázis számítási feladatai gyakran találkoznak a következő forgatókönyvekkel, az ADR előnyeit élvezheti:

  • Hosszú ideig futó tranzakciók, amelyeket nem lehet elkerülni. Az ADR például segít azokban az esetekben, amikor a hosszú ideig futó tranzakciókat vissza lehet állítani.
  • Aktív tranzakciók, amelyek miatt a tranzakciónapló jelentősen növekedni fog.
  • Hosszú ideig futó adatbázis-helyreállítás, amely befolyásolja az adatbázis rendelkezésre állását (például váratlan SQL Server-újraindítás vagy manuális tranzakció-visszaállítás után).

Ha az alkalmazás nagy mennyiségű egysoros módosítást használ az egyes tranzakciókban, előfordulhat, hogy a számítási feladat nem optimális az ADR-hez. Lehetőség szerint fontolja meg a többsoros utasítások módosításainak kötegelését, és kerülje a nagy mennyiségű kis DML-tranzakciót.

ADR engedélyezése

Az ADR alapértelmezés szerint ki van kapcsolva, és az SQL Server 2019-től kezdve (15.x) érhető el.

Az ADR engedélyezéséhez használja a következő Transact-SQL (T-SQL) parancsot:

ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;

Az ADR engedélyezéséhez vagy letiltásához kizárólagos adatbázis-zárolásra van szükség. Ez azt jelenti, hogy a ALTER DATABASE parancs mindaddig le van tiltva, amíg az összes aktív munkamenet el nem tűnt, és hogy az új munkamenetek a ALTER DATABASE parancs mögött várakoznak. Ha fontos a művelet végrehajtása és a zárolás eltávolítása, használhatja a megszüntetési záradékot, WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT] megszakíthatja az adatbázis aktív munkameneteit. További információ: ALTER DATABASE SET beállításai.

Ha engedélyezi vagy letiltja az ADR-t tempdb, nincs szükség kizárólagos adatbázis-zárolásra, és nem kell megadnia a megszüntetési záradékot. A módosítás érvénybe lépéséhez azonban újra kell indítani az adatbázismotort.

ADR letiltása

Az ADR letiltásához használja a következő T-SQL-parancsot:

ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO

Előfordulhat, hogy az ADR letiltása után is vannak olyan PVS-ben tárolt verziók, amelyekre a rendszernek továbbra is szüksége van a logikai visszaállításhoz, amíg az összes aktív tranzakció befejeződik. Ha letiltja az ADR-t tempdb, a módosítás érvénybe lépéséhez újra kell indítani az adatbázismotort.

A PVS-fájlcsoport módosítása

Alapértelmezés szerint az állandó verziótár (PVS) adatai a PRIMARY fájlcsoportban találhatóak. Szükség esetén áthelyezheti a PVS-t egy másik fájlcsoportba. Például több helyet vagy gyorsabb tárhelyet igényelhet.

A PVS helyének másik fájlcsoportra való módosításához kövesse az alábbi lépéseket:

  1. Hozza létre a PVS-fájlcsoportot, és adjon hozzá legalább egy adatfájlt ehhez a fájlcsoporthoz. Például:

    ALTER DATABASE [<db_name>] ADD FILEGROUP [VersionStoreFG];
    GO
    
    ALTER DATABASE [<db_name>]
    ADD FILE
    (
       NAME = N'VersionStoreFG',
       FILENAME = N'E:\DATA\VersionStore.ndf',
       SIZE = 8192 MB,
       FILEGROWTH = 64 MB
    )
    TO FILEGROUP [VersionStoreFG];
    
  2. Tiltsa le az ADR-t a következő T-SQL-paranccsal:

    ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
    GO
    
  3. Várjon, amíg a PVS-ben tárolt összes verzió el nem távolítva.

    Az ADR új PVS-hely használatával történő engedélyezéséhez először győződjön meg arról, hogy az összes verzióinformáció törlődött az előző PVS-helyről. A sys.sp_persistent_version_cleanup tárolt eljárással kényszerítheti a törlést:

    EXEC sys.sp_persistent_version_cleanup [<db_name>];
    

    A sys.sp_persistent_version_cleanup tárolt eljárás szinkron, ami azt jelenti, hogy addig nem fejeződik be, amíg az összes verzióinformáció el nem törlődik az aktuális PVS-ből. Miután befejeződött, és feltételezve, hogy az ADR le van tiltva, ellenőrizheti a verzióinformációk eltávolítását a sys.dm_tran_persistent_version_store_stats lekérdezésével és a persistent_version_store_size_kbértékének vizsgálatával. Például:

    SELECT DB_NAME(database_id),
           persistent_version_store_size_kb
    FROM sys.dm_tran_persistent_version_store_stats
    WHERE database_id = [MyDatabaseID];
    

    Ha a persistent_version_store_size_kb értéke 0, újra engedélyezheti az ADR-t, és elhelyezheti a PVS-t az új fájlcsoporton.

  4. Engedélyezze az ADR-t, és adja meg az új PVS-helyet a következő T-SQL-paranccsal:

    ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON
    (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
    

Jegyzet

A PVS áthelyezése egy másik fájlcsoportba tempdb nem támogatott, mert nem adhat fájlcsoportokattempdb.

A PVS méretének figyelése

Miután engedélyezte az ADR-t egy adatbázisban, figyelje az állandó verziótár (PVS) méretét és a PVS-törlési teljesítményt. További információért lásd: a gyorsított adatbázis-helyreállítás monitorozása és hibaelhárítása.