暂停或终止同步
若要为您的应用禁用 Atlas Device Sync,您可以暂时停止或永久终止同步。您也可以在禁用 Device Sync 后重新启用同步。
如果需要暂停集群,可以暂时暂停Device Sync 。 暂停后,您可以重新启用,而不会重置Device Sync配置或丢失Device Sync元数据。
出于故障排除或想要更改 Device Sync 配置 ,您可以永久 终止 并 重新启用 Device Sync。
设备同步在 30 天未活动后自动暂停。
暂停同步
您可以将 Device Sync 暂停一段时间,而无需完全禁用。当暂停 Device Sync 时,Atlas 和应用程序之间的数据更改将停止同步。
暂停 Device Sync 会拒绝任何传入的客户端连接。这意味着暂停应用的 Device Sync 会停止同步所有客户端的更改。
您可以使用App Services API以编程方式暂停Device Sync。
获取身份验证令牌
对App Services Admin API的每个请求都必须包含来自MongoDB Cloud API的有效且当前的授权令牌,作为 Authorization
标头中的不记名令牌。
有关如何获取身份验证令牌的详细信息,请参阅获取身份验证令牌。
获取群组、应用和服务 ID
获取应用程序的群组和应用程序ID 。
获取 Sync 服务的服务ID 。 您可以使用adminListServices端点以编程方式获取所有服务。
或者,您可以在查看用户界面时从URL中提取群组 ID、应用程序 ID 和服务 ID。
Go配置了Device Sync的App Services App 。
Linked Data Sources在侧边栏中选择Manage 下的 。
选择 mongodb-atlas CLUSTER(集群层)。
浏览器工具栏中的URL现在应如下所示:
https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config
获取同步服务配置
向adminGetServiceConfig端点发送 GET请求以获取Device Sync服务配置。 这将返回一个类似于以下内容的服务配置对象:
{ "clusterId": "<MY-CLUSTER-ID>", "clusterName": "Cluster0", "clusterType": "atlas", "flexible_sync": { "state": "enabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false }, "groupName": "<MY-GROUP-NAME>", "orgName": "<MY-ORG-NAME>", "readPreference": "primary", "wireProtocolEnabled": false }
有关此端点返回的同步配置的详细信息,请参阅同步配置文件参考。
编辑同步服务配置
仅删除新JSON对象配置中的flexible_sync
部分。 此配置包含一个state
字段,反映应用程序同步协议的当前状态。 将此值设置为disabled
。 现在,它应该类似于一个JSON blob,如下所示:
{ "flexible_sync": { "state": "disabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false } }
更新Atlas上的配置
将更新的同步服务配置作为 PATCH请求中的有效负载发送到adminUpdateServiceConfig端点。
要从客户端端暂停Device Sync ,使用在会话期间根据情况暂停Device Sync的逻辑,请参阅您的首选 SDK:
暂停 Device Sync 后,您可以重新启用它。 暂停 Device Sync 会保留配置设置和所有 Device Sync 元数据,其中包含同步历史记录。 当您重新启用已暂停的 Device Sync 时,您的客户端可以正常重新连接。
终止同步
如果您已启用 Device Sync ,则在几种不同情况下可能必须终止并重新启用 Device Sync:
从共享层级 Atlas 集群升级到共享实例或专用实例
迁移到跨地区/云提供商分布的 Atlas 集群
升级到 NVMe Atlas 集群
由于不频繁使用,共享层级集群上的 Device Sync 同步会话暂停
应 MongoDB 支持部门的要求进行故障排除
在同步模式之间切换。 实例,如果要从基于分区的同步切换到 Flexible Sync
删除您在同步中使用过的collection。例如,如果您有一个存储和同步
Team
对象的Team
集合,然后删除该集合,则必须终止并重新启用 Sync。
警告
终止同步后恢复同步
当您终止并重新启用 Atlas Device Sync 时,客户端将无法再同步。您的客户端必须执行客户端重置处理程序才能恢复同步。此处理程序可以放弃或尝试恢复未同步的更改。
终止应用的 Device Sync,停止在设备之间同步数据。
确认要终止同步
在出现的模态窗口中,在文本输入框中键入“Terminate Sync”,然后单击Terminate Sync按钮。
如果您正在使用用户界面部署草稿,则必须部署草稿才能实际终止同步。
您现已终止 Device Sync。
您可以使用App Services API以编程方式终止Device Sync。
获取身份验证令牌
对App Services Admin API的每个请求都必须包含来自MongoDB Cloud API的有效且当前的授权令牌,作为Authorization
标头中的不记名令牌。
有关如何获取身份验证令牌的详细信息,请参阅获取身份验证令牌。
获取群组、应用和服务 ID
获取应用程序的群组和应用程序ID 。
获取 Sync 服务的服务ID 。 您可以使用adminListServices端点以编程方式获取所有服务。
或者,您可以在查看 UI 时从 URL 中提取群组 ID、应用程序 ID 和服务 ID:
Go配置了Device Sync的App Services App 。
Linked Data Sources在侧边栏中选择Manage 下的 。
选择 mongodb-atlas CLUSTER(集群层)。
浏览器工具栏中的URL现在应如下所示:
https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config
获取同步服务配置
向adminGetServiceConfig端点发送 GET请求以获取Device Sync服务配置。 这将返回一个类似于以下内容的服务配置对象:
{ "clusterId": "<MY-CLUSTER-ID>", "clusterName": "Cluster0", "clusterType": "atlas", "flexible_sync": { "state": "enabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false }, "groupName": "<MY-GROUP-NAME>", "orgName": "<MY-ORG-NAME>", "readPreference": "primary", "wireProtocolEnabled": false }
有关此端点返回的同步配置的详细信息,请参阅同步配置文件参考。
更新Atlas上的配置
将更新的同步服务配置作为 PATCH请求中的有效负载发送到adminUpdateServiceConfig端点。
终止 Device Sync 后,您可以重新启用它。 终止 Device Sync 会破坏配置设置和所有 Device Sync 元数据,其中包含同步历史记录。 重新启用同步需要您再次完成同步配置步骤。 之前已连接的客户端在执行客户端重置之前无法重新连接。
重新启用同步
暂停或终止 Device Sync 后,您可以重新启用同步。重新启用 Device Sync 会让您的应用再次开始将更改同步到 Atlas。重新启用 Device Sync 后,您的应用再次开始接受传入的客户端连接。
当暂停 Device Sync 时,App Services 会保留您的配置设置,您可以跳过 Configure Sync(配置同步)步骤。当终止 Device Sync 时,或者当 oplog 滚动到您暂停 Device Sync 的时间之后时,必须再次指定配置设置。
要重新启用 Device Sync,请按照“配置和启用 Atlas Device Sync ”指南中的步骤进行操作。
您可以使用App Services API以编程方式重新启用Device Sync。 此过程假设您已拥有集群的 Sync 配置,您可以使用该配置通过相同设置重新启用 Sync。
获取身份验证令牌
对App Services Admin API的每个请求都必须包含来自MongoDB Cloud API的有效且当前的授权令牌,作为Authorization
标头中的不记名令牌。
有关如何获取身份验证令牌的详细信息,请参阅获取身份验证令牌。
获取群组和应用 ID
获取应用程序的群组和应用程序ID 。
更新Atlas上的配置
将更新的同步服务配置作为 PATCH请求中的有效负载发送到adminUpdateServiceConfig端点。
从客户端连接
重新启用同步可启用传入客户端连接。 但是,在某些情况下,客户端应用代码可能需要执行客户端重置,客户端才能再次同步。
如果客户端之前已与 Device Sync 连接,然后您终止 Device Sync,那么您的代码必须处理客户端重置。终止应用的 Device Sync 会删除客户端重新连接所需要的 Device Sync 元数据。
这也适用于 Device Sync 暂停时间超过您为集群保留的oplog的应用程序。 例如,如果您仅为集群保留12小时的 oplog,并且暂停 Device Sync 的时间超过12小时,则必须终止并重新启用 Device Sync。
有关如何在客户端中执行客户端重置的信息,请参阅 SDK 文档: