在部署Lync 2013的时候,安装程序会在前端服务器上安装SQL Server 2012 Express RTM,并且创建几个LOCAL的实例。

我也是在升级Skype For Business Server 2015的时候才发现的。当时是报了这样一个错误。

 QQ截图20150608002205


大多数解决办法是安装整个Sql Server 2012 的SP1,或是使用windows update来搜索并安装更新。那么问题来了,整个安装2012的SP1,3.6G,使用windows update搜索更新,1.1G的SP2。而下载一个Sql server 2012 Express with SP1的安装包也才130M,其时间成本不成正比。

QQ截图20150608003330

首先明确下Lync2013前端在安装sql server 2012 express时会安装哪些实例。

标准版前端:

  • RTCLocal

  • Lynclocal

  • RTC

企业版前端

  • RTCLocal

  • LyncLocal


接下来去下载SQL Sserver 2012 Express with SP1的安装包:https://www.microsoft.com/en-us/download/details.aspx?id=35579 ,这里注意,哪怕你安装的是中文版的Lync 2013,你也要下载英文版的安装包,因为自带的就是英文版…不信下面会有图验证

然后管理员模式打开命令行,

敲命令

SQLEXPR_x64_ENU.exe /ACTION=PATH /INSTANCENAME=RTCLOCAL /IAcceptSQLSERVERLICENSETERMS

回车之后开始解压缩,并且准备安装。

QQ截图20150608004155

注意图中的红框位置,代表此实例的语言是英语,

 QQ截图20150608004347

如果你下载了一个中文版的并尝试升级,这里它会提示你找不到需要升级的产品。



QQ截图20150608004621

如图,安装程序会逐步升级2个实例。

QQ截图20150608004726

QQ截图20150608004745


升级完成之后,我们用一个脚本来验证一下升级的成果,脚本来自这里,该脚本可以获取当前安装的所有SQL实例的各项信息。

没升级之前

QQ截图20150608005248

升级完成之后

QQ截图20150608005310

当然升级过程也可以简化为一条一条的每实例升级,命令如下

SQLEXPR_x64_ENU.exe /ACTION=Patch /INSTANCENAME=RTCLOCAL /QS /HIDECONSOLE /IAcceptSQLServerLicenseTerms

SQLEXPR_x64_ENU.exe /ACTION=Patch /INSTANCENAME=LYNCLOCAL /QS /HIDECONSOLE /IAcceptSQLServerLicenseTerms

如果是标准版:则是以下命令

SQLEXPR_x64_ENU.exe /ACTION=Patch /INSTANCENAME=RTCLOCAL /QS /HIDECONSOLE /IAcceptSQLServerLicenseTerms

SQLEXPR_x64_ENU.exe /ACTION=Patch /INSTANCENAME=LYNCLOCAL /QS /HIDECONSOLE /IAcceptSQLServerLicenseTerms

SQLEXPR_x64_ENU.exe /ACTION=Patch /INSTANCENAME=RTC /QS /HIDECONSOLE /IAcceptSQLServerLicenseTerms


使用上面的命令相当于静默升级,但是有可能会出现的情况是,你升级好了第一个实例,第二个实例升级不生效。此时不妨先重启一下,再执行第二条。