Azure 中的 SharePoint Intranet 服务器场,第 5 阶段:创建可用性组并添加 SharePoint 数据库
**上一次修改主题:**2017-05-30
**摘要:**在 Microsoft Azure 中为高可用性 SharePoint Server 2016 场配置 SQL Server 可用性组。
在 Azure 基础结构服务中部署仅限 Intranet 的 SharePoint Server 2016 场的这一最后阶段中,新建包含 SharePoint 场数据库的 SQL Server AlwaysOn 可用性组,创建可用性组侦听器,然后完成 SharePoint 场配置。
请参阅在 Azure 中为 SharePoint Server 2016 部署 SQL Server AlwaysOn 可用性了解所有阶段。
配置可用性组
SharePoint 创建两个数据库作为初始配置的一部分。这些数据库必须通过以下步骤准备就绪:
必须将数据库恢复模式设置为“完全”。
在主计算机上执行数据库的完整备份和事务日志备份。在备份计算机上还原完整备份和日志备份。
备份并还原数据库后,可以将它们添加到可用性组中。SQL Server 仅允许将已在另一台计算机上备份(至少一次)和还原的数据库添加到可用性组中。
确保可以从辅助 SQL Server 虚拟机访问这些备份文件 (.bak),具体步骤如下:
使用 <你的域>\sp_farm_db 帐户凭据连接主 SQL Server 虚拟机。
打开文件资源管理器,然后定位到 H: 盘。
右键单击“备份”文件夹,单击“共享人员”,然后单击“特定人员”。
在“文件共享”对话框,请键入 <你的域名>\sqlservice,然后单击“添加”。
单击 sqlservice 帐户名的“权限级别”列,然后单击“读/写”。
单击“共享”,然后单击“完成”。
在辅助 SQL Server 主机上执行上面的过程,第 5 步中为 H:\Backup 文件夹授予 sqlservice 帐户读取权限的操作除外。
对于要添加到可用性组中的每个数据库执行以下步骤:
从主 SQL Server 虚拟机中,单击“开始”,键入 SQL Studio,然后单击 SQL Server Management Studio。
单击“连接”。
在左窗格中,展开“数据库”节点。
右键单击某个数据库,然后选择“属性”。
从左边的导航项中选择“选项”。
确保“恢复模式”设置为“完全”。如果不是,将其更改为支持 AlwaysOn 功能。
必须对需要添加到可用性组的每个数据库都重复以下过程。一些 SharePoint Server 2016 数据库不支持 SQL Server AlwaysOn 可用性组。有关详细信息,请参阅 SharePoint 数据库的受支持的高可用性和灾难恢复选项。
备份数据库的具体步骤
连接到第一个 SQL Server 虚拟机。
单击“开始”,键入 SQL Studio,然后单击 SQL Server Management Studio。
单击“连接”。
在左窗格中,展开“数据库”节点。
右键单击要备份的数据库,指向“任务”,然后单击“备份”。
在“目标”部分中,单击“删除”以删除备份文件的默认文件路径。
单击“添加”。在“文件名”中,键入 \\<machineName>\backup<databaseName>.bak,其中 machineName 是主 SQL Server 计算机的名称,databaseName 是数据库的名称。单击“确定”,然后在显示有关成功备份的消息后再次单击“确定”。
在左窗格中,右键单击 <databaseName>,指向“任务”,然后单击“备份”。
在“备份类型”中,选择“事务日志”,然后单击“确定”两次。
保持第一个 SQL Server 虚拟机的远程桌面会话处于打开状态。
还原数据库的具体步骤
使用 <your domain>\sp_farm_db 帐户凭据连接到辅助 SQL Server 虚拟机。
从辅助 SQL Server 虚拟机中,单击“开始”,键入 SQL Studio,然后单击 SQL Server Management Studio。
单击“连接”。
在左窗格中,右键单击“数据库”,然后单击“还原数据库”。
在“源”部分中,选择“设备”,然后单击省略号 (…) 按钮。
在“选择备份设备”中,单击“添加”。
在“备份文件位置”中,键入 \<计算机名称>\backup,按 Enter 键,选择 <databaseName>.bak,然后单击“确定”两次。你现在会在“要还原的备份集”部分中看到完整备份和日志备份。
在“选择页”下,单击“选项”。在“还原选项”部分的“恢复状态”中,选择 RESTORE WITH NORECOVERY,然后单击“确定”。
出现提示时,单击“确定”。
准备好至少一个数据库(使用备份和恢复方法)后,请通过以下步骤创建可用性组:
返回到第一个 SQL Server 虚拟机的远程桌面会话。
在 SQL Server Management Studio 中,请在左窗格中右键单击“AlwaysOn 高可用性”,然后单击“新建可用性组向导”。
在“简介”页上,单击“下一步”。
在“指定可用性组名称”页面上,在“可用性组名称”中键入你的可用性组名称(例如:AG1),然后单击“下一步”。
在“选择数据库”页上,选择已备份的 SharePoint 服务器场的数据库,然后单击“下一个”。由于已经至少在预期的主要副本中创建一个完整备份,因此这些数据库满足可用性组的先决条件。
在“指定副本”页面上,单击“添加副本”。
在“连接到服务器”中,键入辅助 SQL Server 虚拟机的名称,然后单击“连接”。
在“指定副本”页中,辅助 SQL Server 虚拟机已在“可用性副本”中列出。对于这两个实例,请设置以下选项值:
初始角色 选项 值 主
自动故障转移(最多为 2)
已选定
辅助
自动故障转移(最多为 2)
已选定
主
同步提交(最多为 3)
已选定
辅助
同步提交(最多为 3)
已选定
主
可读辅助副本
是
辅助
可读辅助副本
是
单击“下一步”。
在“选择初始数据同步”页面上,单击“只加入”,然后单击“下一个”。通过在主服务器上执行完整和事务备份并基于备份还原来手动执行数据同步。也可以选择“完整”,让新可用性组向导为你进行数据同步。但是,Microsoft 不建议对在一些企业中发现的大型数据库使用“全自动同步”。
在“验证”页上单击“下一步”。由于未配置可用性组侦听器,因此将出现一条提示缺少侦听器配置的警告。我们将在本文中后面的过程中手动执行这一步骤。
在“摘要”页面上,单击“完成”。完成该向导后,请检查“结果”页以验证可用性组是否创建成功。如果是这样,请单击“关闭”退出该向导。
单击“启动”,键入 Failover,然后单击“故障转移群集管理器”。在左窗格中,打开群集的名称,然后单击“角色”。应该会显示使用可用性组名称的新角色。
配置可用性组侦听器
可用性组侦听器是 SQL Server 可用性组侦听的 IP 地址和 DNS 名称。使用下列步骤来创建 SQL Server 群集的可用性组侦听器:
使用这些步骤确定群集网络资源名称。
单击“启动”,键入 Failover,然后单击“故障转移群集管理器”。
单击“网络”节点并记下群集网络名称。你需要将此名称用于该过程步骤 6 的 PowerShell 命令块中的 $ClusterNetworkName 变量。
客户端访问点是应用程序用来连接到可用性组中的数据库的网络名称。通过以下步骤添加客户端访问点。
从故障转移群集管理器中展开群集名称,然后单击“角色”。
在“角色”窗格中,右键单击该可用性组名称,然后选择“添加资源 > 客户端访问点”。
在“名称”字段中,为这个新的侦听器指定名称。
新侦听器的名称是应用程序用于连接到 SQL Server 可用性组中的数据库的网络名称。
单击“下一步”两次,然后单击“完成”。此时切勿使监听器或资源联机。
配置可用性组的 IP 资源 通过以下步骤:
单击“资源”选项卡,然后展开你创建的客户端访问点。客户端访问点处于脱机状态。
右键单击 IP 资源,然后单击“属性”。记下该 IP 地址的名称。你需要将此名称用于该过程步骤 6 的 PowerShell 命令块中的 $IPResourceName 变量。
在“IP 地址”下方,单击“静态 IP 地址”。将 IP 地址设置为表 I 中项 4 的值。
通过以下步骤使 SQL Server 可用性组资源依赖于客户端访问点:
在故障转移群集管理器中,单击“角色”,然后单击你的可用性组。
在“资源”选项卡上,右键单击“服务器名称”下的可用性资源组,然后单击“属性”。
在“依赖项”选项卡上,添加资源名称。此资源是客户端访问点。
单击“确定”。
通过以下步骤使客户端访问点资源依赖于 IP 地址:
在故障转移群集管理器中,单击“角色”,然后单击你的可用性组。
在“资源”选项卡上,右键单击“服务器名称”下方的客户端访问点资源,然后单击“属性”。
单击“依赖项”选项卡。设置监听器资源名称的依赖项。如果已列出多个资源,请确保 IP 地址具有 OR 依赖项,而不是 AND 依赖项。单击“确定”。
右键单击该侦听器名称并单击“联机”。
通过以下步骤设置群集参数:
使用 <domain name>\sp_farm_db 帐户凭据连接到其中一个 SQL Server 虚拟机。
打开管理员级别的 PowerShell 命令提示符,指定变量值,然后运行下面的命令:
$ClusterNetworkName = "<MyClusterNetworkName>" $IPResourceName = "<IPResourceName>" $ILBIP = "<Table I - Item 4 - Value column>" [int]$ProbePort = <nnnnn> Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
提示
对于包含这篇文章中的所有 PowerShell 命令的文本文件,请参阅 Azure 部署工具包中的 SharePoint Server 2016 高可用性场。
使用以下步骤配置侦听器端口:
连接到第一个 SQL Server 虚拟机,启动 SQL Server Management Studio,并连接到本地计算机。
导航至“AlwaysOn 高可用性 > 可用性组 > 可用性组侦听器”。
你现在应该看到在故障转移群集管理器中创建的侦听器名称。
右键单击该侦听器名称,再单击“属性”。
在“端口”框中,通过使用前面用到的 $ProbePort 指定可用性组侦听器的端口号(1433 是默认值),然后单击“确定”。
使用以下步骤来测试到侦听程序的连接:
连接到第二个 SQL Server 虚拟机并打开管理员级别的命令提示符。
使用 sqlcmd 工具测试连接。例如,下面的命令通过采用 Windows 身份验证的侦听器与主要副本建立 sqlcmd 连接:
sqlmd -S <listenerName> -E
如果侦听器使用的端口不是默认端口 (1433),请在连接字符串中指定该端口。例如,下面的 sqlcmd 命令通过端口 1435 连接到侦听器:
sqlcmd -S <listenerName>,1435 -E
Sqlcmd 连接自动连接到托管主副本的 SQL Server 的任何一个实例。
使用运行状况仪表板检查 AlwaysOn 可用性组的操作是否成功,具体步骤如下:
在第一个 SQL Server 虚拟机上,在 SQL Server Management Studio 的左窗格中,展开“AlwaysOn 高可用性 > 可用性组”。
右键单击可用性组,然后单击“显示仪表板”。
对于“同步状态”,仪表板状态应显示为全绿。
完成 SharePoint 场配置
现在,SharePoint 配置和管理内容数据库已添加到可用性组并正确同步,下一步就是确保在 SQL Server 节点发生故障时可以对它们进行访问。为此,SharePoint 服务器场的 SQL Server 数据库连接字符串需要更新,以与 SQL 群集内部负载平衡器的 DNS 名称相匹配。
备注
使用本地 SQL Server AlwaysOn 部署时,可用性组会使用侦听器将连接点提供给 SharePoint 服务器。Azure IaaS 存在的网络限制会妨碍此操作,所以必须改用内部负载均衡器 DNS 名称。鉴于这种情况,不能使用 SharePoint PowerShell cmdlet 管理可用性组成员资格。必须改用数据库对象方法调用。
使用以下步骤来更新 SharePoint 数据库连接字符串:
连接到服务器场其中一个 SharePoint 服务器,并启动管理员级 PowerShell 命令提示符。
通过以下命令检查服务器场中每个数据库的当前连接字符串设置:
Add-psnappin Microsoft.SharePoint.PowerShell -EA 0 Get-Spdatabase | select name, server
显示的 Get-Spdatabase 命令显示连接字符串中的数据库名称和服务器属性值。
如果可用性组中的每个数据库都具有与群集中的 SQL 节点匹配的服务器属性,必须将此属性值更新为通过 PowerShell 与负载平衡器 DNS 名称匹配。在此示例中,数据库为 SharePoint_Config。
Get-SPDatabase #Lists all available SharePoint Databases $agName = "<Availability Group Listener DNS name>" $db = Get-SPDatabase -Name "Sharepoint_Config" $db.ChangeDatabaseInstance("$agName") $db.update()
对可用性组中的每个数据库完成此任务后,可以进行故障转移测试。
使用这些步骤来执行 SQL Server 可用性组的故障转移,以确保管理中心网站保持正常运行:
连接到服务器场中的 SharePoint 服务器之一。
启动 SharePoint 管理中心并浏览网站,确保不会发生错误。
连接到第一个 SQL Server 虚拟机并启动 SQL Server Management Studio。
展开“可用性组”节点,右键单击可用性组名称,然后单击“故障转移”。
可用性组故障转移向导随即启动。单击“下一步”。
在“为此可用性组选择新的主副本”页上,选择第二个 SQL Server 虚拟机,然后单击“下一步”。
单击“连接以对辅助节点进行身份验证”,然后单击“下一步”。
单击“完成”以验证该操作,并开始手动故障转移。
查看故障转移向导摘要信息中的错误和警告。
返回到你在其中浏览管理中心网站的 SharePoint 服务器,并确保你仍可以正常浏览该网站而不会出现错误。
你已完成在 Azure 中配置高可用性 SharePoint Server 2016 场。
See also
在 Azure 中为 SharePoint Server 2016 部署 SQL Server AlwaysOn 可用性
Microsoft Azure 中的 SharePoint Server 2016
在 Azure 中设计 SharePoint Server 2016 场