为 SQL Server AlwaysOn 故障转移设置配置数据库和组织数据库

 

发布日期: 2017年1月

适用于: Dynamics 365 (on-premises),Dynamics CRM 2016

Microsoft SQL ServerAlwaysOn 故障转移群集实例 (FCI) 和 AlwaysOn 可用性组提供了高可用性和灾难恢复的综合解决方案。 本主题介绍如何配置 Microsoft Dynamics 365 服务器 的现有本地部署,以便让配置数据库和组织数据库成为使用可用性组的双节点 AlwaysOn 故障转移群集实例的一部分。

重要

如果您正在对 Microsoft Dynamics 365 配置和已配置 SQL ServerAlwaysOn FCI 的组织数据库进行升级,那么您无需再次执行这一步骤。

有关这些 SQL Server 高可用性解决方案的详细信息,请参阅 AlwaysOn 故障转移群集实例AlwaysOn 可用性组

本主题内容

必备条件

启用SQL Server AlwaysOn

创建可用性组

为所有辅助副本上的 Microsoft Dynamics 365 安全组创建 SQL 登录名

更新 Windows 注册表中的配置数据库连接字符串

更新配置数据库中的连接字符串

重新启动 IIS 和 Microsoft Dynamics 365 服务

监视可用性组并测试故障转移

必备条件

本主题中将要配置的简单双服务器实例故障转移群集所需的条件如下:

  • 在双节点故障转移群集配置下运行且具有共享存储的两台 SQL Server 服务器,如 SAN、NAS 或 Windows Storage Server。 若要获得受支持的 SQL Server 版本的列表,请参阅 SQL Server 版本

  • 两台在 Microsoft Windows Server 上运行 SQL Server 的服务器,将在 SQL ServerAlwaysOn 实例故障转移群集中充当副本。SQL Server 主要副本实例有配置 (MSCRM_CONFIG) 和组织 (OrganizationName_MSCRM) 两个数据库。

    有关何种版本的 SQL Server 支持 AlwaysOn 的详细信息,请参阅高可用性 (AlwaysOn)。 有关如何创建 SQL Server 故障转移群集的详细信息,请参阅新建 SQL 服务器故障转移群集(设置)

SQL Server 2012 双节点故障转移群集实例

启用SQL Server AlwaysOn

按照以下步骤使用 Microsoft SQL Server Management Studio 创建 AlwaysOn 功能。 也可以使用 Transact-SQL 或 SQL ServerPowerShell。详细信息:AlwaysOn 可用性组(SQL 服务器)入门

备注

尽管此处的步骤特定于 Microsoft SQL Server 2012,您还是可以对其他受支持的 SQL Server 版本使用类似步骤。

  1. 在 SQL Server 配置管理器 中,启用一级和二级副本中的 AlwaysOn 可用组。 有关详细步骤,请参阅启用 AlwaysOn 可用性组

  2. 在 SQL Server Management Studio 中创建可用性组;指定配置数据库和组织数据库以及主要和辅助副本。详细信息:创建和配置可用性组(SQL 服务器)

创建可用性组

以下步骤用于创建一个包含 Microsoft Dynamics 365 配置数据库和单个组织数据库的 SQL Server 可用性组。 此外,还将为可用性组添加侦听器。

为配置数据库和组织数据库创建可用性组

  1. 在将要充当主要副本的 SQL Server 上启动 SQL Server Management Studio。

  2. 在对象资源管理器中,右键单击“AlwaysOn 高可用性”,然后单击“新建可用性组向导”。

  3. 当向导显示后,单击“下一步”。

  4. 在“指定名称”页上,为可用性组键入名称(例如 Dynamics 365),然后单击“下一步”。

  5. 在“选择数据库” 页面,选择 MSCRM_CONFIG 和 OrganizationName_MSCRM 数据库,然后单击“下一步”。

    重要

    向可用性组添加数据库的要求:

    • 必须将恢复模式设置成“完整”。 默认情况下,组织数据库 (OrganizationName_MSCRM) 设置为“简单”。

    • 数据库的完整备份。

  6. 在“指定副本”页面上,单击“添加副本”,在“服务器”对话框中键入您的副本 SQL Server 的名称(例如此示例中的 CRMNode2),然后单击“连接”。 副本服务器实例会显示在“服务器实例”列表中。

  7. 单击“终结点”选项卡并验证两个副本都在列表中。 向右滚动到“SQL Server 服务帐户”并确定域用户帐户已指定。SQL Server 故障转移群集需要 SQL Server 服务的域用户帐户。

  8. 单击“侦听器”选项卡。 可用性组侦听器支持多子网方案中更快的客户端连接故障转移。 输入以下信息:

    • 侦听器 DNS 名称:键入侦听器名称。

    • 要完成侦听器创建,请指定一个 TCP 端口,并将“网络模式”设置成“静态 IP”。 单击“添加”输入 IP 地址,然后单击“确定”。 有关这些属性的详细信息,请单击“新建可用性组”向导中的“帮助”。

      单击“下一步”。

  9. 确定对副本的其他更改(如果有),然后单击“下一步”。 有关详细信息,请单击“新建可用性组”向导中的“帮助”。

    1. 在“选择数据同步”页上,选择数据同步方法。 如果选择“完全”,则必须添加可供所有副本访问的网络共享。 请注意,SQL Server 服务帐户需要读写权限才能共享。 有关详细信息,请单击“新建可用性组”向导中的“帮助”。

      单击“下一步”。

  10. 系统会显示用于对新的可用性组执行验证检查的“验证”页。 必须解决所有错误,才能创建可用性组。 单击“下一步”。

  11. 在“摘要”页上,确认选择正确,然后单击“完成”。

为所有辅助副本上的 Microsoft Dynamics 365 安全组创建 SQL 登录名

为辅助副本上的 Microsoft Dynamics 365 安全组创建 SQL 登录名。 为此,请按照以下步骤操作:

  1. 启动 SQL Server Management Studio 并连接辅助 SQL Server 副本 (CRMNode2)。

  2. 展开“安全性”节点,右键单击“登录名”,然后单击“新建登录名”。

  3. 在“登录名”框中,单击“搜索”,然后确保“组”包含在“选择此对象类型”中(如果未包含,请单击“对象类型”并进行添加)。 键入 DomainName\PrivReportingGroup,单击“检查名称”,然后在名称正确解析后单击“确定”。

    备注

    实际 PrivReportingGroup 名称可能会不同。 验证存在于 Active Directory 的名称。

  4. 为以下安全组重复执行步骤 2 和步骤 3:

    • ReportingGroup

    • SQLAccessGroup

创建 MSCRMSqlClrLogin SQL 登录

  1. 为 MSCRMSqlClrLogin SQL 登录名创建非对称密钥。

    在所有辅助副本上,对 master 数据库执行以下 SQL 语句以创建非对称密钥,其中 <path> 是指向 Microsoft.Crm.SqlClr.Helper.dll 文件的文件夹路径,该文件位于安装了“部署工具”服务器角色的服务器。 例如,在类似于 \\crmdeploymenttools\CRMshare\Tools\ 的共享上指定一个 UNC 路径。 默认状态下,Microsoft.Crm.SqlClr.Helper.dll 位于 C:\Program Files\Microsoft Dynamics CRM\Tools\ 文件夹中的“部署工具”服务器上。

    IF NOT EXISTS (SELECT * FROM sys.asymmetric_keys WHERE name = 'MSCRMSqlClrKey') BEGIN CREATE ASYMMETRIC KEY MSCRMSqlClrKey FROM EXECUTABLE FILE = ’<path>\Microsoft.Crm.SqlClr.Helper.dll’; 
    END
    
  2. 创建 MSCRMSqlClrLogin SQL 登录名。

    对 master 数据库执行以下 SQL 语句以创建 MSCRMSqlClrLogin SQL 登录名。

    IF NOT EXISTS (SELECT * FROM sys.syslogins WHERE name = 'MSCRMSqlClrLogin') BEGIN CREATE LOGIN MSCRMSqlClrLogin FROM ASYMMETRIC KEY MSCRMSqlClrKey GRANT UNSAFE ASSEMBLY TO MSCRMSqlClrLogin END
    

更新 Windows 注册表中的配置数据库连接字符串

更新所有正在运行 Microsoft Dynamics 365 服务器 角色的服务器(包括 Microsoft Dynamics 365 Reporting Extensions 服务器)上每个 Windows 注册表 中的 SQL Server 连接字符串。 为此,请执行以下步骤。

警告

如果您使用注册表编辑器或其他方法错误地修改了注册表,可能会出现严重问题。 这些问题可能要求您重新安装操作系统和 Microsoft Dynamics 365。 我们不能保证这些问题能够得到解决。 您应自行承担修改注册表的风险。

  1. 在运行 Microsoft Dynamics 365 服务器 角色的计算机上,启动 注册表编辑器 并找到以下注册表子项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\

  2. 右键单击 configdb,然后单击“修改”。

    1. 如果存在 Failover Partner=MSCRM_Mirror,则从值中将其删除。

    2. 将“数据源”从 SQL Server 实例名称更改成可用性组侦听器名称。

      完整的连接字符串应类似于以下示例,其中 MSCRMAG 是包含 Microsoft Dynamics 365 配置数据库的可用性组的侦听器名称:

      Data Source MSCRMAG;Initial Catalog= MSCRM_CONFIG;Integrated Security=SSPI

      提示

      侦听器名称可以在 SQL Server Management Studio 中的“可用性组”节点下找到。

    3. 如果您正在使用侦听器,请在 configdb 值的末尾添加 ;multisubnetfailover=true,以形成连接字符串。详细信息:适用于高可用性和灾难恢复的 SqlClient 支持

      多个子网的完整 configdb 值应如下显示:

      Data Source MSCRMAG;Initial Catalog= MSCRM_CONFIG;Integrated Security=SSPI;multisubnetfailover=true

  3. 单击“确定”,然后关闭 注册表编辑器。

  4. 重复上述步骤,为每个运行 Microsoft Dynamics 365 服务器 角色的服务器(包括运行 Microsoft Dynamics 365 Reporting Extensions 的服务器)添加连接字符串到配置子项。

更新配置数据库中的连接字符串

更新配置数据库中的组织表以便为客户端连接字符串指定可用性组侦听器名称。 为此,配置 (MSCRM_CONFIG) 数据库运行以下更新语句。

警告

备份 Microsoft Dynamics 365 配置数据库 (MSCRM_CONFIG),然后运行这些更新语句。

Update Organization set ConnectionString = 'Provider=SQLOLEDB;Data Source=AG_Listener_Name;Initial Catalog=OrganizationName_MSCRM;Integrated Security=SSPI';MultiSubnetFailover=True' where DatabaseName = 'OrganizationName_MSCRM'
  • AG_Listener_Name 替换为 Microsoft Dynamics 365 组织数据库所在的可用性组侦听器名称。

  • OrganizationName_MSCRM 替换为组织数据库的名称。

其他可用参数

对于可用性群组接听程式,如果您使用的端口号不是 1433,则添加以下 Port_Number 为网络端口号的参数。

Update Organization set ConnectionString = 'Provider=SQLOLEDB;Data Source=AG_Listener_Name,Port_Number;Initial Catalog=OrganizationName_MSCRM;Integrated Security=SSPI;multisubnetfailover=true' where DatabaseName = 'OrganizationName_MSCRM'

重新启动 IIS 和 Microsoft Dynamics 365 服务

在完成上述更改后,在运行 Web 应用程序服务器角色的计算机上重置 IIS。

警告

所有可用 Microsoft Dynamics 365 用户都将断开连接。

为此,请单击“开始”,然后单击“运行”。 在“打开”框中,键入 iisreset,然后单击“确定”。

在安装了 Microsoft Dynamics CRM Server 2013 功能的所有服务器上重新启动部署中的所有 Microsoft Dynamics 365 服务。

监视可用性组并测试故障转移

Microsoft SQL Server Management Studio 包含对查看可用性组状态和执行手动故障转移进行简化的功能。

查看可用性组状态

  1. 启动 SQL Server Management Studio 并连接到在可用性组中充当主要副本的 SQL Server 实例。

  2. 在 SQL Server Management Studio 中,展开“可用性组”,右键单击您为 Microsoft Dynamics 365 创建的可用性组,然后单击“显示仪表板”。

仪表板会显示所有副本和同步状态。 您可以查看可用性组中任意副本的仪表板。

故障转移测试

  1. 验证 Microsoft Dynamics 365 能连接到可用性组。 例如,启动 Internet Explorer,然后连接至 Microsoft Dynamics 365 组织 URL。

  2. 在上述步骤介绍的仪表板中,单击“启动故障转移向导”以开始故障转移流程。

  3. 按照向导中的说明完成故障转移。

    故障转移成功完成后,主要副本会成为辅助副本,而辅助副本则会成为主要副本。

  4. 切换到已连接到 Microsoft Dynamics 365 组织的 Web 浏览器,然后验证是否可以通过在应用程序中的任意位置单击以无缝连接到新的主要副本。

要切换回原来的主要副本和辅助副本,请在新的主要副本上重新执行手动故障转移流程。

另请参阅

安装或更新 Microsoft Dynamics CRM 服务器
故障转移群集分步指南:配置双节点文件服务器故障转移群集
升级 Microsoft Dynamics CRM 服务器

© 2017 Microsoft。 保留所有权利。 版权