向数据库添加永久日志缓冲区

适用于: SQL Server

本主题介绍了如何使用 Transact-SQL 将持久日志缓冲区添加到 SQL Server 2019 (15.x) 及更高版本的数据库。

权限

需要对数据库拥有 ALTER 权限。

配置永久内存设备 (Linux)

Linux 中配置永久内存设备。

配置永久内存设备 (Windows)

Windows 中配置永久内存设备。

向数据库添加永久日志缓冲区

以下示例会添加一个永久日志缓冲区。

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

例如:

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

无论使用 ADD FILE 命令指定的大小为多少,DAX 卷上的日志文件大小都将为 20MB。

放置新日志文件的卷必须使用 DAX (NTFS) 格式,或者必须使用 DAX 选项 (XFS/EXT4) 装载。

删除永久日志缓冲区

要安全地删除永久日志缓冲区,必须将该数据库置于单用户模式,才能排空永久日志缓冲区。

以下示例将移除一个永久日志缓冲区。

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

例如:

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

限制

透明数据加密 (TDE) 与永久日志缓冲区不兼容。

可用性组只能在次要副本上使用此功能,因为在主副本上日志读取器代理需要使用标准日志编写语义。 但是,必须在所有节点上(最好在 DAX 卷或装载上)创建小型日志文件。 发生故障转移时,必须存在持久日志缓冲区路径,以确保故障转移成功。

如果在发生可用性组故障转移事件或数据库启动期间该路径或文件不存在,数据库将进入 RECOVERY PENDING 状态,直到问题得到解决为止。

与其他 PMEM 功能的互操作性

联合启用持久日志缓冲区和混合缓冲池以及启动跟踪标志 809 时,混合缓冲池将在所谓的直接写入模式下运行。

备份和还原操作

适用正常还原条件。 如果将永久日志缓冲区还原到 DAX 卷或装载,它将继续正常工作,否则请将其安全删除。

后续步骤