GeoSync
在此部分:
关于 GeoSync
GeoSync 提供了一种在个性化服务器 SQL Server 数据库之间同步用户数据和 Environment Manager 个性化配置的方法。这种方法使用户可以在多个地点访问其数据和设置,无论何时何地登录,均可享受一致的体验。在下次同步时,用户所做的任何更改都将同步回已发布内容中。
GeoSync 需要两个或多个个性化服务器数据库,一个用作发布服务器,另一个用作订阅服务器。发布服务器和订阅服务器通过 Environment Manager 安装时提供的 PowerShell Cmdlet 进行关联。然后,系统会将订阅服务器分配到 Environment Manager 控制台中的个性化组,用以确定同步了哪些数据库。
对用户数据所做的任何更改都会在发布服务器和订阅服务器之间同步,确保最新更改可供使用。用户数据发布是双向同步,而配置则是从发布服务器到订阅服务器的单向同步。这是为了实现集中的配置管理,让管理员能够在发布服务器数据库上进行任何配置更新,而后在下次计划同步时将其复制到订阅服务器中。
例如,某个组织的办事处遍布世界各地,每个办事处都有自己的个性化数据库。经常往来于各办事处的员工由个性化组管理,该组的 GeoSync 配置为每日同步。这样一来,这些员工的数据就可以保持最新状态,方便他们随时随地登录访问。
可以执行仅配置同步。对于在多个数据库中维护同一配置的组织,此功能非常有用。您可以选择仅同步配置。如果组织在多个数据库中使用同一配置,则可以使用仅配置同步。对配置的每一处更改都可以快速同步到所有必需的订阅服务器上,并且不会影响用户数据。
在连接到订阅服务器的 Environment Manager 控制台中查看时,发布服务器的同步配置项以紫色突出显示。无法在订阅服务器中编辑同步项。
对于个性化服务器数据库的高可用性或灾难恢复,我们建议您查看我们最新的“最佳实践”指南:DOC-46245
根据客户环境的不同,可能需要采取不同的设置步骤。下面是 GeoSync 支持的三种场景:
新订阅服务器数据库
对于新订阅服务器数据库,请按照下面几节中的步骤操作。如果您考虑在新订阅服务器上设置“仅本地”个性化组(订阅服务器上的个性化组不会由发布服务器上的 GeoSync 进行管理),则必须先成功配置 GeoSync 并同步订阅服务器与发布服务器,之后再创建这些个性化组。
现有订阅服务器数据库
如果您要在已经包含个性化配置和数据的订阅服务器上设置 GeoSync,则发布服务器上必须已经存在该配置和数据;订阅服务器要么是发布服务器的备份,要么是以前通过 SQL Server 合并复制同步的数据库。
对于上述场景,还需采取以下额外步骤。
注意:如果现有订阅服务器包含的配置或数据不在发布服务器上,那么在现有订阅服务器上设置 GeoSync 则会导致数据丢失,并且此版本暂不支持此功能。如果您想在远程订阅服务器上使用“仅本地”个性化组,则必须在完成 GeoSync 配置后再进行设置。
- 根据关联发布服务器和订阅服务器中的说明,关联发布服务器和订阅服务器。
- 在发布服务器的个性化控制台中,为个性化组配置 GeoSync。
-
从控制台运行初始同步。
如果在订阅服务器上识别到重复的 Windows 设置组 (WSG),请继续执行步骤 5。
如果没有识别到重复项,则配置完成,列出的 WSG 将阻止 GeoSync 同步。
- 记录当前的 ProfileCleanUpDelayDays 高级设置,然后在订阅服务器上更改为 -1。这就能够保证,如果后台服务运行日常工作,则不会尝试在 GeoSync 设置期间清理孤立 WSG
- 在订阅服务器上,删除识别的 WSG,但不要从订阅服务器上删除任何应用程序组。
-
重新运行步骤 3。
成功完成初始同步后,订阅服务器现在应该将 WSG 标识为已还原并与同步的个性化组相关联的副本
- 将 ProfileCleanUpDelayDays 设置还原为初始值。
卫星数据库作为 GeoSync 订阅服务器
此过程旨在应对下面这种情况:使用导入/导出功能从较大的主数据库导出部分或全部配置来创建个性化服务器数据库后,将其提供给少数用户远程使用。客户希望使用 GeoSync 自动同步主数据库和卫星数据库之间的用户子集,方法是让它们分别成为 GeoSync 发布服务器和订阅服务器。使用现有的合并复制脚本无法实现这一点,因为这些脚本会同步所有数据库。
有关此场景的完整详情,请参阅卫星数据库作为 GeoSync 订阅服务器。
关联发布服务器和订阅服务器
使用 ConfigureGeoSync.ps1 脚本,为发布服务器设置 GeoSync 并关联订阅服务器。此外,您也可以使用 Environment Manager 安装过程中提供的 cmdlet 来执行设置。某些操作只能使用 cmdlet 完成,例如向现有发布服务器添加新订阅者。
有关利用 GeoSync cmdlet 以及如何在生成的脚本中使用它们的详细信息,请参阅 GeoSync cmdlet。
SQL 默认语言日期
SQL 配置管理器帐户的默认日期格式必须与美国日期格式 (mm/dd/yyyy) 相匹配。
基本 SQL 脚本需要使用美国日期格式。其他日期格式可能导致 ConfigureGeoSync.ps1 脚本运行失败并显示错误消息。
要查看配置管理器帐户的语言设置,您可以选择 Microsoft SQL Server Management Studio > 安全性 > 登录 > [配置管理器帐户] > 右键单击属性 > 常规页面 > 默认语言。
如需详细信息,请参阅该文章。
SQL Express 用户:必须在执行以下流程之前,在 SQL Server 配置管理器中启用 TCP/IP 协议。此操作适用于发布服务器和订阅服务器。
- 以管理员身份运行 Windows PowerShell。
- 输入
cd "C:\Program Files\AppSense\Environment Manager\Personalization Server\Support"
设置脚本位置。 - 输入
.\ConfigureGeoSync.ps1
- 在提示时输入以下详细信息:
- 发布服务器\实例
- 发布服务器数据库名称
- 配置者帐户 - 如果使用 Windows 凭据,请包括域名并留空,以便使用当前登录的用户
- 发布服务器显示名称 - 可选项,留空以使用 SQL Server 名称
- 订阅服务器\实例
- 订阅服务器数据库名称
- 订阅服务器显示名称 - 可选项,留空以使用 SQL Server 名称
- 服务帐户 - 如果使用 Windows 凭据,请提供域名
如果成功,系统将显示配置已完成的确认消息。如有需要,可配置更多订阅服务器。
-
输入
Y
添加其他订阅服务器,或输入N
完成配置。
为个性化组配置 GeoSync
为个性化组选择订阅服务器,添加条件并配置同步类型。
-
选择个性化组。
如果 GeoSync 配置成功,您应该会看到 GeoSync 选项卡 - 您可能需要刷新 Environment Manager 配置。
- 选择 GeoSync 选项卡。
-
单击添加,然后从“显示名称”下拉列表中选择所需订阅服务器。
您可以选择所有已配置的订阅服务器。
- 根据需要,选择仅配置复选框。
-
您还可以选择向个性化组添加用户条件。
这样可以进一步设定同步目标,而无需考虑个性化组成员身份规则。
-
单击保存更改。
现在,已为个性化组成功设置 GeoSync。
管理同步和计划
配置、编辑和取消订阅服务器同步计划,或手动开始同步。
- 在 Environment Manager 控制台中,将发布服务器连接至个性化服务器。
-
选择管理 > GeoSync。
GeoSync 对话框随即显示可用的订阅服务器。已设置好 GeoSync 的任何个性化组都将列明在订阅服务器下。对话框还将显示同步状态、上一次和下一次计划同步的详细信息以及各个订阅服务器的同步类型。
- 单击订阅服务器省略号并选择所需选项:
- 同步 - 对所选订阅服务器的数据和配置启动即时同步。
- 仅配置同步 - 立即启动仅配置同步。
计划同步 - 设置开始时间以及同步是在选定时间运行一次还是每 24 小时运行一次。
如果订阅服务器已有计划,则可以选择编辑和取消选项。
备份和还原 GeoSync 数据库
与备份和还原未启用 GeoSync 的个性化服务器相比,备份和还原启用了 GeoSync 的个性化服务器数据库需要采取更多额外步骤。用于加密数据库中数据的数据库主密钥需要备份,具体视还原数据库时可能需要的条件而定。如果将启用了 GeoSync 的数据库还原到不同的 SQL Server 实例,则需要完全重置和配置。这是因为数据库在同步设置中使用了特定的服务器、实例和数据库名称。
建议同时备份和还原该发布服务器和所有订阅服务器数据库。
GeoSync AlwaysOn 支持
AlwaysOn 可用性组中的 GeoSync 发布服务器数据库可以设置为使用 New-EMPSPublisher cmdlet。请参阅 GeoSync-cmdlets.htm
cmdlet 包含两个特定参数:
• SecondaryReplicaServers - 允许您指定所有次要副本。指定后,cmdlet 会将主要副本的数据库主密钥凭据添加到所有指定的次要副本。这样就可以在故障转移后解码主密钥凭据。
•DatabaseMasterKeyPassword - 允许您指定用于加密凭据的数据库主密钥密码。
保留此密码非常重要,特别是对于以下情景:
•如果要在 GeoSync 初始设置后添加新副本,则必须使用原始数据库主密钥密码。
•删除 GeoSync 后,凭据仍会保留在数据库中。必须使用原始密码才能删除凭据。
备份 GeoSync 数据库
- 备份各个订阅服务器数据库。
- 备份发布服务器数据库。
- 数据库备份完成后,请使用以下方式将发布服务器的数据库主密钥备份到文件中:
- 使用 SQL Management Studio 连接至包含该发布服务器数据库的 SQL Server 实例。
- 针对该发布服务器数据库创建新的查询。
- 选择一个安全的密码来加密备份文件。还原数据库主密钥需要此密码,并且此密码需要接受复杂性检查。
运行
BACKUP MASTER KEY
SQL 命令,例如:BACKUP MASTER KEY TO FILE = 'c:\backup\DatabaseMasterKey_PersonalizationServer.bak
'ENCRYPTION BY PASSWORD = 'ruygn@KiHHas14m;%qG';
- 将数据库备份和数据库主密钥备份文件复制到安全的备份位置。
还原 GeoSync 数据库
如果要将个性化服务器数据库还原到不同的 SQL Server 实例,或者如果数据库在还原过程中已重命名,则需要执行几个额外的步骤。下面概述了针对这两种情况的操作流程。
还原到相同的 SQL Server 实例
如果要将所有发布服务器数据库和订阅服务器数据库还原到与备份相同的 SQL Server 实例,请使用此流程。
- 获取数据库备份和数据库主密钥备份文件。
- 从备份中还原各订阅服务器数据库。
- 从备份中还原发布服务器数据库。
- 还原之后,在发布服务器 SQL Server 实例上,通过以下方法启用 Service Broker:
- 使用 SQL Management Studio 连接至包含该发布服务器数据库的 SQL Server 实例。
- 针对该发布服务器数据库创建新的查询。
使用适合您情况的命令启用 Server Broker:
- 此命令需要对数据库的独占访问权限,与已还原数据库的任何其他连接都配有共享锁,即使空闲时也是如此,从而能够阻止 ALTER DATABASE 完成。为了完成此操作,请关闭与数据库的所有连接:
ALTER DATABASE [PersonalizationServerDatabaseName] SET ENABLE_BROKER
- 如果存在与数据库的活动连接,以下命令将回滚所有当前事务并关闭所有现有会话:
ALTER DATABASE [PersonalizationServerDatabaseName] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
- 以下命令将创建新的 Server Broker GUID。此命令将清除在队列中等待的任何消息:
ALTER DATABASE [PersonalizationServerDatabaseName] SET NEW_BROKER WITH ROLLBACK IMMEDIATE
- 此命令需要对数据库的独占访问权限,与已还原数据库的任何其他连接都配有共享锁,即使空闲时也是如此,从而能够阻止 ALTER DATABASE 完成。为了完成此操作,请关闭与数据库的所有连接:
- 通过以下方法从备份文件中还原数据库主密钥:
- 使用 SQL Management Studio 连接至包含该发布服务器数据库的 SQL Server 实例。
- 针对该发布服务器数据库创建新的查询。
运行以下针对发布服务器数据库的 RESTORE MASTER KEY SQL 命令。解密密码是用在 BACKUP MASTER KEY SQL 命令中的密码,例如:
RESTORE MASTER KEY
FROM FILE = 'c:\backup\DatabaseMasterKey_PersonalizationServer.bak'
DECRYPTION BY PASSWORD = 'ruygn@KiHHas14m;%qG'
ENCRYPTION BY PASSWORD = 'Gq%;m41saHHiK@ngyur'
FORCE;
SQL Server 会使用加密密码来重新加密数据库主密钥。无需记住此加密密码。
步骤 5不一定总是需要执行,如果自上次备份后未更改服务主密钥,则不需要执行此步骤。在这种情况下,运行此命令不会返回错误。相反,SQL Server 会报告:新旧主密钥相同。无需重新加密数据。
还原到不同的 SQL Server 实例
如果要将任何发布服务器数据库或订阅服务器数据库还原到不同的 SQL Server 实例,或者数据库名称已发生更改,请使用此流程。
- 执行还原到相同的 SQL Server 实例中的所有步骤。
- 对于发布服务器和每个订阅服务器数据库,调用 PowerShell cmdlet Reset-EMPSGeoSyncDatabase 从各数据库中删除旧的 GeoSync 设置。有关如何运行此命令的详细信息,请参阅 GeoSync cmdlet。
- 按照关联发布服务器和订阅服务器中的步骤设置 GeoSync。
- 按照为个性化组配置 GeoSync 中的步骤为各个性化组配置所需的订阅服务器。
- 按照管理同步和计划中的步骤配置 GeoSync 计划设置。