Lägga till en beständig loggbuffert i en databas
gäller för:SQL Server
Det här avsnittet beskriver hur du lägger till och tar bort en beständig loggbuffert i en databas i SQL Server 2016 (13.x) och senare med Hjälp av Transact-SQL.
Behörigheter
Kräver ALTER
behörighet för databasen.
Konfigurera beständig minnesenhet (Linux)
Konfigurera en beständig minnesenhet i Linux-.
Konfigurera beständig minnesenhet (Windows)
Konfigurera en beständig minnesenhet i Windows.
Lägga till en beständig loggbuffert i en databas
Volymen eller monteringspunkten för den nya loggfilen måste formateras med DAX aktiverat (NTFS) eller monterat med DAX-alternativet (XFS/EXT4).
Använd följande syntax för att lägga till en beständig loggbuffert i en befintlig databas. Syntaxen varierar beroende på versionen av SQL Server.
Lägg till beständig loggbuffert i SQL Server 2017 (14.x) och senare
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');
Till exempel:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');
Namnet på den beständiga loggfilbufferten genereras automatiskt. Storleken på filen är alltid 20 megabyte.
Lägg till beständig loggbuffert i SQL Server 2016 (13.x)
ALTER DATABASE [DB] ADD LOG FILE
(
NAME = [DAXlogLogicalName],
FILENAME = 'path-to-log-file-on-a-DAX-volume',
SIZE = 20 MB
);
Till exempel:
ALTER DATABASE WideWorldImporters ADD LOG FILE
(
NAME = wwi_log2,
FILENAME = 'F:\SQLTLog\wwi_log2.pldf',
SIZE = 20 MB
);
Loggbuffertfilen på DAX-volymen storleksanpassas till 20 MB oavsett vilken storlek som anges med kommandot ALTER DATABASE ADD LOG FILE
.
Ta bort en beständig loggbuffert från en databas
Om du vill ta bort en beständig loggbuffert på ett säkert sätt måste databasen placeras i enanvändarläge för att tömma den beständiga loggbufferten.
När du tar bort en beständig loggbuffert tas loggbuffertfilen på disken bort.
Syntaxen varierar beroende på versionen av SQL Server.
Ta bort beständig loggbuffert i SQL Server 2017 (14.x) och senare
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;
Till exempel:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;
Ta bort beständig loggbuffert i SQL Server 2016 (13.x)
ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] SET MULTI_USER;
Till exempel:
ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;
Begränsningar
Transparent datakryptering (TDE) är inte kompatibel med beständig loggbuffert.
Tillgänglighetsgrupper kan endast använda den här funktionen på sekundära repliker på grund av kravet på loggläsaragenten för standardloggskrivningssemantik på den primära. En liten loggfil måste dock skapas på alla noder (helst på DAX-volymer eller monteringar). I händelse av en redundansväxling måste den beständiga loggbuffertsökvägen finnas för att redundansväxlingen ska lyckas.
Försiktighet
Om den beständiga loggbuffertsökvägen eller filen inte finns under en redundanshändelse för tillgänglighetsgrupp eller databasstart, anger databasen ett RECOVERY PENDING
tillstånd tills problemet har lösts.
Samverkan med andra PMEM-funktioner
När både bestående loggbuffert och hybridbuffertpool är aktiverade, tillsammans med start-spårningsflagga 809, fungerar hybridbuffertpoolen i det som kallas Direct Write-läge.
Säkerhetskopierings- och återställningsåtgärder
Normala återställningsvillkor gäller. Om beständig loggbuffert återställs till en DAX-volym eller montering fortsätter den att fungera. Om loggen återställs till en icke-DAX-diskvolym kan den tas bort på ett säkert sätt med hjälp av kommandot ALTER DATABASE REMOVE FILE
.