MigrationObject 参数定义
MigrationObject 的定义格式为 JSON 字符串,且对象配置支持一定的正则表达式。
MigrationObject 的定义如下:
MigrationObject:{
DBName:’待迁移库名’,
NewDBName:”待迁移数据库在目标实例中映射的库名”
SchemaName:’待迁移 Schema 名’,
NewSchemaName:‘待迁移Schema在目标实例中映射的 Schema 名’,
TableIncludes:[{
TableName: ‘待迁移表表名’,
NewTableName:‘待迁移表在目标实例映射的表名’,
FilterCondition:’where condition’,
ColumnIncludes:[{
ColumnName:’待迁移表中需迁移列名’,
NewColumnName:‘待迁移列在目标实例中映射的列名’
}]
ColumnExcludes:[{
ColumnName:’待迁移表中不迁移列名’
}]
}]
TableExcluce:[{ — 不需要迁移表定义
TableName:’待迁移库名不需要迁移表的表名’
}]
ViewIncludes:[{ — 需要迁移视图定义
ViewName:’待迁移视图名称’,
New-ViewName:’待迁移视图在目标实例中映射的名称’
}]
ViewExcludes:[{ — 不需要迁移视图定义
ViewName:’不迁移视图名称’
}]
MaterializedViewIncludes:[{ — 需要迁移物化视图定义
MaterializedViewName:’待迁移物化视图名称’,
NewMaterializedViewName:’待迁移物化视图在目标实例中映射的名称’
}]
MaterializedViewExcludes:[{ — 不需要迁移物化视图定义
MaterializedViewName:’不迁移物化视图名称’
}]
SequenceIncludes:[{ — 需迁移序列定义
SequenceName:’待迁移序列名称’,
NewSequenceName:’待迁移序列在目标实例中映射的名称’
}]
SequenceExcludes:[{ — 不需迁移序列定义
SequenceName:’不迁移序列名称’
}]
FunctionIncludes:[{ — 需迁移函数定义
FunctionName:’待迁移函数名称’,
NewFunctionName:’待迁移函数在目标实例中映射的名称’
}]
FunctionExcludes:[{ — 不需迁移函数定义
FunctionName:’不迁移函数名称’
}]
ProcedureIncludes:[{ — 需迁移存储过程定义
ProcedureName:’待迁移存储过程名称’,
NewProcedureName:’待迁移存储过程在目标实例中映射的名称’
}]
ProcedureExcludes:[{ — 不需迁移存储过程定义
ProcedureName:’不迁移存储过程名称’
}]
SynonymIncludes:[{ —需迁移同义词定义
SynonymName:’待迁移同义词名称’,
NewSynonymName:’待迁移同义词在目标实例中映射的名称’
}]
SynonymExcludes:[{ —不需迁移同义词定义
ProcedureName:’不迁移存储过程名称’
}]
UserDefinedTypeIncludes:[{ — 需迁移自定义类型定义
UserDefinedTypeName:’待迁移自定义类型名称’,
NewUserDefinedTypeName:’待迁移自定义类型在目标实例中映射的名称’
}]
UserDefinedTypeExcludes:[{ — 不需迁移自定义类型定义
UserDefinedTypeName:’不迁移自定义类型名称’
}]
RuleIncludes:[{ — 需迁移规则定义
RuleName:’待迁移规则名称’,
NewRuleName:’待迁移规则在目标实例中映射的名称’
}]
RuleExcludes:[{ — 不需迁移规则定义
UserDefinedTypeName:’不迁移规则名称’
}]
OperationIncludes:[{ —需迁移操作符定义
OperationName:’待迁移操作符名称’,
NewOperationName:’待迁移操作符在目标实例中映射的名称’
}]
OperationExcludes:[{ —不需迁移操作符定义
OperationName:’不迁移操作符名称’
}]
DomainIncludes:[{ —需迁移 domain 定义
DomainName:’待迁移域名称’,
NewDomainName:’待迁移域在目标实例中映射的名称’
}]
DomainExclude:[{ —不需迁移 domain 定义
OperationName:’不迁移域名称’
}]
AggregateInclude:[{ —需迁移 aggregate 定义
AggregateName:’待迁移 aggregate 名称’,
NewAggregateName:’待迁移 aggregate 在目标实例中映射的名称’
}]
AggregateExclude:[{ —不需迁移 aggregate 定义
AggregateName:’不迁移 aggregate 名称’
}]
ExtensionIncludes:[{ —需迁移 extension 定义
ExtensionName:’待迁移扩展名称’,
NewExtensionName:’待迁移扩展在目标实例中映射的名称’
}]
ExtensionExcludes:[{ —不需迁移 extension 定义
ExtensionName:’不迁移扩展名称’
}]
}
其中:SchemaName 和 NewSchemaName 只用于 SQL Server,其他数据库的库名定义使用 DBName 和 NewDBName 这个参数。当用户只配置了 DBName,不配置其他子对象的规则,那么表示迁移这个数据库下面的所有对象。当用户配置了 DBName,且配置了部分对象的规则,那么不配置的对象默认不迁移。例如用户配置了 TableIncludes 规则,但是没有配置 ViewIncludes 规则,那么不迁移 View 对象。
各种对象名的定义可以支持如下的正则表达式:
参数名称 | 数据类型 | 参数说明 |
公共返回参数 | 任务请求 ID |
private static void configureMigrationJob(String MigrationJobId){
String MigrationJobName="jiangliutest";
/*Source Endpoint*/
String SourceEndpoint_InstanceType="RDS";
String SourceEndpoint_Region="cn-hangzhou";
String SourceEndpoint_InstanceId="rm-bp185gso372vbd1l8";
String SourceEndpoint_UserName="*******";
String SourceEndpoint_Password="*******";
/*Destination Endpoint*/
String DestinationEndpoint_InstanceType="RDS";
String DestinationEndpoint_InstanceId="rm-bp1nx2h5fm3v6q26l";
String DestinationEndpoint_UserName="******";
String DestinationEndpoint_Password="******";
Boolean MigrationMode_StructureIntialization=true;
Boolean MigrationMode_DataIntialization=true;
Boolean MigrationMode_DataSynchronization=true;
String MigrationObjects="[{\"DBName\":\"jiangliutest\",\"NewDBName\":\"jiangliutest\","
+ "\"TableIncludes\":[{\"TableName\":\"t1\",\"NewTableName\":\"t1\"}]}]";
ConfigureMigrationJobRequest request = new ConfigureMigrationJobRequest();
request.setMigrationJobId(MigrationJobId);
request.setMigrationJobName(MigrationJobName);
request.setSourceEndpointRegion(SourceEndpoint_Region);
request.setSourceEndpointInstanceType(SourceEndpoint_InstanceType);
request.setSourceEndpointInstanceID(SourceEndpoint_InstanceId);
request.setSourceEndpointUserName(SourceEndpoint_UserName);
request.setSourceEndpointPassword(SourceEndpoint_Password);
request.setDestinationEndpointInstanceType(DestinationEndpoint_InstanceType);
request.setDestinationEndpointInstanceID(DestinationEndpoint_InstanceId);
request.setDestinationEndpointUserName(DestinationEndpoint_UserName);
request.setDestinationEndpointPassword(DestinationEndpoint_Password);
request.setMigrationModeStructureIntialization(MigrationMode_StructureIntialization);
request.setMigrationModeDataIntialization(MigrationMode_DataIntialization);
request.setMigrationModeDataSynchronization(MigrationMode_DataSynchronization);
request.setMigrationObject(MigrationObjects);
try {
ConfigureMigrationJobResponse response = client.getAcsResponse(request);
System.out.println("Configure "+ MigrationJobId+ " Succeed");
} catch (Exception e) {
// TODO: handle exception
System.out.println("Configure "+MigrationJobId + " Failed!");
System.out.println(e.toString());
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。