Configurar a memória persistente (PMEM) para o SQL Server no Windows

Este artigo descreve como configurar a PMEM (memória persistente) para SQL Server 2016 (13.x) e superior no Windows.

Visão geral

O SQL Server 2019 (15.x) tem vários recursos de banco de dados em memória que dependem da memória persistente. Este documento aborda as etapas necessárias para configurar a memória persistente para SQL Server no Windows.

Observação

O termo capacitação foi introduzido para transmitir o conceito de trabalhar com um sistema de arquivos com reconhecimento de memória persistente. Extensões de DAX (acesso direto) ao sistema de arquivos NTFS possibilitam mapear arquivos de memória do espaço do kernel para o espaço do usuário. Quando um arquivo é mapeado para o espaço do usuário, o aplicativo pode emitir instruções de carregamento/armazenamento diretamente para o arquivo mapeado, ignorando completamente a pilha de E/S do kernel. Isso é considerado um método de acesso de arquivo "esclarecido". Começando no Windows Server 2022, essa funcionalidade de esclarecimento está disponível nas plataformas Windows e Linux.

Configurar os dispositivos

Criar namespaces para dispositivos PMEM

No Windows, use o utilitário ipmctl para configurar os discos de PMEM (conhecidos como namespaces no Linux). Você pode encontrar instruções específicas ao Intel® Optane™ aqui. Detalhes sobre o hardware PMEM com suporte em diferentes versões do Windows estão disponíveis em Entender e implantar a memória persistente. Os discos de PMEM devem ser intercalados pelos NVDIMMs da PMEM e podem fornecer tipos diferentes de acesso ao espaço de usuário para regiões de memória no dispositivo. Para obter mais informações sobre conjuntos intercalados no Windows, confira Entender e implantar memória persistente.

Discos de PMEM

Usar o PowerShell para examinar discos de 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

Por padrão, New-PmemDisk usará o modo FSDax desejado. A atomicidade é definida como o padrão de None em vez de BlockTranslationTable. Do ponto de vista do suporte, o BTT deve ser habilitado para o log de transações para imitar a semântica do modo de setor necessário. Embora o uso de BTT com NTFS seja geralmente recomendado, o BTT não é recomendado ao usar páginas grandes, como é necessário para DAX.

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

Formatar os volumes de 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

Alinhamento e deslocamento de arquivo

Verificar deslocamentos de partição

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

Verifique o alinhamento de um arquivo específico usando fsutil. O tamanho do arquivo deve ser um módulo de 2 MB.

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

Substituir PMEM

Reprovisionar discos de PMEM

Sempre que um módulo de PMEM é substituído, ele precisa ser reprovisionado.

Observação

A remoção de um disco de PMEM resultará na perda de dados nesse disco.

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

Apagar módulos de PMEM

Para apagar permanentemente dados de módulos de PMEM, use o cmdlet Initialize-PmemPhysicalDevice do PowerShell.

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

Confira também

Para outros cmdlets para manipular a PMEM, confira PersistentMemory na documentação de referência do PowerShell.