开发者社区> 问答> 正文

如何查看迁移详情



描述


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

请求参数

参数说明数据类型是否必须参数说明
ActionString系统默认参数,这个接口的接口定义,取值为:DescribeMigrationJobDetail
MigrationJobIdString迁移任务ID
MigrationMode.StructureInitializationBoolean查看结构迁移详情
MigrationMode.DataInitializationBoolean查看全量数据迁移
MigrationMode.DataSynchronizationBoolean查看增量数据迁移
PageSizeInteger每页的记录数,取值:30/50/100,默认为30。只有当MigrationMode.StructureInitialization、MigrationMode.DataInitialization、MigrationMode.DataSynchronization 这三个配置项只有一个为true时,这个配置项才能生效
PageNumInteger页码,大于0且不超过Integer的最大值,默认值为:1。只有当MigrationMode.StructureInitialization、MigrationMode.DataInitialization、MigrationMode.DataSynchronization 这三个配置项只有一个为true时,这个配置项才能生效


返回参数

参数名称数据类型参数说明
StructureInitializationDetailsList结构迁移详情StructureInitializationDetail的定义参考StructureInitializationDetail参数定义
DataInitializationDetailsList全量迁移详情DataInitializationDetail 的定义参考 DataInitializationDetail 参数定义
DataSynchronizationDetailsList增量迁移详情DataSynchronizationDetail 的定义参考 DataSynchronizationDetail 参数定义


StructureInitializationDetail参数定义

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


DataInitializationDetail 参数定义

参数名称数据类型参数说明
TableNameString迁移表的表名
SourceOwnerDBNameString迁移表在源实例所属的数据库名称
DestinationOwnerDBNameString迁移表在目标实例所属的数据库名称
StatusString这个表的迁移状态
ErrorMessageString这个表迁移失败的原因
TotalRowNumString这个表待迁移的全部记录数
FinishRowNumString这个表已经完成迁移的记录数
UsedTimeString截止目前为止,迁移这个表所用的时间,单位为秒


DataSynchronizationDetail 参数定义

参数名称数据类型参数说明
TableNameString迁移表的表名
SourceOwnerDBNameString迁移表在源实例所属的数据库名称
DestinationOwnerDBNameString迁移表在目标实例所属的数据库名称
StatusString这个表的迁移状态
ErrorMessageString这个表迁移失败的原因


示例


下面简单演示通过JAVA SDK 查看迁移任务详情的示例: private static void describeMigrationJobDetail(String MigrationJobId) {
        DescribeMigrationJobDetailRequest request = new DescribeMigrationJobDetailRequest();
        request.setMigrationJobId(MigrationJobId);
        request.setMigrationModeStructureInitialization(true);
        request.setMigrationModeDataInitialization(true);
        request.setMigrationModeDataSynchronization(true);
        try {
            DescribeMigrationJobDetailResponse response = client.getAcsResponse(request);
            System.out.println("Get Migration Detail of Migration Job " +MigrationJobId+" Succeed!");
            List<StructureInitializationDetail> struInitDetails= response.getStructureInitializationDetailList();
            System.out.println("Structure Initialization Detail:");
            for (int i = 0; i < struInitDetails.size(); i++) {
                String objectName=struInitDetails.get(i).getObjectName();
                String SrcDBName=struInitDetails.get(i).getSourceOwnerDBName();
                String DestDBName = struInitDetails.get(i).getDestinationOwnerDBName();
                String Status=struInitDetails.get(i).getStatus();
                String errorMsg=struInitDetails.get(i).getErrorMessage();
                System.out.println("ObjectName:"+objectName+"; SRCDBName:"+SrcDBName+"; DESTDBName:"
                        +DestDBName+"; Status:"+Status+"errorMsg:"+errorMsg);
            }
            List<DataInitializationDetail> dataInitDetails = response.getDataInitializationDetailList();
            System.out.println("Data Initialization Detail:");
            for (int i = 0; i < dataInitDetails.size(); i++) {
                String tblName=dataInitDetails.get(i).getTableName();
                String tbl_srcDBName=dataInitDetails.get(i).getSourceOwnerDBName();
                String tbl_destDBName=dataInitDetails.get(i).getDestinationOwnerDBName();
                String dataInitStatus=dataInitDetails.get(i).getStatus();
                String dataInitSumRows=dataInitDetails.get(i).getTotalRowNum();
                String dataInitFinishRows=dataInitDetails.get(i).getFinishRowNum();
                String dataUsedTime=dataInitDetails.get(i).getMigrationTime();
                String dataInitErrMSG = dataInitDetails.get(i).getErrorMessage();
                System.out.println("TableName:"+tblName+"; SRCDBName:"+tbl_srcDBName
                        +"; DESTDBName:"+tbl_destDBName+"; SumRows:"+dataInitSumRows+"; FinishRows"
                        +"; UsedTime:"+dataUsedTime+"; ErrorMSG:"+dataInitErrMSG);
            }
            List<DataSynchronizationDetail> dataSyncDetails = response.getDataSynchronizationDetailList();
            System.out.println("Data Synchronization Detail");
            for (int i = 0; i < dataSyncDetails.size(); i++) {
                String dataSyncTblName=dataSyncDetails.get(i).getTableName();
                String dataSyncSRCDBName=dataSyncDetails.get(i).getSourceOwnerDBName();
                String dataSyncDESTDBName = dataSyncDetails.get(i).getDestinationOwnerDBName();
                String dataSyncStatus = dataSyncDetails.get(i).getStatus();
                String dataSyncErrMsg = dataSyncDetails.get(i).getErrorMessage();
                System.out.println("TableName:"+dataSyncTblName+"; SRCDBName:"+dataSyncSRCDBName
                        +"; DESTDBName:"+dataSyncDESTDBName+"; Status:"+dataSyncStatus+"; ErrorMSG:"+dataSyncErrMsg);
            }
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("Get Migration Detail of Migration Job " +MigrationJobId+" Failed!");
            System.out.println(e.toString());
        }        
    }

展开
收起
云栖大讲堂 2017-10-31 16:09:04 1485 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
MaxCompute Logview参数详解和问题排查(废弃) 立即下载
DataWorks V2新版本功能揭秘 立即下载
MaxCompute Logview参数详解和问题排查 立即下载