Configurare la memoria persistente (PMEM) per SQL Server su Windows
Questo articolo descrive come configurare la memoria persistente (PMEM) per SQL Server 2016 (13.x) e versioni successive in Windows.
Panoramica
SQL Server 2019 (15.x) include diverse funzionalità del database in memoria che si basano sulla memoria persistente. Questo documento illustra i passaggi necessari per configurare la memoria persistente per SQL Server in Windows.
Nota
Il termine Enlightenment è stato introdotto per comunicare il concetto di un file system consapevole della memoria persistente. Le estensioni DAX per il file system NTFS forniscono la capacità di mappare i file in memoria dallo spazio kernel allo spazio utente. Quando un file è mappato alla memoria nello spazio utente, l'applicazione può inviare istruzioni di caricamento/archiviazione direttamente al file mappato alla memoria, ignorando completamente lo stack di I/O del kernel. Questo è considerato un metodo "illuminato" di accesso ai file. A partire da Windows Server 2022, questa funzionalità di riconoscimento dei dati è disponibile nelle piattaforme Windows e Linux.
Configurare i dispositivi
Creare namespace per i dispositivi PMEM
In Windows, usare l'utilità ipmctl
per configurare i dischi PMEM (detti namespace in Linux). È possibile trovare istruzioni specifiche di Intel® Optane™ qui. I dettagli sull'hardware PMEM supportato in diverse versioni di Windows sono disponibili in Informazioni e distribuzione della memoria persistente. I dischi PMEM devono essere interlacciati tra i NVDIMM PMEM e possono fornire diversi tipi di accesso allo spazio utente per le aree di memoria sul dispositivo. Per altre informazioni sui set interleaved in Windows, vedere Comprendere e distribuire la memoria persistente.
Dischi PMEM
Usare PowerShell per esaminare i dischi 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 e DAX
Per impostazione predefinita, New-PmemDisk
userà la modalità di FSDax
desiderata. Atomicità è impostata sul valore predefinito di None
anziché BlockTranslationTable
. Dal punto di vista del supporto, BTT deve essere abilitato per il log delle transazioni, per simulare la semantica della modalità settore richiesta. Sebbene l'uso di BTT con NTFS sia generalmente consigliato, BTT non è consigliato quando si usano pagine di grandi dimensioni, ad esempio per DAX.
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
Formattazione dei volumi 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
Allineamento e offset dei file
Controllare gli offset della partizione
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl
Verificare l'allineamento di un file particolare usando fsutil
. La dimensione del file deve essere un multiplo di 2 MB.
fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf
Sostituzione di PMEM
Riprovvisionare i dischi PMEM
Ogni volta che viene sostituito un modulo PMEM, è necessario eseguirne nuovamente il provisioning.
Nota
La rimozione di un disco PMEM comporterà la perdita di dati su tale disco.
# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false
Cancellare i moduli PMEM
Per cancellare definitivamente i dati dai moduli PMEM, usare il cmdlet di PowerShell Initialize-PmemPhysicalDevice
.
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false
Vedere anche
Per altri cmdlet per la modifica di PMEM, vedere PersistentMemory nella documentazione di riferimento di PowerShell.