共用方式為


為 Windows 上的 SQL Server 設定永續性記憶體 (PMEM)

本文說明如何在 Windows 上設定 SQL Server 2016 (13.x) 和更新版本的持續記憶體 (PMEM)。

概述

SQL Server 2019 (15.x) 具有數個依賴持續性記憶體的記憶體內部資料庫功能。 本文件涵蓋在 Windows 上設定 SQL Server 持續性記憶體所需的步驟。

注意

引入了 啟示 一詞,傳達使用持久性記憶體感知檔案系統的概念。 NTFS 檔案系統的直接存取(DAX)擴充功能可讓您將記憶體映射檔案從核心空間映射到使用者空間。 當檔案被映射到用戶空間時,應用程式可以直接對映射到記憶體的檔案發出載入/儲存指令,從而完全繞過核心的 I/O 堆疊。 這被視為「覺察型」檔案存取方法。 從 Windows Server 2022 起,Windows 和 Linux 平臺上都提供這項 啟蒙 功能。

設定裝置

建立 PMEM 裝置的命名空間

在 Windows 中,使用 ipmctl 公用程式來設定 PMEM 磁碟(稱為 Linux 中的命名空間)。 您可以在這裏 找到 Intel® Optane™ 特定指示。 不同 Windows 版本上支援的 PMEM 硬體詳細數據位於 瞭解及部署持續性記憶體。 PMEM 磁碟應該交錯使用於 PMEM NVDIMM 之間,並且可以提供不同類型的用戶空間存取,以訪問裝置上的記憶體區域。 如需 Windows 中交錯集的詳細資訊,請參閱 瞭解和部署持續性記憶體

PMEM 磁碟

使用 PowerShell 檢查 PMEM 磁碟

#Get information about all physical disks
Get-PhysicalDisk

#Review logical configuration of PMEM disks
Get-PmemDisk

#Get information about PMEM devices
Get-PmemPhysicalDevice

#Get information about unused PMEM regions
Get-PmemUnusedRegion

BTT 和 DAX

根據預設,New-PmemDisk 會使用所需的 FSDax 模式。 原子性設為預設 None,而不是 BlockTranslationTable。 從支持的觀點來看,必須啟用交易日誌的 BTT,以模擬期望的扇區模式語義。 雖然通常建議使用 BTT 搭配NTFS,但在需要使用大型頁的情況下,例如 DAX,則不建議使用 BTT。

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

格式化 NTFS 卷宗(磁碟區)


#Initialize PMEM Disk(s)
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT

#Create New Partition(s) and Format the Volume(s) with DAX Mode
Get-PmemDisk[0] | `
New-Partition `
    -UseMaximumSize `
    -AssignDriveLetter `
    -Offset 2097152 `
    -Alignment 2097152 | `
Format-Volume `
    -FileSystem NTFS `
    -IsDAX:$True `
    -AllocationUnitSize 2097152

檔案對齊和位移

檢查分區位移

Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl

使用 fsutil檢查特定檔案的檔案對齊方式。 我們的檔案大小必須是 2 MB 的倍數。

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

取代 PMEM

重新布建 PMEM 磁碟

每當更換 PMEM 模組時,都必須重新佈建。

注意

拿掉 PMEM 磁碟會導致該磁碟上的數據遺失。

# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false

清除 PMEM 模組

若要永久清除 PMEM 模組中的數據,請使用 Initialize-PmemPhysicalDevice PowerShell Cmdlet。

# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false

另請參閱

如需管理 PMEM 的其他 Cmdlet,請參閱 PowerShell 參考檔中的 PersistentMemory