管理订阅数据
如果您使用的是本地数据库,则可以使用 PowerShell cmdlet 管理商店的收藏夹。
清除订阅数据
部署中的每个商店都存在一个包含收藏夹数据的文件夹和数据存储。
- 停止 StoreFront 服务器上的 Citrix Subscriptions Store 服务。如果 Citrix Subscriptions Store 服务正在运行,则无法删除任何商店的订阅数据。
- 在 StoreFront 服务器上找到订阅存储文件夹:
C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_<StoreName> - 删除订阅存储文件夹的内容,但不要删除文件夹本身。
- 重新启动 StoreFront 服务器上的 Citrix Subscriptions Store 服务。
您可以使用以下 PowerShell 脚本清除商店的订阅数据。以管理员身份运行此 PowerShell 函数,该管理员具有停止或启动服务以及删除文件的权限。此 PowerShell 函数可实现与上述手动步骤相同的结果。
要成功运行 cmdlet,Citrix Subscriptions Store 服务必须在服务器上运行。
function Remove-SubscriptionData
{
[CmdletBinding()]
[Parameter(Mandatory=$False)][String]$Store = "Store"
$SubsService = "Citrix Subscriptions Store"
# Path to Subscription Data in StoreFront version 2.6 or later
$SubsPath = "C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Citrix\SubscriptionsStore\1__Citrix_$Store\*"
Stop-Service -displayname $SubsService
Remove-Item $SubsPath -Force -Verbose
Start-Service -displayname $SubsService
Get-Service -displayname $SubsService
}
Remove-SubscriptionData -Store "YourStore"
<!--NeedCopy-->
导出订阅数据
您可以使用 cmdlet Export-STFStoreSubscriptions 获取商店订阅数据的备份,该备份采用制表符分隔的 .txt 文件形式,例如:
$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Export-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
<!--NeedCopy-->
如果您正在管理多服务器部署,则可以在 StoreFront 服务器组中的任何服务器上运行此 PowerShell cmdlet。服务器组中的每个服务器都维护其对等服务器订阅数据的相同同步副本。如果您认为 StoreFront 服务器之间存在订阅同步问题,请从组中的所有服务器导出数据并进行比较以查看差异。
恢复订阅数据
使用 Restore-STFStoreSubscriptions 覆盖现有订阅数据。您可以使用之前使用 Export-STFStoreSubscriptions 创建的制表符分隔的 .txt 文件备份来恢复商店的订阅数据。
$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Restore-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
<!--NeedCopy-->
有关 Restore-STFStoreSubscriptions 的更多信息,请参阅 https://developer-docs.citrix.com/en-us/storefront-powershell-sdk/current-release/Restore-STFStoreSubscriptions/
在单个 StoreFront 服务器上恢复数据
在单服务器部署中,无需关闭 Subscriptions Store 服务。在恢复订阅数据之前,也无需清除现有订阅数据。
在 StoreFront 服务器组上恢复数据
要将订阅数据恢复到服务器组,需要执行以下步骤。
包含三个 StoreFront 服务器的示例服务器组部署。
- StoreFrontA
- StoreFrontB
- StoreFrontC
- 备份三台服务器中任何一台的现有订阅数据。
- 停止服务器 StoreFrontB 和 C 上的 Subscriptions Store 服务。此操作可防止服务器在更新 StoreFrontA 期间发送或接收订阅数据。
- 清除服务器 StoreFrontB 和 C 上的订阅数据。这可以防止恢复的订阅数据不匹配。
- 使用 Restore-STFStoreSubscriptions cmdlet 恢复 StoreFrontA 上的数据。无需停止 Subscriptions Store 服务,也无需清除 StoreFrontA 上的订阅数据(它将在恢复操作期间被覆盖)。
- 重新启动服务器 StoreFrontB 和 StoreFrontC 上的 Subscriptions Store 服务。然后,服务器可以从 StoreFrontA 接收数据副本。
- 等待所有服务器之间发生同步。所需时间取决于 StoreFrontA 上存在的记录数量。如果所有服务器都位于本地网络连接上,则同步通常会很快发生。通过 WAN 连接进行订阅同步可能需要更长时间。
- 从 StoreFrontB 和 C 导出数据以确认同步已完成,或查看商店订阅计数器。
导入订阅数据
当商店没有订阅数据时,请使用 Import-STFStoreSubscriptions。此 cmdlet 还允许将订阅数据从一个商店传输到另一个商店,或者在将订阅数据导入到新预配的 StoreFront 服务器时使用。
$StoreObject = Get-STFStoreService -SiteID 1 -VirtualPath "/citrix/<yourstore>"
Import-STFStoreSubscriptions -StoreService $StoreObject -FilePath "$env:USERPROFILE\Desktop\Subscriptions.txt"
<!--NeedCopy-->
有关 Import-STFStoreSubscriptions 的更多信息,请参阅 https://developer-docs.citrix.com/en-us/storefront-powershell-sdk/current-release/Import-STFStoreSubscriptions/
订阅数据文件详细信息
订阅数据文件是一个文本文件,每行包含一个用户订阅。每行都是一个制表符分隔的值序列:
<user-identifier> <resource-id> <subscription-id> <subscription-status> <property-name> <property-value> <property-name> <property-value> ...
其中:
-
<user-identifier>- 必需。标识用户的字符序列。此标识符是用户的 Windows 安全标识符。 -
<resource-id>- 必需。标识订阅资源的字符序列。 -
<subscription-id>- 必需。唯一标识订阅的字符序列。此值未使用(但是,数据文件中必须存在一个值)。 -
<subscription-status>- 必需。订阅的状态:已订阅或未订阅。 -
<property-name>和<property-value>- 可选。零个或多个属性名称/值对的序列。这些表示 StoreFront 客户端(通常是 Citrix Workspace 应用程序)与订阅关联的属性。具有多个值的属性由具有相同名称的多个名称/值对表示(例如,“… MyProp A MyProp B …”表示值为 A、B 的属性 MyProp)。
示例
S-0-0-00-0000000000-0000000000-0000000000-0000 XenApp.Excel 21EC2020-3AEA-4069-A2DD-08002B30309D Subscribed dazzle:position 1
StoreFront 服务器磁盘上的订阅数据大小
| 记录数 | 大小 (MB) |
|---|---|
| 0 | 6.02 |
| 1,000 | 7.02 |
| 10,000 | 40.00 |
| 100,000 | 219.00 |
| 200,000 | 358.00 |
| 500,000 | 784.00 |
| 800,000 | 1213.02 |
| 1,000,000 | 1597.15 |
| 1,300,000 | 1919.15 |
| 1,500,000 | 2205.15 |
| 2,000,000 | 2915.15 |
导入和导出 .txt 文件的大小
| 记录数 | 大小 (MB) |
|---|---|
| 0 | 0.00 |
| 1,000 | 0.13 |
| 10,000 | 1.30 |
| 100,000 | 12.80 |
| 200,000 | 25.60 |
| 500,000 | 64.10 |
| 800,000 | 102.00 |
| 1,000,000 | 128.00 |
| 1,300,000 | 166.00 |
| 1,500,000 | 192.00 |
| 1,700,000 | 218.00 |
| 2,000,000 | 256.00 |
商店订阅计数器
您可以使用 Microsoft Windows 性能监视器计数器(开始 > 运行 > perfmon)来显示服务器上的订阅记录总数或 StoreFront 服务器组之间同步的记录数。
使用 PowerShell 查看订阅计数器
Get-Counter -Counter "\Citrix Subscription Store(1__citrix_store)\Subscription Entries Count (including unpurged deleted records)"
Get-Counter -Counter "\Citrix Subscription Store Synchronization\Subscriptions Store Synchronizing"
Get-Counter -Counter "\Citrix Subscription Store Synchronization\Number Subscriptions Synchronized"
Get-Counter -Counter "\Citrix Subscription Store Synchronization\Number Subscriptions Transferred"
<!--NeedCopy-->