对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

progress

返回同步进程的更新状态或错误。

GET /api/v1/progress

progress端点返回更新状态或错误。

响应对象包含2顶级字段、 successprogress

success字段包含 progress 命令的状态。如果命令成功,值为 true;如果命令失败,值为 false

如果mongosync成功获取同步进程的状态,则所有响应字段都将包装在具有以下字段的顶级progress对象中:

字段
类型
说明

state

字符串

mongosync的当前状态。 有关可能状态的信息,请参阅状态描述。

canCommit

布尔

如果为 true,则表示提交请求成功。这也意味着:

  • 初始同步已完成,正在应用更改事件。

  • 嵌入式验证器处于适合提交的状态。

  • mongosync 和嵌入式验证器的延迟为 30 秒或更少。

如果您在调用 start 时将 buildIndexes 设立为 "afterDataCopy""excludeHashedAfterCopy"{canCommit: true} 也会指示索引构建已完成。

在版本1.21中进行了更改。:

canCommitfalse,当 mongosync 或嵌入式验证器报告延迟超过 30 秒时。

canWrite

布尔

如果true ,则表示允许在目标集群上进行写入。 当canWritefalse时,请勿写入目标集群。

索引验证将持续进行,直到提交完成。

indexBuilding

对象

如果您在调用 start 时将 buildIndexes设立为 afterDataCopyexcludeHashedAfterCopy,则会显示目标集群上索引构建的实时进度。此对象仅在“变更事件应用程序”阶段显示。

重要提示:由于 mongosync 首先为最大的集合创建索引,因此构建的索引百分比可能与所用时间的百分比不呈线性对应。

indexBuilding.indexesBuilt

整型

mongosync 已完成构建的索引数量。

indexBuilding.totalIndexesToBuild

整型

mongosync 需要构建的索引总数,包括已完成构建的索引。

indexBuilding.collectionsFinished

整型

mongosync 已为其完成索引构建的集合数量。

indexBuilding.collectionsTotal

整型

mongosync 需要为其构建索引的集合总数,包括已完成的集合。

info

字符串

提供有关同步进度的额外信息。 可能的info值包括:

  • "collection copy"

  • "change event application"

  • "waiting for commit to complete"

  • "commit completed"

lag

对象

按组件列出同步延迟。当 mongosync 处于 IDLEPAUSED 状态时,lag 对象为 null

1.21版本新增。:

lag.overallLagSeconds

整型

mongosync应用于目标集群的最新事件时间戳与源集群上的最新时间戳之间的时间差(以秒为单位)。在所有省/市/自治区均等于 lagTimeSeconds

1.21版本新增。:

lag.crudLagSeconds

整型

同步延迟的 CRUD 组件秒数。当 mongosync 尚未设置用于 CRUD 操作的源时间戳时,此字段为 null

1.21版本新增。:

lag.ddlLagSeconds

整型

DDL 组件同步延迟(以秒为单位)。当 DDL 应用程序被禁用(例如,当源服务器版本早于 6.0)或尚未应用任何 DDL 事件时,此字段为 null

1.21版本新增。:

lagTimeSeconds

整型

mongosync 1.21 中已弃用。改用 lag.overallLagSeconds。此字段可能会在未来版本中删除。

对于mongosync的此实例, mongosync应用于目标集群的最新事件时间戳与源集群上的最新时间戳之间的时间差(以秒为单位)。

mongosync 对源集群定期执行无操作写入,这可能会阻止lagTimeSeconds字段的值在mongosync提交迁移之前达到零。

由于源集群上持续无操作,即使源集群上没有实际写入,时间差通常比零大几秒。 当mongosync提交迁移时,时间差变为零。

从 1.9 版本开始,/progress 还会报告验证程序延迟。请参阅此表中的 verification.source.lagTimeSecondsverification.destination.lagTimeSeconds

totalEventsApplied

整型

mongosync实例已应用于目标集群的变更事件的大致数量。

此值可能无法准确表示事件总数,因为它不是持久化的,并且在计数中忽略了某些事件。

collectionCopy

对象

估计从collection复制的数据总量以及已复制到目标集群的数据量

collectionCopy .estimatedTotalBytes

整型

mongosync在collection的初始复制期间,所有实例要全局复制的估计字节总数。

mongosync 在集合复制开始之前计算此值。在集合复制过程中,此值仅在 estimatedCopiedBytes 超过此值的情况下变化,在这种情况下,mongosyncestimatedTotalBytes 提高到等于 estimatedCopiedBytes。集合复制完成后,estimatedTotalBytes 等于 estimatedCopiedBytes。此值是一个尽力估计值。

collectionCopy .estimatedCopiedBytes

整型

在初始集合复制过程中,此 mongosync 实例复制到目标集群的估计字节数。

要计算总估计进度以百分比表示:

  1. 为每个 mongosync 实例添加 estimatedCopiedBytes 值。

  2. 将结果除以 estimatedTotalBytes

  3. 将结果乘以 100。

这两个值都是尽力估计,可能无法准确反映实际迁移进度。

destination. pingLatencyMs

整型

提供从 mongosync 到目标集群的最新已知网络探测(ping)延迟(以毫秒为单位)。当复制仍在进行中并在响应中报告时,此字段每 30 秒刷新一次。如果延迟小于 1 毫秒或 mongosync 尚未执行网络探测(ping) ,则此字段不存在。如果上次网络探测(ping)尝试失败,则此字段的值为 -1

1.17版本新增。:

directionMapping

对象

描述同步的映射方向,即源集群和目标集群。

directionMapping .Source

字符串

源集群。 以<cluster name>: <host>:<port>形式返回。

directionMapping .Destination

字符串

目标集群。 以<cluster name>: <host>:<port>形式返回。

estimatedOplogTimeRemaining

字符串

显示源集群上可用oplog时间的估计值。可能的值包括持续时间(示例"12 hours""4 hours""45 minutes")以及 "more than 72 hours""less than 15 minutes""not checked yet" 等特殊情况。

mongosyncestimatedOplogTimeRemaining 计算为源集群上最早的可用oplog条目与 mongosync 仍需成功完成的最早oplog条目之间的时间窗口。mongosync 每五分钟更新一次该值。

重要提示:如果增加源集群上的oplog大小,estimatedOplogTimeRemaining 可能不会立即增加。当 mongosync 处理源oplog时,可用oplog window通常会增加。

mongosync 仅在检查oplog时间时报告 estimatedOplogTimeRemainingmongosync 仅当处于 RUNNING 状态时且仅在 /progress 端点返回 canWrite=true 之前才包含此字段。

1.19版本新增。:

estimatedSecondsToCEACatchup

整型

变更事件应用程序 (CEA) 阶段的预计剩余时间(以秒为单位),基于 lagTimeSeconds 在最近时间间隔内减少的数量。

/progress 如果 mongosync 不在 CEA 中,或者 lagTimeSeconds 在最近的时间间隔内增加或保持不变,则不报告 estimatedSecondsToCEACatchup。在这种情况下,请等待 30 分钟,然后重试。

1.14版本新增。:

mongosyncID

字符串

mongosync 实例的标识符string 。

1.3版本新增。:

coordinatorID

字符串

协调器实例的标识符string 。

  • mongosync由另一个实例协调时,此字段显示协调器实例的标识符字符串。

  • mongosync为协调器或单独运行时,该字段返回与其mongosyncID字段相同的值。

  • mongosync启动时,此字段会返回null ,直到mongosync识别出协调器。

1.3版本新增。:

source. pingLatencyMs

整型

提供从 mongosync 到源集群的最新已知网络探测(ping)延迟(以毫秒为单位)。当复制仍在进行中并在响应中报告时,此字段每 30 秒刷新一次。如果延迟小于 1 毫秒或 mongosync 尚未执行网络探测(ping) ,则此字段不存在。如果上次网络探测(ping)尝试失败,则此字段的值为 -1

1.17版本新增。:

verification

文档

提供有关嵌入式验证程序执行的验证检查的阶段和进度的信息。

1.9版本新增。:

verification.source

文档

提供有关在源集群上运行的验证检查的阶段和进度的信息。

1.9版本新增。:

verification.source. estimatedDocumentCount

整型

源集群上的估计文档数。

1.9版本新增。:

verification.source. hashedDocumentCount

整型

源集群上验证者哈希的文档数量。

1.9版本新增。:

verification.source. lagTimeSeconds

整型

上次对源集群执行验证检查后的时间(以秒为单位)。

1.9版本新增。:

verification.source. phase

字符串

源集群上验证进程的当前阶段。这可以是以下三个值之一:

  • "not started":验证程序尚未为此集群启动任何初始集合扫描。

  • "initial hashing":验证程序正在对集群中的至少一个集合进行初始扫描。

  • "stream hashing":验证程序已完成对集群的初始扫描,现在正在跟踪其变更流。

如果验证者需要重新扫描集合,则即使终结点之前报告为 "stream hashing" 阶段,验证者也可以返回到 "initial hashing" 阶段。

1.9版本新增。:

verification.source. scannedCollectionCount

整型

源集群上的嵌入式验证程序扫描的集合数量。

1.9版本新增。:

verification.source. totalCollectionCount

整型

源集群上要包含在验证检查中的集合数量。

verification.destination

文档

提供有关在目标集群上运行的验证检查的阶段和进度的信息。

1.9版本新增。:

verification.destination. estimatedDocumentCount

整型

目标集群上的估计文档数。

1.9版本新增。:

verification.destination. hashedDocumentCount

整型

目标集群上验证者哈希的文档数量。

1.9版本新增。:

verification.destination. lagTimeSeconds

整型

自上次对目标集群执行验证检查以来的时间(以秒为单位)。

1.9版本新增。:

verification.destination. phase

字符串

目标集群上验证进程的当前阶段。这可以是以下三个值之一:

  • "not started":验证程序尚未为此集群启动任何初始集合扫描。

  • "initial hashing":验证程序正在对集群中的至少一个集合进行初始扫描。

  • "stream hashing":验证程序已完成对集群的初始扫描,现在正在跟踪其变更流。

如果验证者需要重新扫描集合,则即使终结点之前报告为 "stream hashing" 阶段,验证者也可以返回到 "initial hashing" 阶段。

1.9版本新增。:

verification.destination. scannedCollectionCount

整型

目标集群上的嵌入式验证程序扫描的集合数量。

1.9版本新增。:

verification.destination. totalCollectionCount

整型

目标集群上要包含在验证检查中的集合数量。

1.9版本新增。:

warnings

字符串数组

mongosync 检测到的警告消息。如果 mongosync 未检测到警告,则会忽略此字段。

如果oplog的估计剩余时间非常短,mongosync 会添加一条描述问题的警告并提供文档链接。示例:

"warnings": [
"The amount of available oplog on the source cluster is too small for mongosync to complete successfully.
For more details, see https://www.mongodb.com/zh-cn/docs/cluster-to-cluster-sync/current/reference/oplog-sizing/."
]

有关更多详细信息,请参阅oplog大小调整。

如果 mongosync 阻止用户在源集群上写入,mongosync 则会向 warnings字段添加警告。要学习;了解更多信息,请参阅写入阻塞

1.19版本新增。:

如果mongosync遇到错误, progress端点将返回以下字段:

字段
类型
说明

success

布尔

progress命令的状态。 如果命令成功,值为true ;如果命令失败,值为false

error

字符串

错误类型。

errorDescription

字符串

错误的详细描述。

  • mongosync处于IDLE状态时,除statecanCommit之外的所有输出字段均为null

  • mongosync处于PAUSED状态时,lag对象为null,并且已弃用的 lagTimeSeconds 字段为 null

  • mongosync 处于 INITIALIZING 状态时,mongosync 会拒绝 /start 请求。初始化完成后,mongosync 会返回 IDLE 并接受 /start 请求。

    如果 mongosync 在崩溃后恢复或重新启动,则初始化完成后,/progress 响应将返回崩溃前的 state

  • 端点不会自动刷新。 要获取更新后的状态,请再次调用progress端点。

  • /progressmongosync到达集合复制阶段之前调用 会为0 返回estimatedCopiedBytes ,并为 返回 。1estimatedTotalBytes

  • 在集合复制过程中,仅当 estimatedCopiedBytes 超过 estimatedTotalBytes 时, 才会变化。在该情况下,mongosync 会将 estimatedTotalBytes 提高到等于 estimatedCopiedBytes

  • 在集合复制结束时,estimatedTotalBytes 等于 estimatedCopiedBytesmongosync 使用复制的总字节数作为单一信息源。这两个值都是尽力估计值。

mongosync 不保护progress端点。 但是,默认情况下,该 API 仅绑定到本地主机,不接受来自其他来源的调用。 此外, progress调用不会公开连接档案或用户数据。

以下示例返回同步进程的状态。

curl localhost:27182/api/v1/progress -XGET
{
"progress":
{
"state":"RUNNING",
"canCommit":true,
"canWrite":false,
"info":"change event application",
"lag": {
"overallLagSeconds": 0,
"crudLagSeconds": 0,
"ddlLagSeconds": null
},
"lagTimeSeconds":0,
"collectionCopy":
{
"estimatedTotalBytes":694,
"estimatedCopiedBytes":694
},
"directionMapping":
{
"Source":"cluster0: localhost:27017",
"Destination":"cluster1: localhost:27018"
},
"source":
{
"pingLatencyMs":250
},
"destination":
{
"pingLatencyMs":-1
},
"verification":
{
"source":
{
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
},
"destination": {
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
}
}
},
"success": true
}