Product Documentation

数据库容错

Nov 06, 2015

本主题概述了可用来提高部署中容错级别的方式,从而确保业务关键型应用程序和桌面始终可用。

注意:有关将 Virtual Delivery Agent (VDA) 配置为以高可用性模式运行的信息,请参阅确保在 Delivery Controller 出现故障时可以访问桌面和应用程序

配置数据库容错性

所有信息都存储在站点配置数据库中,控制器只与数据库进行通信,彼此之间并不通信。拔出或关闭一个控制器不会对站点中的其他控制器产生影响。但这也意味着站点配置数据库会形成单点故障。如果数据库服务器出现故障,除非用户从虚拟桌面注销或与虚拟桌面断开连接,否则与虚拟桌面的现有连接会继续工作。如果数据库服务器不可用,将无法建立新连接。

Citrix 建议您定期备份数据库,以便在数据库服务器出现故障时可以通过备份进行还原。另外,可以考虑采取几种高可用性解决方案以确保实现自动故障转移:

  • SQL 镜像 — 建议采用此解决方案。通过镜像数据库可以确保一旦与活动数据库服务器失去联系,可以在几秒钟内实现自动故障转移,因此用户通常不会受到影响。但是,此方法比其他解决方案更为昂贵,因为在每台数据库服务器上必须使用完整的 SQL Server 许可证;在镜像环境中不能使用 SQL Server Express 版本。
  • 使用虚拟机管理程序的高可用性功能 — 通过此方法,您可以将数据库作为虚拟机进行部署,并使用虚拟机管理程序的高可用性功能。此解决方案的成本比镜像方法要低,因为它使用的是现有主机软件,您也可以使用 SQL Express。但是,其自动故障转移过程比较慢,因为需要花时间为数据库启动新计算机,这样可能会导致为用户提供的服务中断。
  • SQL 群集化 — 可以使用 Microsoft 的 SQL 群集化技术,允许一台服务器自动接管另一台故障服务器的任务和职责。但是,该解决方案的设置更为复杂,自动故障转移过程通常比其他备选方案(如 SQL 镜像)更慢。
  • AlwaysOn 可用性组是 SQL Server 2012 中引入的具有高可用性和灾难恢复能力的企业级解决方案。此方案可以使您最大程度地提高一个或多个用户数据库的可用性。AlwaysOn 可用性组要求 SQL Server 实例必须驻留在 Windows Server 故障转移群集 (WSFC) 节点上。有关详细信息,请参阅 AlwaysOn 可用性组 (SQL Server)

将站点配置为使用镜像数据库

在配置过程中,管理员需要在创建 Citrix 站点之前使用 SQL Server 管理工具完成多项任务。其余任务在 Citrix 管理员运行站点创建向导时执行。

镜像环境至少需要两个 SQL Server 计算机(例如 SQL Server A 和 SQL Server B)。不可以使用 SQL Server Express Edition 作为主体数据库或镜像数据库。

通过 Microsoft SQL Server 管理工具,配置 SQL Server 数据库:

  1. 在 SQL Server A 和 SQL Server B 上安装 SQL Server 软件。
  2. 在 SQL Server A 上,创建要作为主体数据库的数据库(例如 myDatabaseMirror)。

    确保该数据库使用完全恢复模型而不是简单模型。(默认情况下配置为使用简单模型,但该模型会阻止备份事务日志。)

    确保排序规则以 _CI_AS_KS 结尾(即,不区分大小写但区分重音和假名类型)。

    按照 How to Enable Read-Committed Snapshot in XenDesktop(如何在 XenDesktop 启用已提交读的快照)中的说明启用“已提交读”快照。重要的是,该快照应在镜像数据库前启用,以避免错误。

  3. 在 SQL Server A 上,将数据库备份到文件并将该文件复制到 SQL Server B。
  4. 在 SQL Server B 上,将备份文件还原到该服务器 (SQL Server B) 中。
  5. 在 SQL Server A 上,开始镜像。

下一步取决于 Citrix 管理员(即运行站点创建向导的人员)是否还具有完全数据库权限:

  • 如果 Citrix 管理员有数据库权限(即数据库管理员和 Citrix 管理员是同一个人),Studio 将为您完成所有操作:
    1. Citrix 管理员使用 Studio 创建站点,指定之前创建的 SQL Server A 数据库的地址及其名称 (myDatabaseMirrorForXD)。
    2. 将自动应用数据库脚本,并设置主体数据库和镜像数据库。
  • 如果 Citrix 管理员没有数据库权限,则必须从数据库管理员处获取帮助:
    1. Citrix 管理员使用 Studio 创建站点,指定之前创建的 SQL Server 数据库的地址及其名称 (myDatabaseMirrorForXD)。
    2. 在站点创建向导中,按生成脚本将生成镜像脚本和主脚本。Citrix 管理员将这些脚本交给数据库管理员,数据库管理员将应用这些脚本(首先应用镜像脚本)。数据库管理员必须告诉 Citrix 管理员任务的完成时间。
    3. 返回 Studio,Citrix 管理员现在可以继续执行并完成“创建站点”向导。此时主体数据库和镜像数据库已设置完毕。

要在创建站点后验证镜像,请运行 PowerShell cmdlet get-configdbconnection,以确保已在连接字符串中将故障转移合作伙伴设置为镜像。

如果您稍后在镜像的数据库环境中添加、移动或删除 Delivery Controller,请参阅添加、删除或移动控制器以了解注意事项。