全部产品
云市场

查看同步作业状态

更新时间:2020-05-12 11:00:20

调用DescribeSynchronizationJobStatus接口查询同步实例的状态及运行详情。

请求参数

参数名称 数据类型 是否必须 参数说明
Action String 要执行的操作,取值DescribeSynchronizationJobStatus。
SynchronizationJobId String 同步实例ID。
SynchronizationDirection String 同步方向,取值包括:Forward、Reverse,默认取值为Forward

返回参数

参数名称 数据类型 参数说明
SynchronizationJobId String 同步实例ID
SynchronizationJobName String 同步实例名称
SynchronizationJobClass String 同步实例规格
SynchronizationDirection String 同步方向
PayType String 付费类型
ExpireTime String 到期时间,格式为:YYYY-MM-DDT hh:mm:ssZ,例如:2011-06-09T 12:11:11Z
SourceEndpoint SourceEndpoint 同步实例的源实例连接信息
DestinationEndpoint DestinationEndpoint 同步实例的目标实例连接信息
SynchronizationObjects List 同步对象
StructureInitialization String 是否进行结构初始化
DataInitialization String 是否进行全量数据初始化
Status String 同步实例状态,取值包括:
NotStarted:未启动
Prechecking:预检查中
PrecheckFailed:预检查失败
Initializing:同步初始化
InitializeFailed:同步初始化失败
synchronizing:同步中
Failed:同步失败
Suspending:暂停
Modifying:同步对象变更中
Finished:完成
ErrorMessage String 同步失败原因
PrecheckStatus PrecheckStatus 预检查状态,其中,PrecheckStatus的定义参见PrecheckStatus参数定义。
StructureInitializationStatus StructureInitializationStatus 结构初始化详情,其中 StructureInitializationStatus的定义参见StructureInitializationStatus参数定义。
DataInitializationStatus DataInitializationStatus 全量数据初始化详情,其中 DataInitializationStatus的定义参见DataInitializationStatus参数定义。
DataSynchronizationStatus DataSynchronizationStatus 增量初始化详情,其中 DataSynchronizationStatus的定义参见DataSynchronizationStatus参数定义。
Delay String 同步延迟,单位为秒。
为提升用户体验,提供更高的精度,阿里云将在5月11日新增返回参数delayMills来表示同步延迟(单位为毫秒),同时弃用本返回参数,更多详情请参见DescribeSynchronizationJobStatus返回参数变更通知
Performance String 同步概况,其中 Performance的定义参见Performance参数定义。

PrecheckStatus参数定义

参数名称 数据类型 参数说明
Status String 预检查状态
Percent String 预检查进度,单位为百分比
Detail List 各个预检查项的检查情况
CheckItem的定义详见CheckItem的参数定义。

CheckItem的参数定义

参数名称 数据类型 参数说明
ItemName String 检查项名称
CheckStatus String 检查状态,取值包括
NotStarted:未启动
Checking:检查中
Failed:检查失败
Finished:检查成功
ErrorMessage String 失败原因
RepairMethod String 修复方法

StructureInitializationStatus参数定义

参数名称 数据类型 参数说明
Status String 迁移状态,取值:
NotStarted:未启动
Migrating:迁移中
Failed:迁移失败
Finished:迁移完成
ErrorMessage String 迁移失败原因
Percent String 迁移进度,单位为百分比。
Progress String 已经完成迁移的表数量

DataInitializationStatus参数定义

参数名称 数据类型 参数说明
Status String 迁移状态,取值包括:
NotStarted:未启动
Migrating:迁移中
Failed:迁移失败
Finished:迁移完成
ErrorMessage String 迁移失败原因
Percent String 迁移进度,单位为百分比。
Progress String 已经完成迁移的表数量

DataSynchronizationStatus参数定义

参数名称 数据类型 参数说明
Status String 迁移状态,取值包括:
NotStarted:未启动
Migrating:迁移中
Failed:迁移失败
Finished:迁移完成
ErrorMessage String 迁移失败原因
Percent String 迁移进度,单位为百分比。
Delay String 迁移延迟,单位为秒。

Performance 参数定义

参数名称 数据类型 参数说明
RPS String 每秒同步的记录数
Flow String 每秒同步的流量,单位为:MB/s。

示例

下面简单演示通过JAVA SDK 查询同步任务状态的示例:

  1. public void descSyncJobStatus(String SyncJobId,DefaultAcsClient client) {
  2. DescribeSynchronizationJobStatusRequest request = new DescribeSynchronizationJobStatusRequest();
  3. request.setSynchronizationJobId(SyncJobId);
  4. DescribeSynchronizationJobStatusResponse response = new DescribeSynchronizationJobStatusResponse();
  5. try {
  6. response = client.getAcsResponse(request);
  7. /*Get Sync Configure of the Sync Job*/
  8. System.out.println("SyncJobId:"+response.getSynchronizationJobId()
  9. +"SyncJobName:"+response.getSynchronizationJobName()
  10. +"; PayType:"+response.getPayType()+"; ExpireTime:"+response.getExpireTime()
  11. +"; SyncClass:"+response.getSynchronizationJobClass()
  12. +"; StrucInit:"+response.getStructureInitialization()
  13. +"; DataInit:"+response.getDataInitialization()+"; Status:"+response.getStatus()
  14. +"; Delay:"+response.getDelay()
  15. +"; ErrMSG:"+response.getErrorMessage());
  16. /*Get Sync Objects of the Sync Job*/
  17. System.out.println("Sync Objects:");
  18. List<SynchronizationObject> syncObjects = response.getSynchronizationObjects();
  19. /*Get the Source Endpoint of the synchronization job*/
  20. SourceEndpoint sourceEndpoint = response.getSourceEndpoint();
  21. System.out.println("InstanceType:"+sourceEndpoint.getInstanceType()
  22. +"InstanceId:"+sourceEndpoint.getInstanceId());
  23. /*Get the Destination Endpoint of the synchronization job*/
  24. DestinationEndpoint destinationEndpoint = new DestinationEndpoint();
  25. System.out.println("Instance Type:"+destinationEndpoint.getInstanceType()
  26. +destinationEndpoint.getInstanceId());
  27. // Get Sync Object of the synchronization job
  28. System.out.println("SyncObject:"+org.json.JSONObject.valueToString(syncObjects));
  29. // Get Precheck Status of the synchronization job
  30. try {
  31. com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.PrecheckStatus precheckStatus = response.getPrecheckStatus();
  32. System.out.println("Get Precheck Status for Sync Job Succeed");
  33. System.out.println("Precheck Status:"+response.getPrecheckStatus().getStatus()
  34. +"; Precheck Percent:"+response.getPrecheckStatus().getPercent());
  35. List<com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.PrecheckStatus.CheckItem> precheckDetails= precheckStatus.getDetail();
  36. for (int i = 0; i < response.getPrecheckStatus().getDetail().size(); i++) {
  37. System.out.println("CheckItem:"+response.getPrecheckStatus().getDetail().get(i).getCheckStatus()
  38. +"; ErrorMSG:"+response.getPrecheckStatus().getDetail().get(i).getErrorMessage()
  39. +"; RepairMethod:"+response.getPrecheckStatus().getDetail().get(i).getRepairMethod());
  40. }
  41. } catch (Exception e) {
  42. // TODO: handle exception
  43. System.out.println("Get Precheck Status for Sync Job Failed");
  44. }
  45. // Get Structure Initialization Status of the synchronization job
  46. try {
  47. System.out.println("Get Structure Initialization Status Succeed!");
  48. System.out.println("Structure Init Status:"+response.getStructureInitializationStatus().getStatus()
  49. +"; Percent:"+response.getStructureInitializationStatus().getPercent()
  50. +"; Progress:"+response.getStructureInitializationStatus().getProgress()
  51. +"; ErrMSG:"+response.getStructureInitializationStatus().getErrorMessage());
  52. } catch (Exception e) {
  53. // TODO: handle exception
  54. System.out.println("Get Structure Init Status Failed!");
  55. }
  56. // Get Data Initialization Status of the synchronization job
  57. try {
  58. System.out.println("Get Data Initialization Status Succeed!");
  59. System.out.println("Data Init Status:"+response.getDataInitializationStatus().getStatus()
  60. +"; Percent:"+response.getDataInitializationStatus().getPercent()
  61. +"; Progress:"+response.getDataInitializationStatus().getProgress()
  62. +"; ErrMSG:"+response.getDataInitializationStatus().getErrorMessage());
  63. } catch (Exception e) {
  64. // TODO: handle exception
  65. System.out.println("Get Data Init Status Failed!");
  66. System.out.println(e.toString());
  67. }
  68. //Get Data Sync Status
  69. try {
  70. com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.DataSynchronizationStatus dataSyncStatus = response.getDataSynchronizationStatus();
  71. System.out.println("Get Data Synchronization Status Succeed!");
  72. System.out.println("Data Sync Status:"+response.getDataSynchronizationStatus().getStatus()
  73. +"; Percent:"+response.getDataSynchronizationStatus().getPercent()
  74. +"; Delay:"+response.getDataSynchronizationStatus().getDelay()
  75. +"; ErrMSG:"+response.getDataSynchronizationStatus().getErrorMessage());
  76. } catch (Exception e) {
  77. // TODO: handle exception
  78. System.out.println("Get Data Sync Status Failed!");
  79. System.out.println(e.toString());
  80. }
  81. //Get Performance
  82. System.out.println("TPS:"+response.getPerformance().getRPS()
  83. +"Flow:"+response.getPerformance().getRPS());
  84. } catch (Exception e) {
  85. // TODO: handle exception
  86. System.out.println("Describe Status of Data Sync Job "+ SyncJobId + "Failed");
  87. System.out.println(e.toString());
  88. }
  89. }