SQL Server 安裝使用 Setup.exe (Windows Server Core)
2022-07-07
筆記 SQL Server 如何在 Windows Server Core 環境使用 Setup.exe 進行安裝,除對應 GUI 的各種安裝步驟與組態設定外,一併也加入安裝上的優化設定方式。
說明
安裝 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