开发者社区> 问答> 正文

如何查看同步作业状态



描述


同步实例处于任何状态,都可以调用这个接口查询同步实例的状态及运行详情。

请求参数

参数名称数据类型是否必须参数说明
ActionString系统默认参数,为这个接口的接口定义,取值为:DescribeSynchronizationJobStatus
SynchronizationJobIdString同步实例ID


返回参数

参数名称数据类型参数说明
SynchronizationJobIdString同步实例ID
SynchronizationJobNameString同步实例名称
SynchronizationJobClassString同步实例规格
PayTypeString付费类型
ExpireTimeString到期时间,格式为:YYYY-MM-DDT hh:mm:ssZ,例如:2011-06-09T 12:11:11Z
SourceEndpointSourceEndpoint同步实例的源实例连接信息
DestinationEndpointDestinationEndpoint同步实例的目标实例连接信息
SynchronizationObjectsList同步对象
StructureInitializationString是否进行结构初始化
DataInitializationString是否进行全量数据初始化
StatusString同步实例状态,取值包括:NotStarted:未启动 Prechecking: 预检查中 PrecheckFailed: 预检查失败 Initializating : 同步初始化 InitializeFailed: 同步初始化失败Synchronizing : 同步中 Failed: 同步失败 Suspending: 暂停 Modifying: 同步中(同步对象变更中) Finished: 完成
ErrorMessageString同步失败原因
PrecheckStatusPrecheckStatus预检查状态,其中 PrecheckStatus的定义参考 PrecheckStatus 参数定义
StructureInitializationStatusStructureInitializationStatus结构初始化详情,其中 StructureInitializationStatus的定义参考StructureInitializationStatus参数定义
DataInitializationStatusDataInitializationStatus全量数据初始化详情,其中 DataInitializationStatus的定义参考DataInitializationStatus参数定义
DataSynchronizationStatusDataSynchronizationStatus增量初始化详情,其中 DataSynchronizationStatus的定义参考DataSynchronizationStatus参数定义
DelayString同步延迟,单位为秒
PerformanceString同步概况,其中 Performance的定义参考Performance参数定义


PrecheckStatus参数定义

参数名称数据类型参数说明
StatusString预检查状态
PercentString预检查进度,单位为百分比
DetailList各个预检查项的检查情况CheckItem的定义详见CheckItem的参数定义


CheckItem的参数定义

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


StructureInitializationStatus参数定义

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


DataInitializationStatus参数定义

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


DataSynchronizationStatus参数定义

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


Performance 参数定义

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


示例


下面简单演示通过JAVA SDK 查询同步任务状态的示例: public void descSyncJobStatus(String SyncJobId,DefaultAcsClient client) {
        DescribeSynchronizationJobStatusRequest request = new DescribeSynchronizationJobStatusRequest();
        request.setSynchronizationJobId(SyncJobId);
        DescribeSynchronizationJobStatusResponse response = new DescribeSynchronizationJobStatusResponse();
        try {
            response = client.getAcsResponse(request);
            /*Get Sync Configure of the Sync Job*/
            System.out.println("SyncJobId:"+response.getSynchronizationJobId()
                    +"SyncJobName:"+response.getSynchronizationJobName()
                    +"; PayType:"+response.getPayType()+"; ExpireTime:"+response.getExpireTime()
                    +"; SyncClass:"+response.getSynchronizationJobClass()
                    +"; StrucInit:"+response.getStructureInitialization()
                    +"; DataInit:"+response.getDataInitialization()+"; Status:"+response.getStatus()
                    +"; Delay:"+response.getDelay()
                    +"; ErrMSG:"+response.getErrorMessage());
            /*Get Sync Objects of the Sync Job*/
            System.out.println("Sync Objects:");
            List<SynchronizationObject> syncObjects = response.getSynchronizationObjects();
            /*Get the Source Endpoint of the synchronization job*/
            SourceEndpoint sourceEndpoint = response.getSourceEndpoint();
            System.out.println("InstanceType:"+sourceEndpoint.getInstanceType()
                    +"InstanceId:"+sourceEndpoint.getInstanceId());
            /*Get the Destination Endpoint of the synchronization job*/
            DestinationEndpoint destinationEndpoint = new DestinationEndpoint();
            System.out.println("Instance Type:"+destinationEndpoint.getInstanceType()
                    +destinationEndpoint.getInstanceId());
            // Get Sync Object of the synchronization job
            System.out.println("SyncObject:"+org.json.JSONObject.valueToString(syncObjects));
            // Get Precheck Status of the synchronization job
            try {
                com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.PrecheckStatus precheckStatus = response.getPrecheckStatus();
                System.out.println("Get Precheck Status for Sync Job Succeed");
                System.out.println("Precheck Status:"+response.getPrecheckStatus().getStatus()
                        +";  Precheck Percent:"+response.getPrecheckStatus().getPercent());
                List<com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.PrecheckStatus.CheckItem> precheckDetails= precheckStatus.getDetail();
                for (int i = 0; i < response.getPrecheckStatus().getDetail().size(); i++) {
                    System.out.println("CheckItem:"+response.getPrecheckStatus().getDetail().get(i).getCheckStatus()
                            +"; ErrorMSG:"+response.getPrecheckStatus().getDetail().get(i).getErrorMessage()
                            +"; RepairMethod:"+response.getPrecheckStatus().getDetail().get(i).getRepairMethod());
                }
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Get Precheck Status for Sync Job Failed");
            }
            // Get Structure Initialization Status of the synchronization job
            try {
                System.out.println("Get Structure Initialization Status Succeed!");
                System.out.println("Structure Init Status:"+response.getStructureInitializationStatus().getStatus()
                        +"; Percent:"+response.getStructureInitializationStatus().getPercent()
                        +"; Progress:"+response.getStructureInitializationStatus().getProgress()
                        +"; ErrMSG:"+response.getStructureInitializationStatus().getErrorMessage());
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Get Structure Init Status Failed!");
            }
            // Get Data Initialization Status of the synchronization job
            try {
                System.out.println("Get Data Initialization Status Succeed!");
                System.out.println("Data Init Status:"+response.getDataInitializationStatus().getStatus()
                        +"; Percent:"+response.getDataInitializationStatus().getPercent()
                        +"; Progress:"+response.getDataInitializationStatus().getProgress()
                        +"; ErrMSG:"+response.getDataInitializationStatus().getErrorMessage());
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Get Data Init Status Failed!");
                System.out.println(e.toString());
            }
            //Get Data Sync Status
            try {
                com.aliyuncs.dts.model.v20160801.DescribeSynchronizationJobStatusResponse.DataSynchronizationStatus dataSyncStatus = response.getDataSynchronizationStatus();
                System.out.println("Get Data Synchronization Status Succeed!");
                System.out.println("Data Sync Status:"+response.getDataSynchronizationStatus().getStatus()
                        +"; Percent:"+response.getDataSynchronizationStatus().getPercent()
                        +"; Delay:"+response.getDataSynchronizationStatus().getDelay()
                        +"; ErrMSG:"+response.getDataSynchronizationStatus().getErrorMessage());
            } catch (Exception e) {
                // TODO: handle exception
                System.out.println("Get Data Sync Status Failed!");
                System.out.println(e.toString());
            }
            //Get Performance
            System.out.println("TPS:"+response.getPerformance().getRPS()
                    +"Flow:"+response.getPerformance().getRPS());
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("Describe Status of Data Sync Job "+ SyncJobId + "Failed");
            System.out.println(e.toString());
        }    
    }

展开
收起
云栖大讲堂 2017-10-31 16:33:19 1783 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MaxCompute Logview参数详解和问题排查(废弃) 立即下载
高可用数据库的搭建与备份恢复策略验证实战 立即下载
Logview参数详解和故障排查 立即下载