Product Documentation

数据存储数据库参考

Sep 14, 2015

在安装、配置和使用数据库软件之前,请参阅数据库供应商的文档。Citrix 文章 CTX114501 介绍了与受支持的数据库版本有关的信息。

如果使用 Microsoft SQL Server 2008 Express 数据库来实现场数据存储,XenApp 配置会自动安装该数据库。

重要提示:
  • Citrix 不支持区分大小写的数据库。
  • 为避免损坏,请勿使用非 Citrix 提供的实用程序或工具直接编辑数据存储数据库中的数据。

维护、备份和还原 XenApp 数据存储

大多数数据库维护工作需要在 XenApp 场服务器上运行 dsmaintdscheck 服务器实用程序。XenApp 服务器实用程序参考中包含语法和用法详细信息。

使用 dsmaint 可以:
  • 升级 XenApp 数据存储
  • 将数据存储中的数据移动到不同的数据库服务器中
  • 更改 DSN 文件的名称

如果数据存储发生故障,每个场服务器都可以无限期地基于其本地主机缓存中的数据运行,前提是该服务器可以联系许可证服务器。但是,您无法对场进行任何修改,也无法使用 AppCenter。

创建数据存储的备份副本 (dsmaint backup)。如果不进行备份,则必须手动重新创建数据存储中的所有场策略、设置、帐户,以及其他永久数据。

要恢复备用数据库或迁移到新服务器,请使用 dsmaint migrate 实用程序。如果没有备用数据库,请准备新的数据存储(方法与配置 XenApp 之前的准备工作相同),并从任一场服务器运行 XenApp 服务器配置工具。运行服务器配置工具后,手动重新输入丢失的设置。如果使用与先前的数据存储相同的名称,则无需重新配置场服务器。

Microsoft SQL Server 数据库

托管 Microsoft SQL Server 数据库的服务器至少应该满足以下要求:
  • 为 XenApp 场中每 250 台服务器和 50 个已发布应用程序提供大约 100MB 的磁盘空间。为更多已发布应用程序提供更大磁盘空间。
  • 将“temp”数据库设置为在至少具有 1 GB 可用磁盘空间的分区上自动增长。如果场足够大且包括多个打印机驱动程序,Citrix 建议大小为 4 GB。

默认的数据库安装设置和数据库大小通常足以满足 XenApp 数据存储的需要。

Microsoft SQL Server 支持 Windows 身份验证和 Microsoft SQL Server 身份验证。对于安全性要求很高的环境,Citrix 建议仅使用 Windows 身份验证。

用于安装、升级或将修补程序应用到数据存储的用户帐户必须拥有对数据库的数据库所有者 (db_owner) 权限。使用数据库所有者权限完成数据库安装时,请将用户权限设置为只读/写以增强数据库的安全性。安装 Service Pack 或功能版本之前,请将权限恢复为数据库所有者;如果在安装期间,用于对数据存储进行身份验证的用户帐户不具有数据库所有者权限,安装可能会失败。

在复制环境中使用 Microsoft SQL Server 时,请在每个 SQL Server 上使用同一个数据存储用户帐户。

每个场需要一个专用的数据库。但是,多个数据库可以在运行 Microsoft SQL Server 的单个服务器上运行。请勿将场配置为使用与其他任何客户端/服务器应用程序共享的数据库。

应该定期备份数据库,并遵循 Microsoft 对于配置数据库和用于恢复的事务日志的建议(例如,设置在检查点截断日志选项以控制日志空间)。

使用套接字连接到 Microsoft SQL Server 数据库

TCP/IP 套接字和命名管道是连接数据库的两种协议。命名管道是一种身份验证通信协议,每当您尝试使用此协议打开到 SQL Server 数据库的连接时,都将执行 Windows 身份验证过程。TCP/IP 套接字不依赖 Windows 身份验证来建立连接,不过,在连接建立之后,它会提供针对数据库的用户/密码身份验证。在托管 SQL Server 的服务器和 XenApp 服务器不具备正确域或 Active Directory 信任关系时,Windows 身份验证可减少出错的可能性。因此,Citrix 建议使用 TCP/IP 套接字。

如果使用命名管道,请使用与 SQL Server 打包在一起的外围应用配置器工具手动启用数据库服务器上的命名管道选项。

创建 Microsoft SQL Server 数据源连接

  1. 创建到 SQL Server 的新数据源屏幕上,输入数据源说明,然后选择要连接的 SQL Server。
  2. 选择 Windows NT 身份验证SQL Server 身份验证
  3. 单击客户端配置
  4. 从可用网络库中选择 TCP/IP
  5. 安装 XenApp 之后,修改配置期间创建的数据源名称 (DSN),并将其客户端配置更改为使用 TCP/IP。

    要修改 DSN,请使用 Windows ODBC Data Source Administrator 实用程序打开文件 DSN(默认情况下该 DSN 位于 %ProgramFiles(x86)%\Citrix\Independent Management Architecture 文件夹内),然后选择“TCP/IP”作为客户端配置的连接协议。

将故障转移和 Microsoft SQL Server 结合使用

为了使 Microsoft SQL Server 具有容错功能,请使用 Microsoft 群集;Microsoft 群集可以为群集系统提供故障转移和故障恢复功能。在群集环境中 SQL Server 数据库的故障转移对 XenApp 是透明的。

Microsoft SQL Server 实例的数据库文件放置在单个群集组中,该群集组归安装该实例的节点所有。如果运行 Microsoft SQL Server 实例的节点出现故障,则包含该实例的数据文件的群集组会切换到其他节点。新节点在其本地磁盘驱动器上已经有该 Microsoft SQL Server 实例的可执行文件和注册信息,因此它可以启动 Microsoft SQL Server 实例并开始接受该实例的连接请求。

由于 Microsoft 群集服务群集仅以主动/被动模式运行,因此它不支持群集服务器之间的负载平衡。

将分布式数据库与 Microsoft SQL Server 结合使用

XenApp 支持分布式(复制的)数据库。当对数据存储的读取请求过多而导致出现处理瓶颈时,复制的数据库很有用。Microsoft SQL Server 使用复制功能创建分布式数据库环境。

XenApp 要求在多个数据库之间保持数据一致性。因此,两阶段提交算法对于在数据库中存储数据是必需的。在为两阶段提交配置 Microsoft SQL Server 时,请使用“立即更新订阅服务器”模式。

在配置 Microsoft SQL Server 时,可能需要增加“最大文本复制大小”属性的值来提高复制性能。

警告:为避免损坏,请勿使用合并复制。
为现有 XenApp 场设置分布式环境:
  1. 使用 Microsoft SQL Server Enterprise Manager 配置发布服务器(当前托管数据存储的 Microsoft SQL Server)和订阅服务器(远程站点)。
  2. 在场中的一个服务器上运行 dsmaint publishsqlds 命令。这将执行必要的 SQL 语句,以在当前 Microsoft SQL Server(发布服务器)上创建已发布文章。
  3. 配置远程站点(订阅服务器)以订阅在上一步骤中创建的已发布文章。

Oracle 数据库

托管 Oracle 数据库的服务器至少应满足以下要求:
  • 为场中每 250 台服务器和 50 个已发布应用程序提供的磁盘空间大约为 100 MB。为更多已发布应用程序提供更大磁盘空间。
  • 表空间大小至少为 20 MB。

Oracle 支持 Windows 和 Oracle 身份验证。Oracle for Solaris 仅支持 Oracle 身份验证,不支持 Windows 身份验证。

在 Oracle sqlnet.ora 文件中,设置 SQLNET.AUTHENTICATION_SERVICES= (NONE)。默认设置 (NTS) 会导致连接失败。

请勿在托管 Oracle 数据库的服务器上安装 XenApp。

在要安装 XenApp 的服务器上安装 Oracle 客户端,然后先重新启动该服务器,再安装 XenApp。

由于所有 XenApp 服务器共享同一个架构,因此,场中每台服务器的 Oracle 用户帐户必须相同。

如果您使用一个数据库存放多个场的信息,在该数据库中表示的每个场必须具有不同的用户帐户,因为数据存储信息存储在 Oracle 用户帐户中。

用于连接到数据存储数据库的帐户具有以下 Oracle 权限:
  • 连接
  • 资源
  • 不受限制的表空间(可选)
配置 Oracle 服务器时,请考虑遵循以下原则。
  • 使用共享/多线程服务器模式,以减少包含 100 多台服务器的场中的进程数(在数据存储负载较高的时段,性能可能会受到影响)。
  • 如果您使用的是多线程服务器模式,请确认 Init.ora 文件中的值大于或等于以下值。如果您在同一个 Oracle 数据库中运行了多个场,请在计算中包含所有 XenApp 服务器。将小数部分的值向上舍入。

    shared_servers = 服务器数量/10

    max_shared_servers = 服务器数量/5

    其中,服务器数量为运行 XenApp 的总服务器数。

  • 在专用模式下使用 Oracle 数据库时,请将直接连接的每台服务器的其他进程添加到 Oracle 数据库。例如,如果安装 XenApp 之前 Oracle 服务器使用 100 个进程,场包含 50 台服务器,请将 Oracle 服务器上的 Init.ora 文件中的进程值设置为大于等于 150。
  • 使用归档模式创建联机备份,这样可缩短恢复无响应的数据库时所需的时间。
  • 如果您对多个服务器场使用同一个 Oracle 数据库,请使用该数据库的用户名和密码创建一个唯一的表空间,以增加每个场的安全性。请勿使用 Oracle 中默认的系统帐户。
  • 保留备用数据库以便快速进行灾难恢复。备用数据库将生产数据库的副本维持在永久的恢复状态。

将分布式数据库与 Oracle 一起使用

Oracle 使用复制创建分布式数据库环境。要降低单台数据库服务器上的负载,请安装读取/写入副本,并在主机和副本之间平均分配场服务器。

XenApp 要求在多个数据库之间保持数据一致性。因此,要向数据库中写入内容,必须使用两阶段提交算法。

将 Oracle 用作分布式数据库解决方案具有以下要求:
  • 涉及的所有数据库均必须运行 Oracle。
  • 涉及的所有数据库均必须在多线程服务器/共享模式(而非专用模式)下运行。
  • 所有 Oracle 客户端(直接连接到 Oracle 数据库的 XenApp 服务器)均必须为 SQL*Net 版本 2 或 Net8。
  • 首先在主站点上安装场数据存储数据库,然后在用于存储数据库复制快照的站点上配置复制。
  • 复制数据存储用户架构中包含的所有对象(表、索引以及存储过程)。

如果复制的数据库站点的性能非常缓慢,请验证是否成功复制了用户模式的所有索引。

将 Oracle 配置为进行两阶段提交时,请:
  • 使用可通过单个主站点进行更新的同步快照。XenApp 需要具有对快照的写入权限。
  • 尽可能使用 Oracle 快速刷新功能(需要使用快照日志)。
  • 设置复制环境时,请勿配置冲突解决方案。
  • 将复制链接间隔的频率设置为网络环境允许的频率。使用 Oracle 复制时,如果未进行任何更改,数据不会通过链接发送。
  • 在多线程服务器模式下配置 Oracle,并从远程站点启动远程数据传输时,所做的更改会阻止本地数据传输(因为所有连接共享一组工作线程)。要修正此问题,请增大 Init.ora 文件中 Max_Mts_Servers 参数的值。