Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en latere versies
In dit artikel leert u hoe u versneld databaseherstel (ADR) kunt in- en uitschakelen met Transact-SQL (T-SQL) in SQL Server 2019 (15.x) en latere versies, en hoe u de permanente versieopslagbestandsgroep (PVS) wijzigt die wordt gebruikt door ADR.
Note
In Azure SQL Database, Azure SQL Managed Instance en SQL Database in Microsoft Fabric Preview is versneld databaseherstel (ADR) altijd ingeschakeld. Als u problemen ondervindt, zoals een hoog opslaggebruik door PVS of trage ADR-opschoning, raadpleegt u Bewaken en problemen oplossen met versneld databaseherstel of neemt u contact op met Azure-ondersteunings-.
Wie moet overwegen om versneld databaseherstel uit te voeren
Veel klanten vinden versneld databaseherstel (ADR) een waardevolle technologie om de hersteltijd van de database te verbeteren en langdurige terugdraaiacties te voorkomen.
Als uw databaseworkloads vaak de volgende scenario's tegenkomen, kunt u profiteren van ADR:
- Langlopende transacties die niet kunnen worden vermeden. Adr helpt bijvoorbeeld in gevallen waarin langlopende transacties het risico lopen terug te draaien.
- Actieve transacties die ervoor zorgen dat het transactielogboek aanzienlijk toeneemt.
- Langdurig databaseherstel dat van invloed is op de beschikbaarheid van de database (bijvoorbeeld na een onverwachte herstart van SQL Server of handmatige terugdraaiing van een transactie).
Als uw toepassing een groot aantal wijzigingen van één rij in afzonderlijke transacties gebruikt, is uw workload mogelijk niet optimaal voor ADR. Overweeg waar mogelijk wijzigingen in instructies met meerdere rijen in batches te verwerken en vermijd een groot aantal kleine DML-transacties.
Enable ADR
ADR is standaard uitgeschakeld en is beschikbaar vanaf SQL Server 2019 (15.x).
Gebruik de volgende Transact-SQL opdracht (T-SQL) om ADR in te schakelen:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Een exclusieve databasevergrendeling is nodig om ADR in of uit te schakelen. Dit betekent dat de opdracht ALTER DATABASE wordt geblokkeerd totdat alle actieve sessies zijn verdwenen en dat eventuele nieuwe sessies achter de ALTER DATABASE opdracht wachten. Als het belangrijk is om de bewerking te voltooien en de vergrendeling te verwijderen, kunt u de beëindigingsclausule gebruiken WITH ROLLBACK [IMMEDIATE | AFTER {number} SECONDS | NO_WAIT] om actieve sessies in de database af te breken. Raadpleeg ALTER DATABASE SET optiesvoor meer informatie.
Als u ADR inschakelt of uitschakelt in tempdb, is een exclusieve databasevergrendeling niet vereist en mag de beëindigingsclausule niet worden opgegeven. Een herstart van de database-engine moet echter plaatsvinden om de wijziging van kracht te laten worden.
Disable ADR
Gebruik de volgende T-SQL-opdracht om ADR uit te schakelen:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF;
GO
Zelfs nadat ADR is uitgeschakeld, zijn er mogelijk versies opgeslagen in PVS die het systeem nog steeds nodig heeft voor logisch terugkeren totdat alle actieve transacties zijn voltooid. Als u de ADR in tempdb uitschakelt, is een herstart van de database-engine vereist zodat de wijziging van kracht wordt.
De PVS-bestandsgroep wijzigen
De PVS-gegevens (Persistent Version Store) bevinden zich standaard in de PRIMARY bestandsgroep. U kunt PVS indien nodig verplaatsen naar een andere bestandsgroep. Het kan bijvoorbeeld meer ruimte of snellere opslag vereisen.
Voer de volgende stappen uit om de locatie van de PVS te wijzigen in een andere bestandsgroep:
Maak de bestandsgroep voor PVS en voeg ten minste één gegevensbestand toe aan deze bestandsgroep. For example:
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];Schakel ADR uit met de volgende T-SQL-opdracht:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = OFF; GOWacht totdat alle versies die zijn opgeslagen in PVS zijn verwijderd.
Als u ADR wilt inschakelen met behulp van een nieuwe PVS-locatie, moet u eerst controleren of alle versie-informatie is verwijderd van de vorige PVS-locatie. U kunt afdwingen dat het opschonen plaatsvindt met de sys.sp_persistent_version_cleanup opgeslagen procedure:
EXEC sys.sp_persistent_version_cleanup [<db_name>];De
sys.sp_persistent_version_cleanupopgeslagen procedure is synchroon, wat betekent dat deze pas wordt voltooid als alle versiegegevens van de huidige PVS worden opgeschoond. Zodra deze is voltooid en ervan uitgaande dat ADR is uitgeschakeld, kunt u controleren of versiegegevens worden verwijderd door een query uit te voeren op sys.dm_tran_persistent_version_store_stats en de waarde vanpersistent_version_store_size_kbte onderzoeken. For example:SELECT DB_NAME(database_id), persistent_version_store_size_kb FROM sys.dm_tran_persistent_version_store_stats WHERE database_id = [MyDatabaseID];Wanneer de waarde van
persistent_version_store_size_kbis0, kunt u ADR opnieuw inschakelen en PVS in de nieuwe bestandsgroep plaatsen.Schakel ADR in en geef de nieuwe PVS-locatie op met de volgende T-SQL-opdracht:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON (PERSISTENT_VERSION_STORE_FILEGROUP = [VersionStoreFG]);
Note
Het verplaatsen van PVS naar een andere bestandsgroep wordt niet ondersteund tempdb omdat u geen bestandsgroepen kunt toevoegen.tempdb
Houd de grootte van de PVS in de gaten
Zodra u ADR hebt ingeschakeld in een database, controleert u de grootte van het permanente versiearchief (PVS) en de prestaties van pvs-opschoning. Zie Bewaken en problemen met versneld databaseherstel oplossenvoor meer informatie.