Freigeben über


Verwalten der beschleunigten Datenbankwiederherstellung

Gilt für: SQL Server 2019 (15.x) und höhere Versionen

In diesem Artikel erfahren Sie, wie Sie in SQL Server 2019 (15.x) und höheren Versionen die beschleunigte Datenbankwiederherstellung (Accelerated Database Recovery, ADR) mit Transact-SQL (T-SQL) aktivieren und deaktivieren. Außerdem erfahren Sie, wie Sie die von ADR verwendete Dateigruppe für den persistenten Versionsspeicher (PVS) ändern.

Hinweis

In der Azure SQL-Datenbank, der Azure SQL Managed Instance und der SQL-Datenbank in Microsoft Fabric ist die beschleunigte Datenbankwiederherstellung (ADR) immer aktiviert. Wenn Sie Probleme wie die hohe Speicherauslastung durch PVS oder langsame ADR-Bereinigung beobachten, lesen Sie Überwachen und Beheben von Problemen mit der beschleunigten Datenbankwiederherstellung oder wenden Sie sich an Azure-Support-.

Zielgruppe der schnelleren Datenbankwiederherstellung

Viele Kunden betrachten die beschleunigte Datenbankwiederherstellung (ADR) als wertvolle Technologie zur Verbesserung der Wiederherstellungszeit der Datenbank.

Wenn Ihre Datenbankworkloads häufig auf die folgenden Szenarien stoßen, könnten Sie von ADR profitieren:

  • Lang andauernde Transaktionen, die nicht vermieden werden können. In Fällen, in denen bei zeitintensiven Transaktionen die Gefahr einer Zurücksetzung besteht, kann ADR hilfreich sein.
  • Aktive Transaktionen, die dazu führen, dass das Transaktionsprotokoll stark anwächst.
  • Dauerhafter Datenbankwiederherstellungsprozess, der die Verfügbarkeit der Datenbank beeinträchtigt (z. B. nach einem unerwarteten SQL-Server-Neustart oder einem manuellen Transaktionsrollback).

Wenn Ihre Anwendung in einzelnen Transaktionen ein hohes Volumen einzeiliger Änderungen verwendet, ist Ihre Arbeitsauslastung für ADR möglicherweise nicht optimal. Erwägen Sie nach Möglichkeit Batchänderungen in mehrzeiligen Anweisungen, und vermeiden Sie ein hohes Volumen kleiner DML-Transaktionen.

ADR aktivieren

ADR ist standardmäßig deaktiviert und ab SQL Server 2019 (15.x) verfügbar.

Verwenden Sie den folgenden Transact-SQL (T-SQL)-Befehl, um ADR zu aktivieren:

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

Eine exklusive Datenbanksperre ist erforderlich, um ADR zu aktivieren oder zu deaktivieren. Das bedeutet, dass der Befehl ALTER DATABASE blockiert wird, bis alle aktiven Sitzungen beendet sind, und dass alle neuen Sitzungen hinter dem Befehl ALTER DATABASE warten. Wenn es wichtig ist, den Vorgang abzuschließen und die Sperre zu entfernen, können Sie die Terminierungsklausel WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT] verwenden, um alle aktiven Sitzungen in der Datenbank abzubrechen. Weitere Informationen finden Sie unter Optionen für ALTER DATABASE SET.

ADR deaktivieren

Verwenden Sie den folgenden T-SQL-Befehl, um ADR zu deaktivieren:

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

Selbst nachdem ADR deaktiviert wurde, können Versionen im PVS gespeichert werden, die das System für die logische Wiederherstellung benötigt, bis alle aktiven Transaktionen abgeschlossen sind.

Ändern der PVS-Dateigruppe

Standardmäßig befinden sich die Daten des persistenten Versionsspeichers (PVS) in der Dateigruppe PRIMARY. Sie können PVS bei Bedarf in eine andere Dateigruppe verschieben. Es kann z. B. mehr Speicherplatz oder schnelleren Speicher erfordern.

Führen Sie die folgenden Schritte aus, um den Speicherort des PVS in eine andere Dateigruppe zu ändern:

  1. Erstellen Sie die Dateigruppe für PVS und fügen Sie dieser Dateigruppe mindestens eine Datendatei hinzu. Zum Beispiel:

    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. Verwenden Sie den folgenden T-SQL-Befehl, um ADR zu deaktivieren:

    ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
    GO
    
  3. Warten Sie, bis alle in PVS gespeicherten Versionen entfernt wurden.

    Um ADR mithilfe eines neuen PVS-Standorts zu aktivieren, stellen Sie zunächst sicher, dass alle Versionsinformationen aus dem vorherigen PVS-Standort gelöscht wurden. Sie können erzwingen, dass die Bereinigung mit der gespeicherten Prozedur sys.sp_persistent_version_cleanup ausgeführt wird:

    EXEC sys.sp_persistent_version_cleanup [<db_name>];
    

    Die gespeicherte Prozedur sys.sp_persistent_version_cleanup erfolgt synchron. Das bedeutet, dass sie nicht vollständig ausgeführt wird, bis alle Versionsinformationen im aktuellen PVS gelöscht wurden. Nach Abschluss des Vorgangs und vorausgesetzt, dass ADR deaktiviert ist, können Sie überprüfen, ob Versionsinformationen entfernt werden, indem Sie sys.dm_tran_persistent_version_store_stats abfragen und den Wert von persistent_version_store_size_kbuntersuchen. Zum Beispiel:

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

    Wenn der Wert von persistent_version_store_size_kb0ist, können Sie ADR erneut aktivieren und PVS in der neuen Dateigruppe platzieren.

  4. Aktivieren Sie ADR und geben Sie den neuen PVS-Standort mit dem folgenden T-SQL-Befehl an:

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

Überwachen der PVS-Größe

Nachdem Sie ADR in einer Datenbank aktiviert haben, überwachen Sie die Größe des persistenten Versionsspeichers (PVS) und der PVS-Bereinigungsleistung. Weitere Informationen finden Sie unter Überwachung und Fehlerbehebung bei der beschleunigten Datenbankwiederherstellung.