この記事では、Windows で SQL Server 2016 (13.x) 以降の永続メモリ (PMEM) を構成する方法について説明します。
概要
SQL Server 2019 (15.x) には、永続メモリに依存するいくつかのメモリ内データベース機能があります。 このドキュメントでは、Windows 上の SQL Server の永続メモリを構成するために必要な手順について説明します。
注
エンライトメントという用語は、永続メモリ対応のファイルシステムを扱うという概念を伝えるために導入されました。 NTFS ファイル システムへの直接アクセス (DAX) 拡張機能は、カーネル領域からユーザー空間にファイルをメモリ マップする機能を提供します。 ファイルがユーザー空間にマップされたメモリである場合、アプリケーションは、カーネル I/O スタックを完全にバイパスして、読み込み/格納命令をメモリ マップされたファイルに直接発行できます。 これは、「先進的な」ファイルアクセス方法と見なされます。 Windows Server 2022 の時点で、この enlightenment 機能は 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 を有効にする必要があります。 通常、NTFS で BTT を使用することをお勧めしますが、 DAX に必要なサイズのページを使用する場合は、BTT は推奨されません。
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
NTFS ボリュームのフォーマット
#Initialize PMEM disks
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT
#Create new partitions and format the volumes with DAX Mode
$partition = @{ UseMaximumSize = $true; AssignDriveLetter = $true; Offset = 2097152; Alignment = 2097152 }
$volume = @{ FileSystem = 'NTFS'; IsDAX = $true; AllocationUnitSize = 2097152 }
Get-PmemDisk[0] | New-Partition @partition | Format-Volume @volume
ファイルの配置とオフセット
パーティション のオフセットを確認する
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | Format-List
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 コマンドレットを使用します。
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false