全部产品

查看迁移详情

更新时间:2020-07-07 20:03:47

当任务处于迁移中、迁移失败、暂停中或已完成状态时,您可以调用本接口查看数据迁移详情,包括每个对象的迁移状态及进度。

请求参数

参数说明 数据类型 是否必须 参数说明
Action String 系统默认参数,这个接口的接口定义,取值为:DescribeMigrationJobDetail。
MigrationJobId String 迁移任务ID。
RegionId String 地域ID。
MigrationMode.StructureInitialization Boolean 是否查看结构迁移详情,取值true或false。
MigrationMode.DataInitialization Boolean 是否查看全量数据迁移,取值true或false。
MigrationMode.DataSynchronization Boolean 是否查看增量数据迁移,取值true或false。
PageSize Integer 每页的记录数,取值:30/50/100,默认为30。
只有当MigrationMode.StructureInitialization、MigrationMode.DataInitialization、MigrationMode.DataSynchronization 这三个配置项只有一个为true时,这个配置项才能生效。
PageNum Integer 页码,大于0且不超过Integer的最大值,默认值为:1。
只有当MigrationMode.StructureInitialization、MigrationMode.DataInitialization、MigrationMode.DataSynchronization三个配置项只有一个为true时,这个配置项才能生效。
ClientToken String 用于保证请求的幂等性,防止重复提交请求。由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符,且该参数值中不能包含非ASCII字符。
AccountId String 阿里云账号ID。

返回参数

参数名称 数据类型 参数说明
RequestId String 请求ID
StructureInitializationDetailList List 迁移详情列表
StructureInitializationDetails List 结构迁移详情
StructureInitializationDetail的定义参考StructureInitializationDetail参数定义
DataInitializationDetails List 全量迁移详情
DataInitializationDetail的定义参考DataInitializationDetail 参数定义
DataSynchronizationDetails List 增量迁移详情
DataSynchronizationDetail的定义参考DataSynchronizationDetail 参数定义

StructureInitializationDetail参数定义

参数名称 数据类型 参数说明
ObjectName String 迁移对象名称
ObjectType String 迁移对象类型,取值包括:
Table、Constraint、Index、View、MaterilizeView、Type、Synonym、Trigger、Function、Procedure、Package、Default、Rule、Plan Guide
SourceOwnerDBName String 迁移对象在源实例所属的数据库名称
DestinationOwnerDBName String 迁移对象在目标实例所属的Schema
Status String 这个迁移对象的迁移状态
ErrorMessage String 这个迁移对象迁移失败的原因
ObjectDefinition String 这个迁移对象的结构语法定义
Constraints List 这个迁移对象对应的约束子对象。只有当这个迁移对象为表时,才会有约束,约束包括索引、外键

DataInitializationDetail参数定义

参数名称 数据类型 参数说明
TableName String 迁移表的表名
SourceOwnerDBName String 迁移表在源实例所属的数据库名称
DestinationOwnerDBName String 迁移表在目标实例所属的数据库名称
Status String 这个表的迁移状态
ErrorMessage String 这个表迁移失败的原因
TotalRowNum String 这个表待迁移的全部记录数
FinishRowNum String 这个表已经完成迁移的记录数
UsedTime String 截止目前为止,迁移这个表所用的时间,单位为秒

DataSynchronizationDetail参数定义

参数名称 数据类型 参数说明
TableName String 迁移表的表名
SourceOwnerDBName String 迁移表在源实例所属的数据库名称
DestinationOwnerDBName String 迁移表在目标实例所属的数据库名称
Status String 这个表的迁移状态
ErrorMessage String 这个表迁移失败的原因

示例

下面简单演示通过Java SDK查看迁移任务详情的示例:

  1. private static void describeMigrationJobDetail(String MigrationJobId) {
  2. DescribeMigrationJobDetailRequest request = new DescribeMigrationJobDetailRequest();
  3. request.setMigrationJobId(MigrationJobId);
  4. request.setMigrationModeStructureInitialization(true);
  5. request.setMigrationModeDataInitialization(true);
  6. request.setMigrationModeDataSynchronization(true);
  7. try {
  8. DescribeMigrationJobDetailResponse response = client.getAcsResponse(request);
  9. System.out.println("Get Migration Detail of Migration Job " +MigrationJobId+" Succeed!");
  10. List<StructureInitializationDetail> struInitDetails= response.getStructureInitializationDetailList();
  11. System.out.println("Structure Initialization Detail:");
  12. for (int i = 0; i < struInitDetails.size(); i++) {
  13. String objectName=struInitDetails.get(i).getObjectName();
  14. String SrcDBName=struInitDetails.get(i).getSourceOwnerDBName();
  15. String DestDBName = struInitDetails.get(i).getDestinationOwnerDBName();
  16. String Status=struInitDetails.get(i).getStatus();
  17. String errorMsg=struInitDetails.get(i).getErrorMessage();
  18. System.out.println("ObjectName:"+objectName+"; SRCDBName:"+SrcDBName+"; DESTDBName:"
  19. +DestDBName+"; Status:"+Status+"errorMsg:"+errorMsg);
  20. }
  21. List<DataInitializationDetail> dataInitDetails = response.getDataInitializationDetailList();
  22. System.out.println("Data Initialization Detail:");
  23. for (int i = 0; i < dataInitDetails.size(); i++) {
  24. String tblName=dataInitDetails.get(i).getTableName();
  25. String tbl_srcDBName=dataInitDetails.get(i).getSourceOwnerDBName();
  26. String tbl_destDBName=dataInitDetails.get(i).getDestinationOwnerDBName();
  27. String dataInitStatus=dataInitDetails.get(i).getStatus();
  28. String dataInitSumRows=dataInitDetails.get(i).getTotalRowNum();
  29. String dataInitFinishRows=dataInitDetails.get(i).getFinishRowNum();
  30. String dataUsedTime=dataInitDetails.get(i).getMigrationTime();
  31. String dataInitErrMSG = dataInitDetails.get(i).getErrorMessage();
  32. System.out.println("TableName:"+tblName+"; SRCDBName:"+tbl_srcDBName
  33. +"; DESTDBName:"+tbl_destDBName+"; SumRows:"+dataInitSumRows+"; FinishRows"
  34. +"; UsedTime:"+dataUsedTime+"; ErrorMSG:"+dataInitErrMSG);
  35. }
  36. List<DataSynchronizationDetail> dataSyncDetails = response.getDataSynchronizationDetailList();
  37. System.out.println("Data Synchronization Detail");
  38. for (int i = 0; i < dataSyncDetails.size(); i++) {
  39. String dataSyncTblName=dataSyncDetails.get(i).getTableName();
  40. String dataSyncSRCDBName=dataSyncDetails.get(i).getSourceOwnerDBName();
  41. String dataSyncDESTDBName = dataSyncDetails.get(i).getDestinationOwnerDBName();
  42. String dataSyncStatus = dataSyncDetails.get(i).getStatus();
  43. String dataSyncErrMsg = dataSyncDetails.get(i).getErrorMessage();
  44. System.out.println("TableName:"+dataSyncTblName+"; SRCDBName:"+dataSyncSRCDBName
  45. +"; DESTDBName:"+dataSyncDESTDBName+"; Status:"+dataSyncStatus+"; ErrorMSG:"+dataSyncErrMsg);
  46. }
  47. } catch (Exception e) {
  48. // TODO: handle exception
  49. System.out.println("Get Migration Detail of Migration Job " +MigrationJobId+" Failed!");
  50. System.out.println(e.toString());
  51. }
  52. }