Konfigurieren von persistentem Speicher (PMEM) für SQL Server unter Windows
In diesem Artikel wird beschrieben, wie der persistente Speicher (persistent memory, PMEM) für SQL Server 2016 (13.x) und höher unter Windows konfiguriert wird.
Übersicht
SQL Server 2019 (15.x) verfügt über eine Reihe von In-Memory-Database-Funktionen, die auf persistentem Arbeitsspeicher basieren. Hier fahren Sie, wie Sie den persistenten Speicher für SQL Server unter Windows konfigurieren.
Hinweis
Der Begriff Aufklärung wurde eingeführt, um das Konzept eines Dateisystems auszudrücken, das persistenten Speicher unterstützt. Direktzugriffserweiterungen (Direct Access, DAX) für das NTFS-Dateisystem bieten die Möglichkeit, Dateien vom Kernelraum zum Benutzerbereich zuzuordnen. Wenn eine Datei dem Benutzerspeicher zugeordnet ist, kann die Anwendung Lade-/Speicheranweisungen direkt an die zugeordnete Speicherdatei ausgeben und den Kernel-I/O-Stapel vollständig umgehen. Dies gilt als „aufgeklärte“ Dateizugriffsmethode. Ab Windows Server 2022 ist diese Aufklärungsfunktion sowohl auf Windows- als auch auf Linux-Plattformen verfügbar.
Konfigurieren der Geräte
Erstellen von Namespaces für PMEM-Geräte
Verwenden Sie in Windows das Dienstprogramm ipmctl
, um die PMEM-Datenträger (als Namespaces in Linux bezeichnet) zu konfigurieren. Sie finden Intel® Optane™-spezifische Anweisungen hier. Details zur unterstützten PMEM-Hardware in verschiedenen Windows-Versionen finden Sie unter Grundlegendes und Bereitstellen des PMEM. PMEM-Datenträger sollten PMEM-NVDIMM-übergreifend verschachtelt werden und können unterschiedliche Typen von Benutzerbereichszugriffen auf Speicherbereiche auf dem Gerät bereitstellen. Weitere Informationen zu Interleaved Sets in Windows finden Sie unter Verstehen und Bereitstellen von persistentem Arbeitsspeicher.
PMEM-Datenträger
Verwenden von PowerShell zum Untersuchen von PMEM-Datenträgern
#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 und DAX
Standardmäßig verwendet New-PmemDisk
den gewünschten Modus FSDax
. Die Unteilbarkeit wird auf die Standardeinstellung None
anstelle von BlockTranslationTable
festgelegt. Aus Unterstützungsperspektive muss BTT für das Transaktionsprotokoll aktiviert sein, um die erforderliche Sektormodussemantik nachzuahmen. Obwohl die Verwendung von BTT mit NTFS im Allgemeinen empfohlen wird, wird BTT nicht empfohlen, wenn große Seiten verwendet werden, z. B. erforderlich für DAX.
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
Formatieren der NTFS-Volumes
#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
Dateiausrichtung und Offset
Überprüfen der Partitionsoffsets
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl
Überprüfen Sie die Dateiausrichtung einer bestimmten Datei mithilfe von fsutil
. Unsere Dateigröße muss ein Modulo von 2 MB sein.
fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf
Ersetzen von PMEM
Erneute Bereitstellung von PMEM-Datenträgern
Wenn ein PMEM-Modul ersetzt wird, muss es erneut bereitgestellt werden.
Hinweis
Das Entfernen eines PMEM-Datenträgers führt zum Verlust von Daten auf diesem Datenträger.
# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false
Löschen von PMEM-Modulen
Um Daten aus PMEM-Modulen dauerhaft zu löschen, verwenden Sie das PowerShell-Cmdlet Initialize-PmemPhysicalDevice
.
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false
Siehe auch
Weitere Cmdlets zum Bearbeiten von PMEM finden Sie in der PowerShell-Referenzdokumentation unter PersistentMemory.