首批通过分布式安全可靠测评,为关键业务系统打造
查询任务步骤的详情
更新时间:2026-04-14 15:36:02
本文为您介绍 OceanBase 迁移服务(OceanBase Migration Service,OMS)提供的 OpenAPI:查询任务步骤的详情 DescribeProjectSteps。
功能说明
本接口用于查询数据迁移、数据同步或数据校验任务运行步骤的详情。
调用说明
接口约束
本接口适用于 OMS V4.1.0 及之后版本。
请求路径
POST /api/v2?Action=DescribeProjectSteps
请求参数
| 参数 | 类型 | 描述 |
|---|---|---|
| id | string | 数据迁移、数据同步或数据校验任务的 ID。 |
返回结果
| 参数 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否调用成功。 |
| errorDetail | object | 错误详情。 |
| code | string | 错误码。 |
| message | string | 描述信息。 |
| advice | string | 建议。 |
| requestId | string | 请求 ID。 |
| pageNumber | integer | 页序号,分页查询时生效。 |
| pageSize | integer | 页大小,分页查询时生效。 |
| totalCount | integer | 总数,分页查询时生效。 |
| cost | string | 请求耗时,单位为秒。 |
| data | string | 任务步骤的相关信息,具体包含的信息请参见《data 数据结构》。 |
data 数据结构
参数 类型 描述 order integer 步骤的运行顺序。 name string 步骤的名称。 description string 步骤的描述。 status string 步骤的运行状态。 extraInfo object 补充信息。具体包含的信息请参见《extraInfo 数据结构》。 startTime string 开始时间,以 UTC + 0 时区的时间格式展示。 finishTime string 结束时间,以 UTC + 0 时区的时间格式展示。 progress integer 步骤的运行进度。 stepInfo object 各步骤的运行详情。具体包含的信息请参见《stepInfo 数据结构》。 extraInfo 数据结构
参数 类型 描述 errorDetails array 错误详情。 errorCode string 错误码。 errorMsg string 错误消息。 errorParam object 错误相关的参数。 failedTime string 错误时间。 stepInfo 数据结构
不同步骤的
stepInfo参数返回不同的字段。TRANSFER_APP_SWITCH(正向切换)
参数 类型 描述 checkpointSampleTimestamp long 位点采集时间。格式为 Unix timestamp,单位为秒。 interactive boolean 是否需要用户确认执行。取值为 true,表示需要用户确认执行,后台不会自动推进该步骤的运行。INCR_TRANSFER(增量同步)和 REVERSE_INCR_TRANSFER(反向增量)
参数 类型 描述 incrTimestampCheckpoint long 位点时间。格式为 Unix timestamp,单位为秒。 checkpointSampleTimestamp long 位点采集时间。格式为 Unix timestamp,单位为秒。 enableIncrStatistics boolean 是否开启 DML/DDL 统计。 latestConflictTimestamp integer 最新冲突产生时间戳。 conflictDownloadTimestamps array 下载冲突日志的时间戳集合。 interactive boolean 是否需要用户确认执行。取值为 true,表示需要用户确认执行,后台不会自动推进该步骤的运行。当 Oracle 数据源作为源端或目标端,并且配置了通过 Kafka 获取增量数据时,
stepInfo参数增加以下返回字段。参数 类型 描述 dataCheckpoint string 数据的位点,用于计算增量数据延迟。例如, {\"topicName\":\"1742455659\"}。dataIncrTimestampCheckpoint long 数据的位点,用于计算增量数据延迟。例如,1742455659。 partitionCheckpoints array 每个 Kafka 分区的消息位点和数据位点。 ├─ partition string Kafka 分区的名称。 ├─ checkpoint long Kafka 分区消息位点。 ├─ dataCheckpoint long Kafka 分区数据位点。 示例如下:
{ "stepInfo": { "incrTimestampCheckpoint": 1745474572, "checkpointSampleTimestamp": 1745474775, "enableIncrStatistics": null, "dataCheckpoint": "{\"ogg_row_test\":\"1745467238\"}", "dataIncrTimestampCheckpoint": 1745467238, "partitionCheckpoints": [ { "partition": "ogg_row_test-1", "checkpoint": 1745474769, "dataCheckpoint": 1745474391 }, { "partition": "ogg_row_test-0", "checkpoint": 1745474769, "dataCheckpoint": 1745467453 } ] } }FULL_VERIFIER(全量校验)和 FULL_TRANSFER(全量迁移)
参数 类型 描述 processedRecords long 已完成迁移行数/实际行数。 capacity long 预估总行数。 srcRps long 源端读取 RPS,单位为记录数/秒。 srcRt string 源端读取 RT,单位为毫秒/条。 srcIops long 源端读取流量,单位为字节数/秒。 dstRps long 目标端读取/写入 RPS,单位为记录数/秒。 dstRt long 目标端读取/写入 RT,单位为毫秒/条。 dstIops long 目标端读取/写入流量,单位为字节数/秒。 srcRpsRef long 源端读取 RPS 的基准值。 dstRpsRef long 目标端读取/写入 RPS 的基准值。 dstRtRef long 目标端读取/写入 RT 基准值。 latestConflictTimestamp integer 最新冲突产生时间戳,全量迁移时生效。 conflictDownloadTimestamps array 下载冲突日志的时间戳集合,全量迁移时生效。 interactive boolean 是否需要用户确认执行。取值为 true,表示需要用户确认执行,后台不会自动推进该步骤的运行。
示例
请求示例
{
"id":"np_4w3r***"
}
返回示例
{
"success": true,
"errorDetail": null,
"code": null,
"message": null,
"advice": null,
"requestId": "3b1ad52a-****-****-bcf7-937e819",
"pageNumber": null,
"pageSize": null,
"totalCount": null,
"cost": "4 ms",
"data": [
{
"order": 1,
"name": "TRANSFER_PRECHECK",
"description": "预检查",
"status": "FINISHED",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:01:25",
"finishTime": "2023-07-17T23:01:35",
"progress": 100,
"stepInfo": null
},
{
"order": 2,
"name": "STRUCT_TRANSFER",
"description": "结构迁移",
"status": "FINISHED",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:03:02",
"finishTime": "2023-07-17T23:05:20",
"progress": 100,
"stepInfo": null
},
{
"order": 3,
"name": "TRANSFER_INCR_LOG_PULL",
"description": "同步增量日志拉取",
"status": "FINISHED",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:05:25",
"finishTime": "2023-07-17T23:06:03",
"progress": 100,
"stepInfo": null
},
{
"order": 4,
"name": "FULL_TRANSFER",
"description": "全量迁移",
"status": "FINISHED",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:07:15",
"finishTime": "2023-07-17T23:07:35",
"progress": 100,
"stepInfo": {
"processedRecords": 92198,
"capacity": 92198,
"srcRps": 140,
"srcRt": 7,
"srcIops": 40945,
"dstRps": 140,
"dstRt": 7,
"dstIops": 40945,
"srcRpsRef": 8000,
"srcRtRef": 1,
"dstRpsRef": 8000,
"dstRtRef": 1,
"srcIopsRef": 8388608,
"latestConflictRecordTime": 1743272855,
"conflictDownloadTimestamps": [1743272855,1743272859,1743272889]
}
},
{
"order": 5,
"name": "INDEX_TRANSFER",
"description": "索引迁移",
"status": "FINISHED",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:07:30",
"finishTime": "2023-07-17T23:07:40",
"progress": 100,
"stepInfo": null
},
{
"order": 6,
"name": "INCR_TRANSFER",
"description": "增量同步",
"status": "MONITORING",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": "2023-07-17T23:08:57",
"finishTime": "2023-07-17T23:14:34",
"progress": 100,
"stepInfo": {
"incrTimestampCheckpoint": 1689832976,
"checkpointSampleTimestamp": 1689832977,
"enableIncrStatistics": true
}
},
{
"order": 7,
"name": "FULL_VERIFIER",
"description": "全量校验",
"status": "INIT",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": null,
"finishTime": null,
"progress": 0,
"stepInfo": {
"processedRecords": null,
"capacity": null,
"srcRps": null,
"srcRt": null,
"srcIops": null,
"dstRps": null,
"dstRt": null,
"dstIops": null,
"srcRpsRef": null,
"srcRtRef": null,
"dstRpsRef": null,
"dstRtRef": null,
"srcIopsRef": null
}
},
{
"order": 8,
"name": "TRANSFER_APP_SWITCH",
"description": "正向切换",
"status": "INIT",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": null,
"finishTime": null,
"progress": 0,
"stepInfo": {
"checkpointSampleTimestamp": null
}
},
{
"order": 9,
"name": "REVERSE_INCR_TRANSFER",
"description": "反向增量",
"status": "INIT",
"extraInfo": {
"errorDetails": null,
"errorCode": null,
"errorMsg": null,
"errorParam": null,
"failedTime": null
},
"startTime": null,
"finishTime": null,
"progress": 0,
"stepInfo": null
}
]
}