本文將介紹如何於 Windows Server Core 中安裝 SQL Server 2012。
Windows Server 2008 開始提供 Server Core 的安裝模式,透過減少使用 GUI 功能,大幅降低因為 Windows Update 所需的重新開機次數,並提升作業系統的運作效能,藉以幫助系統管理員維護伺服器角色以及管理上的作業負擔。在以前的 SQL Server 並不支援在 Server Core 上面,而 SQL Server 2012 已經開始支援安裝在 Server Core,但目前只支援安裝在 Windows Server 2008 R2 SP1 Server Core`(以下本文將以此版本為說明),Windows Server 2008 則不支援,詳細安裝步驟,請見以下說明。
目前支援安裝在 Server Core 的功能列舉如下:
- Database Engine Services
- SQL Server 複寫
- 全文檢索搜尋
- Analysis Services
- 用戶端工具連接性
- Integration Services 伺服器
- 管理工具 - 基本 / 完整 (僅限遠端)
- Distributed Replay Client(僅限遠端)
- Microsoft Sync Framework
由於 Server Core 環境的關係,安裝時您只能在命令列模式下,透過安裝程式參數或設定檔的方式來進行安裝,安裝前請先檢查您的環境是否滿足下列的必要條件:
- .NET Framework 2.0 SP2
- .NET Framework 3.5 SP1 Full Profile
- .NET Framework 4 Server Core Profile
- Windows Installer 4.5
- Windows PowerShell 2.0
稍後筆者也會介紹如何透過 DISM 公用程式在 Server Core 環境下啟用安裝 SQL Server 2012 的必要條件。另外,特別提醒的是假設您要安裝的是 SQL Server 2012 Express,請先下載適用於 Server Core 的 Microsoft .NET Framework 4 (獨立安裝程式)回來安裝之後再開始安裝的作業。
接著我們先透過 DISM 公用程式來啟用上述的必要條件,程式碼如下:
1: Dism /online /enable-feature
2: /featurename:NetFx2-ServerCore
3: /featurename:ServerCore-WOW64
4: /featurename:NetFx3-ServerCore-WOW64
5: /featurename:NetFx2-ServerCore-WOW64
6: /featurename:NetFx3-ServerCore
7: /featurename:MicrosoftWindowsPowerShell
8: /featurename:MicrosoftWindowsPowerShell-WOW64
當您安裝 SQL Server 後應該會希望可以從遠端來存取 SQL Server 的各項服務,接下來您可以利用 netsh 指令來建立具進階安全性防火牆的規則,建議您只需開通您想要安裝的服務,所對應的 PORT 即可,以下指令碼用來示範建立 SQL Server Database Engine、SQL DAC、SQL Browser、資料庫鏡像端點、SQL Server Broker、T-SQL 偵錯、SSAS、SSRS等服務所需的防火牆規則。
1: netsh advfirewall firewall add rule name="SQLServer" dir=in action=allow protocol=TCP localport=1433 profile=any
2: netsh advfirewall firewall add rule name="SQL DAC" dir=in action=allow protocol=TCP localport=1434 profile=any
3: netsh advfirewall firewall add rule name="SQL Bwowser" dir=in action=allow protocol=UDP localport=1434 profile=any
4: netsh advfirewall firewall add rule name="SQL Bwowser" dir=in action=allow protocol=UDP localport=1434 profile=any
5: netsh advfirewall firewall add rule name="DB Mirroring EndPoint" dir=in action=allow protocol=TCP localport=5022 profile=any
6: netsh advfirewall firewall add rule name="SQL Service Broker" dir=in action=allow protocol=TCP localport=4022 profile=any
7: netsh advfirewall firewall add rule name="T-SQL Debugger" dir=in action=allow protocol=TCP localport=135 profile=any
8: netsh advfirewall firewall add rule name="SQL Browser for AS" dir=in action=allow protocol=TCP localport=2382 profile=any
9: netsh advfirewall firewall add rule name="SSAS" dir=in action=allow protocol=TCP localport=2383 profile=any
10: netsh advfirewall firewall add rule name="HTTP SSRS" dir=in action=allow protocol=TCP localport=80 profile=any
11: netsh advfirewall firewall add rule name="HTTPS SSRS" dir=in action=allow protocol=TCP localport=443 profile=any
最後您就可以利用安裝程式參數來安裝 SQL Server 服務,以下以安裝 Database Engine 以及 Replication 為例,您可以依照您的需求來安裝所需的功能,以及調整服務啟動帳戶或系統管理員帳戶。
1: 安裝程式磁碟機代號:\setup.exe /q
2: /ACTION=Install
3: /FEATURES=SQLEngine,Replication
4: /INSTANCENAME=MSSQLSERVER
5: /SQLSVCACCOUNT="NT AUTHORITY\Network Service"
6: /SQLSYSADMINACCOUNTS="Administrator"
7: /TCPENABLED=1
8: /INDICATEPROGRESS=1
9: /IACCEPTSQLSERVERLICENSETERMS
【參考資料】