Skip to content

Latest commit

 

History

History
107 lines (77 loc) · 4.25 KB

add-persisted-log-buffer.md

File metadata and controls

107 lines (77 loc) · 4.25 KB
title description author ms.author ms.reviewer ms.date ms.service ms.subservice ms.custom ms.topic helpviewer_keywords
Add persisted log buffer to a database
Explains how to add a persisted log buffer to a database in SQL Server 2019 and later. Provides Transact SQL examples.
briancarrig
brcarrig
mikeray
10/30/2019
sql
configuration
linux-related-content
conceptual
PMEM
persistent memory
persisted log buffer
add log file
create log buffer
remove log buffer

Add persisted log buffer to a database

[!INCLUDE SQL Server]

This topic describes how to add a persisted log buffer to a database in [!INCLUDEsqlv15] and above using [!INCLUDEtsql].

Permissions

Requires ALTER permission on the database.

Configure persistent memory device (Linux)

To configure a persistent memory device in Linux.

Configure persistent memory device (Windows)

To configure a persistent memory device in Windows.

Add a persisted log buffer to a database

The following example adds a persisted log buffer.

ALTER DATABASE <MyDB> 
  ADD LOG FILE 
  (
    NAME = <DAXlog>, 
    FILENAME = '<Filepath to DAX Log File>', 
    SIZE = 20MB
  );

For example:

ALTER DATABASE WideWorldImporters 
  ADD LOG FILE 
  (
    NAME = wwi_log2, 
    FILENAME = 'F:/SQLTLog/wwi_log2.pldf', 
    SIZE = 20MB
  );

The log file on the DAX volume will be sized at 20 MB regardless of the size specified with the ADD FILE command.

The volume or mount the new log file is placed must be formatted with DAX enabled (NTFS) or mounted with the DAX option (XFS/EXT4).

Remove a persisted log buffer

To safely remove a persisted log buffer, the database must be placed in single user mode in order to drain the persisted log buffer.

The following example removes a persisted log buffer.

ALTER DATABASE <MyDB> SET SINGLE_USER;
ALTER DATABASE <MyDB> REMOVE FILE <DAXlog>;
ALTER DATABASE <MyDB> SET MULTI_USER;

For example:

ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;

Limitations

Transparent Data Encryption (TDE) is not compatible with persisted log buffer.

Availability Groups can only use this feature on secondary replicas due to the requirement by the log reader agent for standard log writing semantics on the primary. However, the small log file must be created on all nodes (ideally on DAX volumes or mounts). In the event of a failover, the persisted log buffer path must exist, in order for the failover to be successful.

In cases where the path or file isn't present during an Availability Group failover event, or database startup, the database enters a RECOVERY PENDING state until the issue is resolved.

Interoperability with other PMEM features

When both Persisted log buffer and Hybrid Buffer Pool are jointly enabled, along with start-up trace flag 809, Hybrid buffer pool will operate in what is known as Direct Write mode.

Back up and restore operations

Normal restore conditions apply. If persisted log buffer is restored to a DAX volume or mount, it will continue to function, otherwise it can be safely removed.

Next steps