升级数据库和站点

Last published : Nov 13, 2026
在升级 Delivery Controller 后,您需要升级数据库和站点。有关高级概述,请参阅步骤 8:升级数据库和站点。
检查验证您的权限,了解更新 SQL Server 数据库架构所需的权限。根据您的数据库权限选择升级方法:
  • 自动升级。 如果您有权更新 SQL Server 数据库架构,请运行自动升级。请参阅自动升级数据库和站点。
  • 手动升级。 如果您没有这些权限,请运行使用脚本的手动升级。与拥有所需权限的数据库管理员合作。请参阅手动升级数据库和站点。
    在手动升级中,任务分为两个角色:
    • 站点管理员用户生成脚本。然后,该用户运行启用和禁用服务的脚本。
    • 数据库管理员运行更新数据库架构的脚本。管理员使用 SQLCMD 实用程序或 SQL Server Management Studio 的 SQLCMD 模式。
注意:
在多区域部署中,请在托管站点 SQL Server 数据库的同一区域中运行自动 dbschema 升级。否则,自动升级可能会失败。
在升级之前,请备份数据库。请参阅CTX135207。在数据库升级期间,产品服务将被禁用。在禁用期间,控制器无法为站点代理新连接,因此请仔细规划。

查看数据库架构升级

更新部署时,可以升级多个数据库架构。下表列出了已升级的架构:
Dbschema 更新
该表使用以下术语:
  • 站点: 站点数据存储。架构更新将应用于站点数据存储。
  • 监控: 监控数据存储。架构更新将应用于监控数据存储。
  • 配置: 配置表。Studio 版本、许可信息或两者都在配置表中更新。
  • 日志记录: 日志记录数据存储。架构更新将应用于日志记录数据存储。

自动升级数据库和站点

您可以使用 Site Manager 或 PowerShell SDK cmdlet 自动升级数据库和站点。

使用 Site Manager 自动升级

  1. 在已升级的 Delivery Controllers 上启动 Site Manager。
  2. 指示您要自动启动站点升级并确认您已准备就绪。

使用 PowerShell cmdlet 自动升级

作为使用 Site Manager 的替代方法,请使用 PowerShell SDK cmdlet Update-XDSite 自动升级数据库和站点。有关详细信息,请参阅 Citrix Virtual Apps and Desktops SDK Guide。
  1. 在第二个 Delivery Controller 上,打开 PowerShell 会话。
  2. 运行 Update-XDSite cmdlet。
该 cmdlet 自动检测所有需要升级的组件并执行以下操作:
  • 断开数据库连接,更新必要的数据库表,然后重新连接服务。如果数据库已通过其他脚本或独立工具升级,则跳过此步骤。
  • 运行环境所需的任何其他升级步骤。已完成的全局级别升级将被跳过。

手动升级数据库和站点

  1. 在已升级的 Delivery Controller 上启动 Site Manager。
  2. 指示您要手动升级站点。向导会检查许可证服务器兼容性并请求确认。
  3. 确认您已备份数据库。
    向导会生成并显示脚本以及升级步骤清单。如果数据库的架构自产品升级版本以来未发生更改,则不会生成该脚本。例如,如果日志记录数据库架构未更改,则不会生成 UpgradeLoggingDatabase.sql 脚本。
  4. 按所示顺序运行以下脚本。
    • DisableServices.ps1:Site Manager 用户在 Controller 上运行此 PowerShell 脚本以禁用产品服务。
    • UpgradeSiteDatabase.sql:数据库管理员在包含站点数据库的服务器上运行此 SQL 脚本。
    • UpgradeMonitorDatabase.sql:数据库管理员在包含 Monitor 数据库的服务器上运行此 SQL 脚本。
    • UpgradeLoggingDatabase.sql:数据库管理员在包含配置日志记录数据库的服务器上运行此 SQL 脚本。仅当此数据库发生更改时(例如,应用修补程序后)才运行此脚本。
    • EnableServices.ps1:Site Manager 用户在 Controller 上运行此 PowerShell 脚本以启用产品服务。
    数据库升级完成且产品服务启用后,Site Manager 会自动测试环境和配置,然后生成 HTML 报告。如果发现问题,可以还原数据库备份。解决问题后,可以再次升级数据库。
  5. 完成清单任务后,单击 完成升级。

替换 SQL Server Express 本地数据库

Microsoft SQL Server Express LocalDB 是 SQL Server Express 的一项功能,本地主机缓存独立使用此功能。本地主机缓存不需要 SQL Server Express 的任何组件,只需 SQL Server Express LocalDB。
将 Delivery Controller 升级到 Citrix Virtual Apps and Desktops 2203 LTSR 或更高版本时,支持的版本是 SQL Server Express LocalDB 2019 或 SQL Server Express LocalDB 2022。
更新 SQL Server Express LocalDB 的方法有两种:

自动更新

升级 Delivery Controller 时,元安装程序会自动安装最新兼容版本的 SQL Server Express LocalDB。元安装程序不会卸载旧的 LocalDB 版本。确认新版本正常运行后,您必须手动卸载旧版本。

验证新的 SQL Server Express LocalDB 安装

在卸载旧版本之前,请验证新的 SQL Server Express LocalDB 安装是否正常运行:
  1. 使用命令提示符导航到 SqlLocalDB 实例:
    • 对于 SQL LocalDB 2014:cd C:\Program Files\Microsoft SQL Server\120\Tools\Binn
    • 对于 SQL LocalDB 2017:cd C:\Program Files\Microsoft SQL Server\140\Tools\Binn
    • 对于 SQL LocalDB 2019:cd C:\Program Files\Microsoft SQL Server\150\Tools\Binn
    • 对于 SQL LocalDB 2022:cd C:\Program Files\Microsoft SQL Server\160\Tools\Binn
  2. 运行 SqlLocalDB i。
    您应该会看到两个文件:CitrixHA 和 MSSQLLocalDB。

手动更新

先决条件

  • Citrix 虚拟应用和桌面 安装介质。
  • Windows Sysinternals 工具箱中的 PsExec 工具。

过程

  1. 完成 Citrix Virtual Apps and Desktops 组件、数据库和站点的升级。(这些数据库升级会影响站点、监视和配置日志记录数据库。它们不影响使用 SQL Server Express LocalDB 的本地主机缓存数据库。)
  2. 登录到要更新 SQL Server Express LocalDB 的 Delivery Controller。
  3. 从 Microsoft 下载 PsExec 并将其放置在该 Delivery Controller 上易于访问的位置,例如 C:\Temp。
  4. 从 Windows 系统服务中停止 Delivery Controller 上的 Citrix High Availability Service。
  5. 在 Delivery Controller 上打开命令提示符,导航到 PsExec 所在的位置(例如 C:\Temp),然后运行以下命令以使用 Network Service 帐户提升命令提示符的权限:
    psexec -i -u "NT AUTHORITY\NETWORKSERVICE" cmd
  6. 运行 whoami 以确认命令提示符正在以 Network Service 帐户运行。您必须获得以下输出:nt authority\networkservice。
  7. 使用命令提示符导航到 SQL LocalDB 实例:
    • 如果从 SQL LocalDB 2014 升级:
      cd "C:\Program Files\Microsoft SQL Server\120\Tools\Binn"
    • 如果从 SQL LocalDB 2017 升级:
      cd "C:\Program Files\Microsoft SQL Server\140\Tools\Binn"
    • 如果从 SQL LocalDB 2019 升级:
      cd "C:\Program Files\Microsoft SQL Server\150\Tools\Binn"
  8. 停止并删除 SQL LocalDB 实例:CitrixHA。
    SqlLocalDB stop CitrixHA

    SqlLocalDB delete CitrixHA
  9. 从 Delivery Controller 中删除以下文件:
    C:\Windows\ServiceProfiles\NetworkService\HADatabaseName.*
    C:\Windows\ServiceProfiles\NetworkService\HADatabaseName_log.*
    C:\Windows\ServiceProfiles\NetworkService\HAImportDatabaseName.* (if exists)
    C:\Windows\ServiceProfiles\NetworkService\HAImportDatabaseName_log.* (if exists)
  10. 使用 Windows 本机程序删除功能从 Delivery Controller 卸载现有的 SQL LocalDB SQL Server Express。
  11. 卸载完成后,重新启动 Delivery Controller。
  12. 从 Windows 系统服务中停止 Delivery Controller 上的 Citrix High Availability Service。
  13. 将 Citrix Virtual Apps and Desktops 安装介质装载到您的 Delivery Controller。
  14. 以管理员身份在 Delivery Controller 上安装 SQL Server Express LocalDB 2022。
    1. 使用 Citrix Virtual Apps and Desktops 安装介质的 Support > SQLLocalDB 文件夹中的 sqllocaldb.msi 文件。例如,如果安装介质装载到 E drive 盘符,则该文件位于 E:\Support\SQLLocalDB\sqllocaldb.msi。需要重新启动才能完成安装。
    2. 新的 SQL LocalDB 必须位于 C:\Program Files\Microsoft SQL Server\160\Tools\Binn 中。
  15. 从 Windows 系统服务中启动 Delivery Controller 上的 Citrix High Availability Service。
  16. 在 Delivery Controller 的命令提示符中,导航到 C:\Program Files\Microsoft SQL Server\160\Tools\Binn 并运行 SqlLocalDB i 以确认已创建 CitrixHA 实例。返回的实例列表中必须包含 CitrixHA。
    注意:
    启动 Citrix High Availability Service 后,可能需要长达 15 分钟才能创建 CitrixHA 数据库。
  17. 确保已创建本地主机缓存数据库文件,以确认高可用性服务(辅助代理)可在需要时接管。
    1. 在 Delivery Controller 上,浏览到 C:\Windows\ServiceProfiles\NetworkService。
    2. 验证 HaDatabaseName.mdf 和 HaDatabaseName_log.ldf 已创建。
  18. 在其余 Delivery Controller 上重复这些步骤。