在部署Lync 2013的时候,安装程序会在前端服务器上安装SQL Server 2012 Express RTM,并且创建几个LOCAL的实例。
我也是在升级Skype For Business Server 2015的时候才发现的。当时是报了这样一个错误。
大多数解决办法是安装整个Sql Server 2012 的SP1,或是使用windows update来搜索并安装更新。那么问题来了,整个安装2012的SP1,3.6G,使用windows update搜索更新,1.1G的SP2。而下载一个Sql server 2012 Express with SP1的安装包也才130M,其时间成本不成正比。
首先明确下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
回车之后开始解压缩,并且准备安装。
注意图中的红框位置,代表此实例的语言是英语,
如果你下载了一个中文版的并尝试升级,这里它会提示你找不到需要升级的产品。
如图,安装程序会逐步升级2个实例。
升级完成之后,我们用一个脚本来验证一下升级的成果,脚本来自这里,该脚本可以获取当前安装的所有SQL实例的各项信息。
没升级之前
升级完成之后
当然升级过程也可以简化为一条一条的每实例升级,命令如下
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
使用上面的命令相当于静默升级,但是有可能会出现的情况是,你升级好了第一个实例,第二个实例升级不生效。此时不妨先重启一下,再执行第二条。