本文重点描述在skype for business server部署中后端数据库alwayson的建立和配置,观看此文需要一定经验,另外会弱化整个skype for business server的部署过程。
在做Skype for business server项目规划的时候涉及到企业版后端数据库高可用的问题,微软官方支持三种默认:
1、SQL故障转移群集
2、SQL镜像
3、SQL Alwayson
SQL故障转移群集是比较老旧的技术,依耐性比较高,操作复杂但是比较稳定可靠;SQL镜像应该算是一个中间产物,后期的SQL正在逐步的取消此功能,但是在部署Skype时操作很简单,不过日志的问题很头疼;SQL Alwayson是SQL 2012开始的一项新的高可用技术,配置起来没有SQL群集那么复杂,但又有镜像那样多个副本的高可用性。
今天分享下在Skype for business server中如何去实现后端数据的alwayson高可用性。
环境描述:
Domain:ucssi.cn
两台SQL FQDN为:sqlsvr01.ucssi.cn 、sqlsvr02.ucssi.cn
Skype服务器FQDN为:sfbpool.ucssi.cn
先决条件准备:
两台SQL Server服务器安装.NET3.5以便顺利安装SQL Server 2014同时也需要在两台SQL Server服务器上安装windows故障转移群集功能,以便顺利实施SQL Alwayson功能
我们可以在Powershell中执行以下安装命令(注意要指定.net3.5的源文件):
Add-WindowsFeature Net-Framework-Core,Failover-Clustering,RSAT-Clustering-Mgmt,RSAT-Clustering-PowerShell -Source d:\sources\sxs
接下来调整SQL Server网卡顺序:业务网卡优于心跳网卡。
以上条件准备完成后,开始进行Windows故障转移群集部署。
在创建群集之前应当对两台服务器进行群集验证测试,使用以下Powershell命令进行(也可图形化界面进行)
Test-Cluster -Node sqlsrv01,sqlsrv02(使用此命令进行测试会对两台服务器以及存储仲裁等进行完整测试,当然会有一些警告,在生产环境中建议仔细查看每个警告并根据实际情况解决警告后在进行群集部署)
完成验证后即可开始创建群集,使用以下Powershell命令进行群集创建(也可图形化界面进行)
New-Cluster -Name sqlcluster -Node sqlsrv01,sqlsrv02 -NoStorage -StaticAddress 192.168.31.180
打开Windows故障转移群集管理器,此时已经创建好了群集
接下来对Windows故障转移群集配置见证仲裁,首先需要创建一个共享文件夹来存放见证
然后进行群集仲裁配置
Set-ClusterQuorum -Cluster sqlcluster –NodeAndFileShareMajority “\\dc\sqlclusterwitness"
接下来进行SQL Server安装。注意:alwayson仅支持SQL Server 2012及以上版本,同时SQL Server必须为企业版,SQL Server实例名称必须一致。
安装SQL Server功能至少要勾选数据库引擎
保持默认实例名称或者指定实例名称(两台SQL实例名称必须一致)
使用服务账户为域用户(生产环境建议单独为SQL创建一个服务账号,普通user权限即可)
然后等待两台SQL Server 安装完成。接着我们需要在DNS中创建一条A记录作为alwayson的侦听器。以sql.ucssi.cn为例吧,手动指向一个VIP 192.168.31.168
SQL Server安装完毕后打开SQL Server配置管理器,选择SQL Server属性,并启用alwayson功能
重启SQL服务
在SQL Server安装部分就到此为止,看过我之前ADFS的后端数据库配置的博客同学应该都知道,alwayson的配置是要先存在数据然后才能对这个数据库进行启用高可用性组配置。所以接下来就是安装Skype for Business Server,在拓扑中定义好一台SQL Server,让拓扑自动创建好数据库,然后再对数据库进行alwayson配置,完成配置后再次更改拓扑中的数据库FQDN即可。接下来就开始Skype for Business Server的先决条件安装
打开Powershell执行以下命令进行安装:
Add-WindowsFeature NET-Framework-Core, RSAT-ADDS, Windows-Identity-Foundation, Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-Dir-Browsing, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Http-Tracing, Web-Basic-Auth, Web-Windows-Auth, Web-Client-Auth, Web-Filtering, Web-Stat-Compression, Web-Dyn-Compression, NET-WCF-HTTP-Activation45, Web-Asp-Net45, Web-Mgmt-Tools, Web-Scripting-Tools, Web-Mgmt-Compat, Server-Media-Foundation, BITS, Desktop-Experience, Telnet-Client -Source d:\sources\sxs
安装完先决条件后,插入Skype for business server的镜像进行安装
接下来依次完成AD准备
安装管理工具
然后打开拓扑进行各种自定义,新建前端池,到后端数据库这里选择后端SQL Server存储为新建注意写上侦听器的FQDN以及其中一台SQL Server,目的是通过拓扑让SQL自动生成Skype所需的数据库
然后定义文件存储等等(这里着重讲后端数据库,会简化整个Skype for Business Server的部署过程),最后点击发布拓扑
发布完拓扑后sqlsrv01上已经自动生成了skype所需的数据库
由于alwayson的前提是需要对数据库做一次完整备份,所以需要将所有数据库进行一次完成备份然后才能去创建alwayson group
使用以下SQL Powershell进行备份
Invoke-Sqlcmd -Query "ALTER DATABASE [cpsdyn] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [rgsconfig] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [rgsdyn] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [rtcab] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [rtcshared] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [rtcxds] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [xds] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Invoke-Sqlcmd -Query "ALTER DATABASE [lis] SET RECOVERY FULL WITH NO_WAIT;" -ServerInstance "SQL01\SFBDB_BACK"
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database xds
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database lis
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database cpsdyn
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database rgsconfig
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database rgsdyn
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database rtcab
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database rtcshared
Backup-SqlDatabase -ServerInstance SQL01\SFBDB_BACK -Database rtcxds
或者使用图形化界面操作
同时也需要将数据库的恢复模式更改为完整
最后还需要将目录结构复制到第二个SQL服务器:
robocopy C:\ CsData \\sqlsrv02\c$\CsData / e / xf *
然后开始创建alwayson group
定义组名称
选择数据库
添加副本
接下来下一步进行创建
添加侦听器
Sqlsrv02上也将数据库进行同步
此时需要将alwayson进行故障转移到sqlsrv02上
选择新的主副本
完成故障转移
接下来我们就要回到SFB Server上下载拓扑更改SQL FQDN为sqlsrv02
修改完成后进行拓扑发布
然后使用以下命令更新数据库
Install-CsDatabase -Update -ConfiguredDatabases -SqlServerFqdn sql.ucssi.cn -Verbose
最后再次将sql fqdn更改为侦听器FQDN
最后再次发布拓扑即可完成在skype for business server环境中整个alwayson的部署过程。
最后开始安装skype for business server组件,过程就比较简单了,依次进行本地配置存储安装,Skype for business server组件安装,证书申请
后续步骤:略!略!略!