在 Server Core 2008 R2 上安装 SQL Server 2008 R2
这几天在搭建一个测试环境,需要一台 SQL Server 2008 R2 的虚拟机,为了减少对资源的占用,gOxiA 打算在 Server Core 2008 R2 上安装 SQL Server 2008 R2,查阅了微软的官方资料 Hardware and Software Requirements for Installing SQL Server 2008 R2,可结果令人惋惜:“SQL Server 2008 R2 is not supported on Windows Server 2008 SP2 Server Core or Windows Server 2008 R2 Server Core installations.”!
虽然是明确说明了 SQL Server 2008 R2 不支持在 Server Core 上安装,但是由于现在的 Server Core 2008 R2都已经支持 .NET 框架和 PowerShell,并满足 SQL Server 2008 R2 的基本需求,那么要在 Server Core 2008 R2 上安装 SQL Server 2008 R2 应该不是一件难事。
gOxiA 事先准备好了一台已经加入到 AD 的 Server Core 2008 R2 虚拟机,之后载入 SQL Server 2008 R2 的安装光盘镜像文件(ISO),并运行 Setup.exe,随即安装程序提示我要启用 .NET Framework 核心角色,单击确定继续。
随后出现了 .NET Framework 3.5 SP1 安装失败的错误提示。看来是安装程序的脚本不能很好的支持 Server Core 2008 R2 环境,接下来就只能手工安装这些组件。
在命令行提示符下键入如下指令:
dism /online /enable-feature /featurename:NetFx2-ServerCore /featurename:ServerCore-WOW64 /featurename:NetFx3-ServerCore-WOW64 /featurename:NetFx2-ServerCore-WOW64 /featurename:NetFx3-ServerCore /featurename:MicrosoftWindowsPowerShell
注意:/featurename: 的参数区分大小写。
由于 gOxiA 还要使用 IIS,为此还执行了如下的命令:
dism /online /enable-feature /featurename:IIS-ApplicationDevelopment /featurename:IIS-WebServer /featurename:IIS-WebServerRole /featurename:IIS-ISAPIFilter /featurename:IIS-ISAPIExtensions /featurename:IIS-NetFxExtensibility /featurename:IIS-ASPNET /featurename:IIS-ASP
在完成相关组件的准备工作之后,再次执行 Setup.exe 进行 SQL Server 2008 R2 的安装,这次成功的出现了 SQL Server 2008 R2 的安装中心界面。随后的操作就不再单独介绍。如果大家对如何使用命令行来安装 SQL Server 2008 R2 感兴趣,那么可以参考:How to: Install SQL Server 2008 R2 from the Command Prompt
在 SQL Server 2008 R2 完成安装后,由于 Windows 防火墙的原因,我们暂时还无法远程访问或管理 SQL Server 2008 R2,必须对相关配置进行设置。
首先,我们要启动 SQL Server 2008 R2 的 TCP 支持,为此执行下面的操作步骤:
- 在命令行提示符键入 regedit,并按下回车键,启动注册表编辑器;
- 定位到 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp,找到 Enable 并将其值改为 1。
- 完成注册表修改后使用 net stop mssqlserver && net start mssqlserver 命令行重新启动 SQL Server 2008 R2。
在为 SQL Server 2008 R2 成功启动 TCP 连接支持后,我们还需要对 Windows 防火墙做相应的配置,以允许外部访问本机的 TCP 1433 端口,为此我们执行如下命令行:
netsh advfirewall firewall set rule group="Windows 远程管理” new enable=yes
netsh advfirewall firewall add rule name="SQL Server TCP 1433” dir=in action=allow protocol=tcp localport=1433
现在,我们便可以通过远程计算机对运行在 Server Core 2008 R2 上的 SQL Server 2008 R2 进行管理和访问了。此外,我们前面还安装有 IIS,因为是 Server Core 环境,所以要方便地管理 IIS 也需要通过远程管理,配置 IIS 的远程管理功能可以参考:http://learn.iis.net/page.aspx/334/install-and-configure-iis-7-on-server-core/
再次声明,微软并不支持在 Server Core 上安装 SQL Server 2008 R2,所以因此引发的问题将不受微软任何的支持。