SQL Server 安裝使用 Setup.exe (Windows Server Core)


  1. 說明
    1. 安裝 Command
    2. 移除 Command
  2. 安裝後相關設定
    1. 安裝 CU
    2. Lock pages in memory
    3. Database Instant File Initialization
    4. 如何管理 Service
  3. Reference

筆記 SQL Server 如何在 Windows Server Core 環境使用 Setup.exe 進行安裝,除對應 GUI 的各種安裝步驟與組態設定外,一併也加入安裝上的優化設定方式。

SQL Server Logo

說明

安裝 Command

.\setup.exe /Q /ACTION="install" /IACCEPTSQLSERVERLICENSETERMS /FEATURES=SQLEngine,Conn /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="Domain\ACCOUNT" /INSTALLSQLDATADIR="D:\Program Files\Microsoft SQL Server" /PID="*****-*****-*****-*****-*****" /SQLTEMPDBFILESIZE=512 /SQLTEMPDBFILEGROWTH=128 /SQLTEMPDBLOGFILESIZE=512 /SQLCOLLATION="Chinese_Taiwan_Stroke_CI_AS" /SQLSVCINSTANTFILEINIT

好讀換行版本

.\setup.exe 
/Q 
/ACTION="install" 
/IACCEPTSQLSERVERLICENSETERMS 
/FEATURES=SQLEngine,Conn 
/INSTANCENAME=MSSQLSERVER 
/SQLSYSADMINACCOUNTS="Domain\ACCOUNT" 
/INSTALLSQLDATADIR="D:\Program Files\Microsoft SQL Server" 
/PID="*****-*****-*****-*****-*****" 
/SQLTEMPDBFILESIZE=512 
/SQLTEMPDBFILEGROWTH=128 
/SQLTEMPDBLOGFILESIZE=512 
/SQLCOLLATION="Chinese_Taiwan_Stroke_CI_AS"
/SQLSVCINSTANTFILEINIT
參數 用途 範例值
Q 安靜安裝
ACTION 要執行的動作 "install"
IACCEPTSQLSERVERLICENSETERMS 接受合約
FEATURES 要安裝的功能 SQLEngine,Conn
INSTANCENAME 實體名稱 MSSQLSERVER
SQLSYSADMINACCOUNTS SysAdmin 設定 "Domain\ACCOUNT"
INSTALLSQLDATADIR 資料檔的根目錄 "D:\Program Files\Microsoft SQL Server"
PID 授權序號 "*****-*****-*****-*****-*****"
SQLTEMPDBFILESIZE tempdb 預設大小 512
SQLTEMPDBFILEGROWTH tempdb 成長大小 128
SQLTEMPDBLOGFILESIZE tempdb log 預設大小 512
SQLCOLLATION 預設定序 "Chinese_Taiwan_Stroke_CI_AS"
SQLSVCINSTANTFILEINIT 資料庫立即檔案初始化 (效能強化) True

SQL Server Installation Detailed 安裝流程與規劃詳細說明

SQL Server 2019 Developer 安裝教學與步驟流程

移除 Command

.\setup /qs /ACTION=Uninstall /FEATURES=SQLEngine /INSTANCENAME=MSSQLSERVER /IACCEPTSQLSERVERLICENSETERMS

安裝後相關設定

安裝 CU

首先前往 SQL Server CU 網站進行下載,解壓縮後透過 Command 的方式進行安裝:

.\SQLServer2019-KB5014353-x64.exe /x:d:\sqlserver_cu
.\sqlserver_cu\SETUP.EXE /action=patch /instancename=mssqlserver /q /IAcceptSQLServerLicenseTerms

使用 PowerShell Module cUserRightsAssignment 進行授權管理,用以優化資料庫組態設定。

Lock pages in memory

Import-Module C:\temp\cUserRight.psm1
Get-UserRight "NT SERVICE\MSSQLSERVER" | % {$_.UserRights}
Grant-UserRight "NT SERVICE\MSSQLSERVER" "SeLockMemoryPrivilege"
Get-UserRight "NT SERVICE\MSSQLSERVER" | % {$_.UserRights}

驗證 Lock pages in memory 啟用的方式

SELECT a.memory_node_id, node_state_desc, a.locked_page_allocations_kb
FROM sys.dm_os_memory_nodes a
INNER JOIN sys.dm_os_nodes b ON a.memory_node_id = b.memory_node_id

💡 觀察 Locked_page_allocation_kb 不等於 0

Database Instant File Initialization

如果再安裝過程忘記加入 SQLSVCINSTANTFILEINIT 可以另外以授權的方式處理。

Import-Module C:\temp\cUserRight.psm1
Get-UserRight "NT SERVICE\MSSQLSERVER" | % {$_.UserRights}
Grant-UserRight "NT SERVICE\MSSQLSERVER" "SeManageVolumePrivilege"
Get-UserRight "NT SERVICE\MSSQLSERVER" | % {$_.UserRights}

驗證 資料庫立即檔案初始化 的方式

select instant_file_initialization_enabled ,* from sys.dm_server_services
where servicename like 'SQL Server%'

💡 觀察 instant_file_initialization_enabled 為 Y

如何管理 Service

使用其他伺服器端環境的 compmgmt.msc 進行 SQL Server Service 管理

Reference

An Overview of Instant File Initialization in SQL Server | SQLShack

使用 PowerShell 設定使用者權限(User Right) | 黑暗執行緒