小编Nic*_*len的帖子

Azure IaaS VM - 使用 D:\ Drive for tempdb - NTFS 格式化 64k

这是我今天早些时候正在解决的一个问题,并最终找到答案。不介意更好的东西,但想将它提供给同样需要的人。

首先,在 Azure VM 上,您可以免费获得一个 D:\ 驱动器,即 SSD。需要注意的是,当 VM 重新启动时,它通常会被破坏。MS 高写入量的最佳做法是将此驱动器用于 tempdb。他们没有讨论的是它没有被格式化为 64kb。隐藏的 pagefile.sys 驻留在此处,因此如果您尝试重新格式化(它会失败),则需要考虑到这一点。

从这里:https : //cloudblogs.microsoft.com/sqlserver/2014/09/25/using-ssds-in-azure-vms-to-store-sql-server-tempdb-and-buffer-pool-extensions/

您需要将他们的启动 powershell 脚本更改为更类似于下面的内容,我首先将页面文件完全删除,然后格式化为 64k,按照通常的脚本创建文件,然后在开始之前将 pagefile.sys 放回原处启动服务。

$SQLService=”SQL Server (MSSQLSERVER)”
$SQLAgentService=”SQL Server Agent (MSSQLSERVER)”
$tempfolder=”D:\SQLTEMP”
if (!(test-path -path $tempfolder)) {
    (Get-WmiObject -Class Win32_PageFileSetting).Delete() 
    Format-Volume -DriveLetter D -FileSystem NTFS -AllocationUnitSize 65536 -NewFileSystemLabel "Temporary Storage"  -Confirm:$false
    New-Item -ItemType directory -Path $tempfolder
    Set-WMIInstance -Class Win32_PageFileSetting -Arguments @{ Name = 'D:\pagefile.sys';} 
}
Start-Service $SQLService
Start-Service $SQLAgentService
Run Code Online (Sandbox Code Playgroud)

有没有人有更好的东西或在这个过程中看到任何漏洞?

为了给其他人更多的自动化/帮助,我还编写了上面的脚本以及创建它的触发器,并在启动后使用下面的 30 秒运行它。这基本上允许某人自动执行我引用的 cloudblogs 文章中的步骤。

#1 - …
Run Code Online (Sandbox Code Playgroud)

sql-server azure-vm

8
推荐指数
1
解决办法
359
查看次数

标签 统计

azure-vm ×1

sql-server ×1