全部产品
云市场

配置迁移任务

更新时间:2020-07-09 10:02:10

调用ConfigureMigrationJob接口配置DTS的数据迁移任务。

  • 本接口调用成功后,将自动启动数据迁移任务,无需调用StartMigrationJob接口来启动。
  • 如果数据迁移任务没有被成功启动,可能是预检查失败,您可以调用DescribeMigrationJobStatus接口查询预检查失败的错误提示并修复问题。问题修复后,您可以调用StartMigrationJob接口来启动数据迁移任务。

请求参数

参数名称 数据类型 是否必须 参数描述
Action String 系统参数,为这个接口的接口定义,取值为:ConfigureMigrationJob。
MigrationJobId String 迁移任务 ID。
MigrationJobName String 迁移任务名称。
SourceEndpoint.InstanceType String 迁移源实例的实例类型,取值包括:
RDS:阿里云RDS实例
ECS:ECS上的自建数据库
LocalInstance:有公网IP的自建数据库
Express:通过专线接入的自建数据库
MongoDB:阿里云MongoDB实例
POLARDB:阿里云 PolarDB for MySQL 集群
SourceEndpoint.Region String 源实例所在的区域,如果是自建数据库,可以选择离自建 IDC 物理距离最近的区域。取值包括:
cn-hangzhou:表示公共云杭州区域
cn-shanghai:表示公共云上海区域
cn-qingdao:表示公共云青岛区域
cn-beijing:表示公共云北京区域
cn-zhangbei:表示公共云张北区域
cn-shenzhen:表示公共云深圳区域
cn-hongkong:表示公共云中国(香港)区域
us-west-1:表示公共云美西区域
us-east-1:表示公共云美东区域
ap-southeast-1:表示公共云新加坡区域
cn-hangzhou-finance-1:表示金融云杭州区域
cn-qingdao-finance-1:表示金融云青岛区域
cn-shanghai-finance-1:表示金融云上海区域
cn-shenzhen-finance-1:表示金融云深圳区域
me-east-1: 表示公共云迪拜区域
eu-central-1:表示公共云法兰克福区域
SourceEndpoint.InstanceID String 源实例 ID。
当 SourceEndpoint.InstanceType 取值为 RDS 时,本参数需传入 RDS 实例 ID
当 SourceEndpoint.InstanceType 取值为 ECS 时,本参数需传入 ECS 实例 ID
当SourceEndpoint.InstanceType取值为 Express 时,本参数需传入VPC ID(即专有网络ID)
当 SourceEndpoint.InstanceType 取值为 MongoDB 时,本参数需传入 MongoDB 实例 ID
当 SourceEndpoint.InstanceType 取值为 POLARDB 时,本参数需传入 POLARDB for MySQL 集群ID
SourceEndpoint.EngineName String 源实例的数据库类型,当 SourceEndpoint.InstanceType 为非 RDS 时,为必填项。取值包括:
MySQL、TiDB、SQLServer、PostgreSQL、Oracle、MongoDB、Redis。
SourceEndpoint.IP String 源实例的连接地址,当源实例为自建数据库时必填。
SourceEndpoint.Port String 源实例的监听端口,当源实例为自建数据库时必填。
SourceEndpoint.OracleSID String 当源实例数据库类型为 Oracle 时,这个参数为 Oracle SID。
SourceEndpoint.DatabaseName String 当源实例数据库类型为 PostgreSQL 或 MongoDB 时,这个参数为创建连接时使用的数据库库名。
SourceEndpoint.UserName String 源实例的访问账号。
SourceEndpoint.Password String 源实例的访问密码。
SourceEndpoint.OwnerID String 当源实例为 RDS 实例,且源实例跟目标实例所属阿里云账号不同时,这个参数为源 RDS 实例的所属阿里云账号的 UID。
SourceEndpoint.Role String 当源实例为 RDS 实例,且源实例跟目标实例所属阿里云账号不同时,这个参数为源实例所属阿里云账号对目标实例阿里云账号的授权角色。这个角色所需的权限及授权方式详见 跨账号迁移同步
DestinationEndpoint.InstanceType String 目标实例的实例类型,取值包括:
RDS:阿里云 RDS 实例
ECS:ECS 上的自建数据库
LocalInstance:本地 IDC 的自建数据库
MongoDB:阿里云 MongoDB 实例
Redis:阿里云 Redis 实例
DRDS:阿里云DRDS 实例
PetaData:阿里云 PetaData 实例
OceanBase:阿里云 OceanBase 实例
POLARDB:阿里云 PolarDB for MySQL 集群
DestinationEndpoint.Region String 目标实例所在区域,如果是自建数据库,可以选择离自建 IDC 物理距离最近的区域。取值包括:
cn-hangzhou:表示公共云杭州区域
cn-shanghai:表示公共云上海区域
cn-qingdao:表示公共云青岛区域
cn-beijing:表示公共云北京区域
cn-zhangbei:表示公共云张北区域
cn-shenzhen:表示公共云深圳区域
cn-hongkong:表示公共云中国(香港)区域
us-west-1:表示公共云美西区域
us-east-1:表示公共云美东区域
ap-southeast-1:表示公共云新加坡区域
cn-hangzhou-finance-1:表示金融云杭州区域
cn-qingdao-finance-1:表示金融云青岛区域
cn-shanghai-finance-1:表示金融云上海区域
cn-shenzhen-finance-1:表示金融云深圳区域
me-east-1:表示公共云迪拜区域
eu-central-1:表示公共云法兰克福区域
DestinationEndpoint.InstanceID String 目标实例 ID。
当 DestinationEndpoint.InstanceType 取值为 RDS 时,本参数需传入 RDS 实例 ID
当 DestinationEndpoint.InstanceType 取值为 ECS 时,本参数需传入 ECS 实例 ID
当 DestinationEndpoint.InstanceType 取值为 MongoDB 时,本参数需传入 MongoDB 实例 ID
当 DestinationEndpoint.InstanceType 取值为 Redis 时,本参数需传入 Redis 实例 ID
当 DestinationEndpoint.InstanceType 取值为 DRDS 时,本参数需传入 DRDS 实例 ID
当 DestinationEndpoint.InstanceType 取值为 PetaData 时,本参数需传入 PetaData 实例 ID
当 DestinationEndpoint.InstanceType 取值为 OceanBase 时,本参数需传入 OceanBase 实例 ID
当 DestinationEndpoint.InstanceType 取值为 POLARDB 时,本参数需传入 PolarDB for MySQL 集群ID
DestinationEndpoint.EngineName String 目标库的数据库类型。取值:MySQLDRDSSQLServerPostgreSQLMongoDBRedis
DestinationEndpoint.InstanceType取值为RDSDRDSECSLocalInstanceExpress时,本参数才可用且必须传入。
DestinationEndpoint.IP String 目标实例连接地址,当目标实例为本地自建数据库时必填。
DestinationEndpoint.Port String 目标实例监听端口,当目标实例为自建数据库时必填。
DestinationEndpoint.DatabaseName String 目标实例的连接数据库库名,如果目标实例的数据库类型为DRDS、PostgreSQL或MongoDB时必填。
DestinationEndpoint.UserName String 目标实例的访问账号。
DestinationEndpoint.Password String 目标实例的访问密码。
MigrationMode.StructureIntialization Boolean 迁移任务是否进行结构迁移,取值包括:
true:表示需要进行结构迁移。
false:表示不进行结构迁移。
MigrationMode.DataIntialization Boolean 迁移任务是否进行全量数据迁移,取值包括:
true:表示需要进行全量数据迁移。
false:表示不进行全量数据迁移。
MigrationMode.DataSynchronization Boolean 迁移任务是否进行增量数据迁移,取值包括:
true:表示需要进行增量数据迁移。
false:表示不进行增量数据迁移。
MigrationObject List 需要迁移的对象,详情请参见迁移对象配置说明
MigrationReserved String 保留参数,暂未启用。
Checkpoint String 启动位点,格式为Unix时间戳,单位为秒。
DestinationEndpoint.OracleSID String 当目标数据库的类型为Oracle时,本参数传入Oracle的SID。
AccountId String 阿里云账号ID。

返回参数

参数名称 数据类型 参数说明
RequestId String 请求ID

示例

下面简单演示通过 JAVA SDK 配置迁移任务的示例:

  1. private static void configureMigrationJob(String MigrationJobId){
  2. String MigrationJobName="jiangliutest";
  3. /*Source Endpoint*/
  4. String SourceEndpoint_InstanceType="RDS";
  5. String SourceEndpoint_Region="cn-hangzhou";
  6. String SourceEndpoint_InstanceId="rm-bp185gso372vbd1l8";
  7. String SourceEndpoint_UserName="*******";
  8. String SourceEndpoint_Password="*******";
  9. /*Destination Endpoint*/
  10. String DestinationEndpoint_InstanceType="RDS";
  11. String DestinationEndpoint_InstanceId="rm-bp1nx2h5fm3v6q26l";
  12. String DestinationEndpoint_UserName="******";
  13. String DestinationEndpoint_Password="******";
  14. Boolean MigrationMode_StructureIntialization=true;
  15. Boolean MigrationMode_DataIntialization=true;
  16. Boolean MigrationMode_DataSynchronization=true;
  17. String MigrationObject="[{\"DBName\":\"jiangliutest\",\"NewDBName\":\"jiangliutest\","
  18. + "\"TableIncludes\":[{\"TableName\":\"t1\",\"NewTableName\":\"t1\"}]}]";
  19. ConfigureMigrationJobRequest request = new ConfigureMigrationJobRequest();
  20. request.setMigrationJobId(MigrationJobId);
  21. request.setMigrationJobName(MigrationJobName);
  22. request.setSourceEndpointRegion(SourceEndpoint_Region);
  23. request.setSourceEndpointInstanceType(SourceEndpoint_InstanceType);
  24. request.setSourceEndpointInstanceID(SourceEndpoint_InstanceId);
  25. request.setSourceEndpointUserName(SourceEndpoint_UserName);
  26. request.setSourceEndpointPassword(SourceEndpoint_Password);
  27. request.setDestinationEndpointInstanceType(DestinationEndpoint_InstanceType);
  28. request.setDestinationEndpointInstanceID(DestinationEndpoint_InstanceId);
  29. request.setDestinationEndpointUserName(DestinationEndpoint_UserName);
  30. request.setDestinationEndpointPassword(DestinationEndpoint_Password);
  31. request.setMigrationModeStructureIntialization(MigrationMode_StructureIntialization);
  32. request.setMigrationModeDataIntialization(MigrationMode_DataIntialization);
  33. request.setMigrationModeDataSynchronization(MigrationMode_DataSynchronization);
  34. request.setMigrationObject(MigrationObject);
  35. try {
  36. ConfigureMigrationJobResponse response = client.getAcsResponse(request);
  37. System.out.println("Configure "+ MigrationJobId+ " Succeed");
  38. } catch (Exception e) {
  39. // TODO: handle exception
  40. System.out.println("Configure "+MigrationJobId + " Failed!");
  41. System.out.println(e.toString());
  42. }
  43. }