共用方式為


將永續性記錄緩衝區新增至資料庫

適用於:SQL Server

本主題描述如何使用 Transact-SQL,在 SQL Server 2016 (13.x) 和更新版本中,將永續性記錄緩衝區新增和移除至資料庫。

權限

需要資料庫的 ALTER 權限。

設定持續性記憶體裝置 (Linux)

Linux 中設定持續性記憶體裝置。

設定持續性記憶體裝置 (Windows)

Windows 中設定持續性記憶體裝置。

將永續性記錄緩衝區新增至資料庫

新記錄檔的磁碟區或掛載點必須格式化為已啟用 DAX 的 NTFS,或以 DAX 選項掛接的 XFS/EXT4。

使用下列語法,將永續性記錄緩衝區新增至現有的資料庫。 語法會根據 SQL Server 的版本而有所不同。

在 SQL Server 2017 (14.x) 和更新版本中新增持續性記錄緩衝區

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');

例如:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');

系統會自動產生永續性記錄檔緩衝區的名稱。 檔案的大小一律為 20 MB。

在 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
);

例如:

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

不論使用 ALTER DATABASE ADD LOG FILE 命令指定的大小為何,DAX 磁碟區上的記錄緩衝區檔案大小都會以 20 MB 為單位。

從資料庫移除永續性記錄緩衝區

若要安全地移除永續性記錄緩衝區,資料庫必須放在單一使用者模式中,才能清空持續性記錄緩衝區。

當您移除持續性記錄緩衝區時,會刪除磁碟上的記錄緩衝區檔案。

語法會根據 SQL Server 的版本而有所不同。

在 SQL Server 2017 (14.x) 和更新版本中移除持續性記錄緩衝區

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;

例如:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;

在 SQL Server 2016 中移除持續性記錄緩衝區 (13.x)

ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] 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 磁碟區或掛載,它會繼續運作。 如果記錄檔還原到非 DAX 磁碟區,則可以使用 ALTER DATABASE REMOVE FILE 命令安全地移除記錄。

下一步