首批通过分布式安全可靠测评,为关键业务系统打造
查询项目的详情
更新时间:2024-09-12 14:15:42
本文为您介绍 OceanBase 迁移服务(OceanBase Migration Service,OMS)提供的 OpenAPI:查询项目的详情 DescribeProject。
功能说明
本接口用于查询数据迁移或数据同步项目的项目详情。
调用说明
接口约束
本接口适用于 OMS 4.1.0 及以上版本。
请求路径
POST /api/v2?Action=DescribeProject
请求参数
| 参数 | 类型 | 描述 |
|---|---|---|
| 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 数据结构
参数 类型 描述 id string 项目的 ID。 type string 项目的类型,包括 MIGRATION(表示数据迁移项目)和SYNC(表示数据同步项目)。name string 项目的名称,不能包含空格。 labels object [] 标签的集合。 ├─ id string 标签的 ID。 ├─ name string 标签的名称。 owner string 项目的 Owner。 importance string 项目的告警等级,包括 HIGH、MEDIUM、LOW和IGNORE。status string 项目的状态。 gmtCreate string 项目的创建时间,以 UTC + 0 时区的时间格式展示。 gmtModified string 项目的更新时间,以 UTC + 0 时区的时间格式展示。 gmtStart string 项目的开启运行时间。 gmtFinish string 项目的结束运行时间。 destConnId string 项目的连接信息 ID。 isMerging boolean 项目是否处于合并中。 isModifying boolean 项目是否处于修改中。 isSubProject boolean 是否为子项目。 sourceEndpointType string 源端数据源的类型。 sinkEndpointType string 目标端数据源的类型。 transferMapping object 传输对象及其映射关系。 ├─ mode string 传输对象的映射模式,包括 SPECIFIC(表示指定对象)和WILDCARD(表示匹配规则)。├─ databases object [] 数据库对象列表。具体包含的信息请参见《databases/databasesBlack 数据结构》。 ├─ databasesBlack object [] 匹配规则模式:数据库对象黑名单列表。具体包含的信息请参见《databases/databasesBlack 数据结构》。 ├─ tableAndViewWhiteList array 匹配规则模式:表和视图的通配白名单列表。 ├─ tableAndViewBlackList array 匹配规则模式:表和视图的通配黑名单列表。 commonTransferConfig object 通用的传输配置。 ├─ tableCategory string 传输的表类型。包括 ALL(所有表)、WITH_UNIQUE_ROW_ID(有唯一行标识的表)和 WITHOUT_UNIQUE_ROW_ID(无唯一行标识的表),默认值为 ALL。 ├─ activeActive boolean 是否为容灾双活场景。 ├─ mqSerializerType string 投递至消息队列时,数据 JSON 序列化类型。包括 DEFAULT、CANAL、DATAWORKS_V2、SHAREPLEX、DEFAULT_WITH_SCHEMA、 DEBEZIUM、DEBEZIUMFLATTEN 和 DEBEZIUMSMT。 ├─ mqPartitionMode string 投递至消息队列时,分区路由方式。包括 ONE(指定分区投递)、HASH(根据主键/分片列值进行 HASH 分区投递、TABLE(根据库表名进行 HASH 分区投递)。 ├─ mqPartition integer 当 partitionMode为ONE时,该参数表示投递的分区在当前 topic 下的位置。├─ datahubTopicType string 投递至消息队列 DataHub 时,指定 Topic 的类型。类型包括 TUPLE和BLOB。├─ rocketMqProducerGroup string 指定生产组名,仅目标端为 RocketMQ 时生效。默认值为 OMS。 ├─ rocketMqMsgTags string 设置消息 tag(目标端为 RocketMQ 时生效)。默认 default->default_tag,即值为 default时,会默认添加一个_tag的后缀。├─ rocketMqEnableMsgTrace boolean 是否开启消息追踪,仅目标端为 RocketMQ 时生效。 ├─ rocketMqSendMsgTimeout long 设置消息投递超时时间,仅目标端为 RocketMQ 时生效。 ├─ dataWorksBusinessName string 业务系统标识。 enableStructTransfer boolean 是否允许结构传输。 structTransferConfig object 结构传输的配置。 ├─ byteCharConvertStrategy string byte/char 转换方案,包括 IGNORE_BYTE_IF_BYTE_USED、FORCE_CHAR_IF_BYTE_USED、EXPAND_LEN_IF_BYTE_USED和DO_NOTHING_IF_BYTE_USED(默认值)。├─ deferIndexCreation boolean 是否允许索引后置,默认值为不允许。 enableFullTransfer boolean 是否启用全量传输。 enableFullVerify boolean 是否启用全量校验。 fullTransferConfig object 全量传输的配置。 ├─ nonePkUkTruncateDstTable boolean 处理源端无唯一索引表的全量迁移时,是否清空目标表。 ├─ allowDestTableNotEmpty string 目标端表对象存在记录时处理策略,包括 忽略 和 停止迁移。 - 设置为 true 时,表示选择忽略:当目标端表对象存在数据时,OMS 将采用忽略或者覆盖(仅目标端为 MySQL 数据库或 OceanBase 数据库 MySQL 租户时支持)的策略进行数据写入。
注意
选择 忽略,全量校验将使用 IN 模式拉取数据,无法校验目标端存在源端没有的数据的场景,并且校验性能会有一定程度降级。
- 设置为 false 时,表示选停止迁移:当目标端表对象存在数据时,全量迁移会报错不允许迁移,请处理好目标端数据后再继续迁移。
注意
如果出错后单击恢复,OMS 将忽略该配置选项,继续迁移表数据,请谨慎操作。
├─ fullTransferSpeedMode string 全量迁移并发速度,包括 STEADY、NORMAL 和 FAST。 ├─ fullVerifySpeedMode string 全量校验并发速度,包括 STEADY、NORMAL 和 FAST。 enableIncrTransfer boolean 是否启用增量同步。 enableIncrVerify boolean 是否启用增量校验。 enableReverseIncrTransfer boolean 是否启用反向增量同步。 incrTransferConfig object 增量同步的配置。 ├─ startTimestamp string 增量同步起始位点。仅启用增量同步但未启用全量传输时,支持设置该参数。 ├─ recordTypeWhiteList array 有增量同步阶段时,同步的增量数据类型。 ├─ storeLogKeptHour integer 有增量同步阶段且增量日志拉取组件为 Store 时,日志的保存时间。单位为小时,默认 7 天,最长支持 365 天。 ├─ enableSequencingWithinTxn boolean 有增量同步阶段且增量日志拉取组件为 Store 时,是否开启事务内序号编排。 ├─ incrSyncConcurrency integer 增量同步的线程数,默认值为 64。 ├─ enableIncrSyncStatistics boolean 是否开启增量记录(DML、DDL)统计。 sourceConnectInfo object 源端节点的连接信息。 ├─ id string 连接信息的 ID。 ├─ endpointName string 终端节点的名称。 ├─ endpointId string 终端节点的 ID。 ├─ endpointSide string 终端节点的类型,包括 source(源端)和dest(目标端)。├─ dbEngine string 终端节点的数据库引擎。 ├─ connectionInfo string 终端节点的连接信息。 ├─ username string 连接用户名。 ├─ version string 数据库的版本。 ├─ timezone string 数据库的时区。 ├─ charset string 字符编码。 ├─ nlsLengthSemantics string nlsLengthSemantics 属性,仅针对 Oracle 和 OceanBase 数据库 Oracle 租户数据源。 ├─ operatingSystem string 操作系统(OceanBase 数据库无该参数)。 ├─ region string 地域。 ├─ ocpName string OCP 的名称。 ├─ connExtraAttributes Object 连接额外属性。具体返回字段请参见《附录》模块的内容。 ├─ owner string Owner。 ├─ host string IP 地址。 ├─ port integer 端口。 sinkConnectInfo object 目标端节点的连接信息。 ├─ id string 连接信息的 ID。 ├─ endpointName string 终端节点的名称。 ├─ endpointId string 终端节点的 ID。 ├─ endpointSide string 终端节点的类型,包括 source(源端)和dest(目标端)。├─ dbEngine string 终端节点的数据库引擎。 ├─ connectionInfo string 终端节点的连接信息。 ├─ username string 连接用户名。 ├─ version string 数据库的版本。 ├─ timezone string 数据库的时区。 ├─ charset string 字符编码。 ├─ nlsLengthSemantics string nlsLengthSemantics 属性,仅针对 Oracle 和 OceanBase 数据库 Oracle 租户数据源。 ├─ operatingSystem string 操作系统(OceanBase 数据库无该参数)。 ├─ region string 地域。 ├─ ocpName string OCP 的名称。 ├─ connExtraAttributes Object 连接额外属性。具体返回字段请参见《附录》模块的内容。 ├─ owner string Owner。 ├─ host string IP 地址。 ├─ port integer 端口。 steps object [] 步骤列表。 ├─ order integer 步骤的运行顺序。 ├─ name string 步骤的名称。 ├─ description string 步骤的描述。 ├─ status string 步骤的运行状态。 ├─ extraInfo object 补充信息。具体包含的信息请参见《extraInfo 数据结构》。 ├─ startTime string 开始时间,以 UTC + 0 时区的时间格式展示。 ├─ finishTime string 结束时间,以 UTC + 0 时区的时间格式展示。 ├─ progress integer 步骤的运行进度。 ├─ stepInfo object 各步骤的运行详情。 alarmStats object 告警统计信息。 ├─ target string 被告警的目标。 ├─ alarming boolean 是否正在告警。 ├─ recentlyTriggerCount integer 最近告警消息的总数量。 ├─ ruleToRecentlyTriggerCount map 分规则最近告警消息的数量。 ├─ alarmContent string 最近告警消息的内容。 - 设置为 true 时,表示选择忽略:当目标端表对象存在数据时,OMS 将采用忽略或者覆盖(仅目标端为 MySQL 数据库或 OceanBase 数据库 MySQL 租户时支持)的策略进行数据写入。
databases/databasesBlack 数据结构
参数 类型 描述 mappedName string 目标端数据库的名称。 name string 源端数据库的名称。 id string 数据库的 ID。 tables array 当前数据库中传输表对象的配置列表。 Mode为WILDCARD时,该参数表示具体黑名单或白名单的配置,表和视图共用。├─ mappedName string 表的映射名称。 ├─ name string 表的名称。 ├─ id string 表的 ID。 ├─ whereClause string 通过标准的 SQL 语句中的 WHERE子句,用于配置行过滤。├─ filterColumns array 过滤列集合。 ├─ shardColumns array 分片列集合。 ├─ columns object [] 具体包含的信息请参见《columns 数据结构》。 views array 当前数据库中传输视图对象的配置列表。 ├─ mappedName string 视图的映射名称。 ├─ name string 视图的名称。 ├─ id string 视图的 ID。 ├─ whereClause string 标准的 SQL 语句中的 WHERE子句,用于配置行过滤。├─ filterColumns array 过滤列集合。 ├─ shardColumns array 分片列集合。 ├─ columns object [] 待传输列的列表。具体包含的信息请参见《columns 数据结构》。 specificTables array 具体表对象的配置列表。 mode为WILDCARD时,该参数表示具体表对象的重命名、行过滤配置。├─ mappedName string 表的映射名称。 ├─ name string 表的名称。 ├─ id string 表的 ID。 ├─ whereClause string 通过标准的 SQL 语句中的 WHERE子句,用于配置行过滤。├─ filterColumns array 过滤列集合。 ├─ shardColumns array 分片列集合。 ├─ columns object [] 待传输列的列表。具体包含的信息请参见《columns 数据结构》。 specificViews array 具体视图对象的配置列表。 mode为WILDCARD时,该参数表示具体视图对象的重命名配置。├─ mappedName string 视图的映射名称。 ├─ name string 视图的名称。 ├─ id string 视图的 ID。 ├─ whereClause string 标准的 SQL 语句中的 WHERE子句,用于配置行过滤。├─ filterColumns array 过滤列集合。 ├─ shardColumns array 分片列集合。 ├─ columns array 待传输列的列表。具体包含的信息请参见《columns 数据结构》。 columns 数据结构
参数 类型 描述 columnName string 列的名称。 mappedName string 列的映射名称。 position integer 列的位置。 columnType string 列的类型。 recordFieldType string 列类型的引申。 rawColumnType string 数据库记录的列类型的原始字符串。 columnKey string 索引的类型。 nullable boolean 是否可以为空。 defaultValue string 默认值。 dataLength integer 列的长度。 dataPrecision integer 列的精度。 dataScale integer 小数点。 encoding string 列的字符编码。 columnComment string 列的注释。 isGenerateField boolean 是否为隐藏列。 extraInfo 数据结构
参数 类型 描述 errorDetails array 错误详情。 errorCode string 错误码。 errorMsg string 错误消息。 errorParam object 错误相关的参数。 failedTime string 错误时间。
示例
请求示例
{
"id":"np_4wh****"
}
返回示例
{
"success":true,
"errorDetail":null,
"code":null,
"message":null,
"advice":null,
"requestId":"a7b57****",
"pageNumber":null,
"pageSize":null,
"totalCount":null,
"cost":"27 ms",
"data":[
{
"id":"np_4w****",
"type":"MIGRATION",
"name":"oms41_mig***",
"labels":null,
"owner":"oms_api_t***",
"importance":"MEDIUM",
"status":"RUNNING",
"gmtCreate":"2023-07-13T03:59:15",
"gmtModified":"2023-07-13T10:12:44",
"gmtStart":"2023-07-13T06:47:35",
"gmtFinish":null,
"destConnId":null,
"isMerging":false,
"isModifying":false,
"isSubProject":false,
"sourceEndpointType":"DB2_LUW",
"sinkEndpointType":"OB_MYSQL",
"transferMapping":{
"mode":"SPECIFIC",
"databases":[
{
"mappedName":"tion12***20obmysql2",
"name":"GRATION129****",
"id":null,
"tables":[
{
"mappedName":"TEST_MA***",
"name":"TEST_M***",
"id":null,
"whereClause":null,
"filterColumns":null,
"shardColumns":null,
"columns":null
}
],
"views":null,
"specificTables":null,
"specificViews":null
}
],
"databasesBlack":null,
"tableAndViewWhiteList":null,
"tableAndViewBlackList":null
},
"commonTransferConfig":{
"tableCategory":null,
"activeActive":false,
"mqSerializerType":null,
"mqPartitionMode":null,
"mqPartition":0,
"datahubTopicType":null,
"rocketMqProducerGroup":null,
"rocketMqMsgTags":null,
"rocketMqEnableMsgTrace":null,
"rocketMqSendMsgTimeout":null,
"dataWorksBusinessName":null
},
"enableStructTransfer":true,
"structTransferConfig":{
"byteCharConvertStrategy":"DO_NOTHING_IF_BYTE_USED",
"deferIndexCreation":true
},
"enableFullTransfer":true,
"enableFullVerify":true,
"fullTransferConfig":{
"nonePkUkTruncateDstTable":null,
"allowDestTableNotEmpty":true,
"fullTransferSpeedMode":"NORMAL",
"fullVerifySpeedMode":"NORMAL"
},
"enableIncrTransfer":true,
"enableIncrVerify":false,
"enableReverseIncrTransfer":true,
"incrTransferConfig":{
"startTimestamp":1689201369,
"recordTypeWhiteList":[
"INSERT",
"DELETE",
"UPDATE"
],
"storeLogKeptHour":120,
"enableSequencingWithinTxn":null,
"incrSyncConcurrency":null,
"enableIncrSyncStatistics":null
},
"sourceConnectInfo":{
"id":"c_4w1qs****",
"endpointName":"GRATION12948*****",
"endpointId":"e_4w1q****",
"endpointSide":null,
"dbEngine":"DB2_LUW_PUBLIC",
"connectionInfo":null,
"username":"db2i***",
"version":"11.5.0.0",
"timezone":"+08:00",
"charset":"UTF8",
"nlsLengthSemantics":null,
"operatingSystem":"Linux",
"region":"cn-anhui",
"ocpName":"",
"connExtraAttributes":null,
"owner":"oms_api_t***",
"host":"xxx.xxx.xxx.1",
"port":"2883"
},
"sinkConnectInfo":{
"id":"c_4w1qs***",
"endpointName":"tion1294820obmysq****",
"endpointId":"e_4w1qr2***",
"endpointSide":null,
"dbEngine":"OB_MYSQL_PUBLIC",
"connectionInfo":null,
"username":"oms2027obmysql@oms_***",
"version":"2.2.77",
"timezone":"+08:00",
"charset":"utf8mb4",
"nlsLengthSemantics":null,
"operatingSystem":null,
"region":"cn-anhui",
"ocpName":"107",
"connExtraAttributes":null,
"owner":"oms_api_t***",
"host":"xxx.xxx.xxx.4",
"port":"2883"
},
"steps":[
{
"order":1,
"name":"TRANSFER_PRECHECK",
"description":"预检查",
"status":"FINISHED",
"extraInfo":{
"errorDetails":null,
"errorCode":null,
"errorMsg":null,
"errorParam":null,
"failedTime":null
},
"startTime":"2023-07-12T22:33:42",
"finishTime":"2023-07-12T22:33:48",
"progress":100,
"stepInfo":null
},
{
"order":2,
"name":"STRUCT_TRANSFER",
"description":"结构迁移",
"status":"FINISHED",
"extraInfo":{
"errorDetails":null,
"errorCode":null,
"errorMsg":null,
"errorParam":null,
"failedTime":"2023-07-12T22:35:48.881"
},
"startTime":"2023-07-12T22:35:24",
"finishTime":"2023-07-12T22:36:04",
"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-12T22:41:20",
"finishTime":"2023-07-12T22:46:57",
"progress":99,
"stepInfo":{
"incrTimestampCheckpoint":1689213946,
"checkpointSampleTimestamp":1689214358,
"enableIncrStatistics":true
}
}
],
"extraInfo":null,
"alarmStats":{
"target":"np_4w1q****",
"alarming":false,
"recentlyTriggerCount":null,
"ruleToRecentlyTriggerCount":null,
"alarmContent":null
}
}
]
}
附录
Kafka
{
"connExtraAttributes":{
"endpoint":"xxx.xxx.xxx.1:2883",
"username":null,
"enableSSL":null,
"enableSASL":null,
"saslMechanism":null,
"disableIdentificationAlgorithm":false
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| endpoint | string | 服务地址。 |
| username | string | 用户名。当您选择认证方式为 PLAIN、SCRAM-SHA-256 和 SCRAM-SHA-512 时,该参数必填。 |
| enableSSL | boolean | 是否开启 SSL 认证。如果开启,则需要上传授信证书。 |
| enableSASL | boolean | 是否开启 SASL 认证。 |
| saslMechanism | KafkaSaslMechanisnEnum | 加密方式,包括 PLAIN、SCRAM-SHA-256、SCRAM-SHA-512 和 KERBEROS。 |
| disableIdentificationAlgorithm | boolean | SSL 加密时,是否开启主机名验证。 |
DataHub
{
"connExtraAttributes":{
"endpoint":"xxx.xxx.xxx.1:2883",
"project":"detx***"
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| endpoint | string | 服务地址。 |
| project | string | 项目的名称。 |
RocketMQ
{
"connExtraAttributes":{
"endpoint":"xxx.xxx.xxx.1:2883",
"endpointType":null,
"version":null
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| endpoint | string | 服务地址。 |
| endpointType | CloudRocketMQEndpoint.Type | 服务地址的类型。 |
| version | CloudRocketMQInst.Version | RocketMQ 的版本。 |
OceanBase
{
"connExtraAttributes":{
"cluster":"xgez***",
"tenant":"gexr**",
"isLogicSource":false,
"useLogProxy":true,
"drcUser":"tes***",
"configUrl":"http://xxx.xxx.xxx.1:2883/service****",
"logProxyIp":"xxx.xxx.xxx.2",
"logProxyPort":2883,
"noUserAuth":false
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| cluster | string | 集群的名称。 |
| tenant | string | 租户的名称。 |
| isLogicSource | boolean | 是否为逻辑数据源。 |
| useLogProxy | boolean | 是否使用 LogProxy。 |
| drcUser | string | drc_user 的配置。 |
| configUrl | string | 用于获取 OceanBase 数据库底层服务器的真实地址。 |
| logProxyIp | string | LogProxy 服务的 IP 地址。 |
| logProxyPort | integer | LogProxy 服务的端口。 |
| noUserAuth | boolean | 对于同步 DataWorks 的接口,数据源是 OMS 自动生成的。如果没有用户账号和密码,则不能连接用户的 OceanBase 数据库。 |
TiDB
{
"connExtraAttributes":{
"kafkaId":"e_edz****",
"kafkaTopic":"test**",
"kafkaName":"denz***"
}
}
| 参数 | 类型 | 描述 |
|---|---|---|
| kafkaId | string | 绑定的 Kafka 数据源的 ID。 |
| kafkaTopic | string | 绑定的 Kafka Topic 的名称。 |
| kafkaName | string | 绑定的 Kafka 数据源的名称。 |