ALIYUN::DTS::MigrationJob类型用于购买一个数据库迁移实例,同时可以配置数据迁移任务。

语法

{
  "Type": "ALIYUN::DTS::MigrationJob",
  "Properties": {
    "MigrationJobClass": String,
    "SourceEndpoint": Map,
    "MigrationJobName": String,
    "MigrationMode": Map,
    "DestinationEndpoint": Map,
    "MigrationObject": List
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
MigrationJobClass String 迁移实例规格 取值:
  • small
  • medium
  • large

各个规格的测试性能请参见数据迁移链路规格说明

SourceEndpoint Map 源实例
MigrationJobName String 迁移任务名称
MigrationMode Map 迁移任务模式
DestinationEndpoint Map 目标实例
MigrationObject List 需要迁移的对象

SourceEndpoint语法

"SourceEndpoint": {
  "UserName": String,
  "OracleSID": String,
  "InstanceID": String,
  "IP": String,
  "Region": String,
  "InstanceType": String,
  "Role": String,
  "DatabaseName": String,
  "OwnerID": String,
  "EngineName": String,
  "Password": String,
  "Port": String
}

SourceEndpoint属性

属性名称 类型 必须 允许更新 描述 约束
UserName String 源实例的访问账号。
OracleSID String 当源实例数据库类型为Oracle时,该参数为Oracle SID。
InstanceID String 目标实例ID。 根据InstanceType指定相应的实例ID。
IP String 目标实例连接地址。 当目标实例为本地自建数据库时,该参数必须指定。
Region String 目标实例所在地域。
InstanceType String 迁移源实例的实例类型。 取值:
  • RDS:阿里云RDS实例
  • ECS:ECS上的自建数据库
  • LocalInstance:有公网IP的自建数据库
  • Express:通过专线接入的自建数据库
  • MongoDB:阿里云MongoDB实例
  • POLARDB:阿里云POLARDB MySQL 集群
Role String 当源实例为RDS实例且与目标实例所属的阿里云账号不同时,该参数为源实例所属云账号中已授权的角色名称。 执行跨阿里云账号的数据迁移时须指定该参数。该角色所需的权限及授权方式请参见跨阿里云账号数据迁移或同步时如何配置RAM授权
DatabaseName String 数据库名称。 当源实例数据库类型为PostgreSQL或MongoDB时,该参数为创建连接时使用的数据库名称。
OwnerID String 当源实例为RDS实例且与目标实例所属阿里云账号不同时,该参数为源实例所属阿里云账号的UID。
EngineName String 源实例的数据库类型。 取值:
  • MySQL
  • SQLServer
  • PostgreSQL
  • Oracle
  • MongoDB
  • Redis
当InstanceType不为RDS时,该参数必须指定。
Password String 源实例的访问密码。
Port String 源实例的监听端口。 当源实例为自建数据库时,该参数必须指定。

MigrationMode语法

"MigrationMode": {
  "DataIntialization": Boolean,
  "StructureIntialization": Boolean,
  "DataSynchronization": Boolean
}

MigrationMode属性

属性名称 类型 必须 允许更新 描述 约束
DataIntialization Boolean 迁移任务是否进行全量数据迁移。 取值:
  • true
  • false
StructureIntialization Boolean 迁移任务是否进行结构迁移。 取值:
  • true
  • false
DataSynchronization Boolean 迁移任务是否进行增量数据同步。 取值:
  • true
  • false

DestinationEndpoint语法

"DestinationEndpoint": {
  "UserName": String,
  "InstanceID": String,
  "IP": String,
  "Region": String,
  "Port": String,
  "Role": String,
  "DatabaseName": String,
  "EngineName": String,
  "Password": String,
  "InstanceType": String
}

DestinationEndpoint属性

属性名称 类型 必须 允许更新 描述 约束
UserName String 目标实例的访问账号。
InstanceID String 目标实例ID。
IP String 目标实例连接地址。 当目标实例为本地自建数据库时,该参数必须指定。
Region String 目标实例所在区域。 如果是自建数据库,可以选择离自建IDC物理距离最近的地域。
Port String 目标实例监听端口。 当目标实例为自建数据库时,该参数必须指定。
DatabaseName String 目标实例的连接数据库名。 目标实例的数据库类型为PostgreSQL、PPAS或MongoDB时,该参数必须指定。
EngineName String 目标库的数据库类型。 当InstanceType为RDS、ECS、LocalInstance或Express时,该参数才可用且必须指定。
Password String 目标实例的访问密码。 取值:
  • MySQL
  • SQLServer
  • PostgreSQL
  • PPAS
  • MongoDB或Redis
InstanceType String 目标实例的实例类型。 该参数与SourceEndpoint.InstanceType相同
Role String 当源实例为RDS实例且与目标实例所属的阿里云账号不同时,该参数为源实例所属云账号中已授权的角色名称。

MigrationObject语法

"MigrationObject": [
  {
    "TableExcludes": List,
    "NewSchemaName": String,
    "NewDBName": String,
    "TableIncludes": List,
    "SchemaName": String,
    "DBName": String
  }
]

MigrationObject属性

属性名称 类型 必须 允许更新 描述 约束
TableExcludes List 待迁移库中不需要迁移的表。 示例值:[{"TableName": "a"}, {"TableName": "b"}, ...]
NewSchemaName String 待迁移Schema在目标实例中映射的Schema名称。 适用于SQLServer。
NewDBName String 待迁移数据库在目标实例中映射的库名称。 不适用于SQLServer。
TableIncludes List 待迁移库中需要迁移的表。
SchemaName String 待迁移Schema名称。 适用于SQLServer。
DBName String 待迁移库名称。 不适用于SQLServer。
  • 只配置DBName,没有配置其他对象的规则时,表示迁移这个数据库下面的所有对象。
  • 同时配置DBName和部分对象的规则时,不配置的对象默认不迁移。

TableIncludes语法

"TableIncludes": [
  {
    "ColumnExcludes": List,
    "FilterCondition": String,
    "NewTableName": String,
    "TableName": String,
    "ColumnIncludes": List
  }
]

TableIncludes属性

属性名称 类型 必须 允许更新 描述 约束
ColumnExcludes List 待迁移库中不需要迁移的列。 示例值:[{"ColumnName": "a"}, {"ColumnName": "b"}, ...]shou'xia
FilterCondition String 过滤条件。
NewTableName String 待迁移表在目标实例映。射的表名称。
TableName String 待迁移表表名称。
ColumnIncludes List 待迁移表中需迁移的列。

ColumnIncludes语法

"ColumnIncludes": [
  {
    "ColumnName": String,
    "NewColumnName": String
  }
]

ColumnIncludes属性

属性名称 类型 必须 允许更新 描述 约束
ColumnName String 待迁移表中需迁移列名称。
NewColumnName String 待迁移列在目标实例中映射的列名称。

ColumnExcludes语法

"ColumnExcludes": [
  {
    "ColumnName": String
  }
]   

ColumnExcludes属性

属性名称 类型 必须 允许更新 描述 约束
ColumnName String 待迁移表中不迁移列名。

TableExcludes语法

"TableExcludes": [
  {
    "TableName": String
  }
]   

TableExcludes属性

属性名称 类型 必须 允许更新 描述 约束
TableName String 待迁移库名不需要迁移表的表名。

返回值

Fn::GetAtt

MigrationJobId:迁移任务ID。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "MigrationJob": {
      "Type": "ALIYUN::DTS::MigrationJob",
      "Properties": {
        "MigrationJobClass": {
          "Ref": "MigrationJobClass"
        },
        "SourceEndpoint": {
          "Ref": "SourceEndpoint"
        },
        "MigrationJobName": {
          "Ref": "MigrationJobName"
        },
        "MigrationMode": {
          "Ref": "MigrationMode"
        },
        "DestinationEndpoint": {
          "Ref": "DestinationEndpoint"
        },
        "MigrationObject": {
          "Ref": "MigrationObject"
        }
      }
    }
  },
  "Parameters": {
    "MigrationJobClass": {
      "Type": "String",
      "Description": "Migrating instance specifications, which can be:small, medium, large. Various specifications of the reference data migration test performance specifications",
      "AllowedValues": [
        "small",
        "medium",
        "large"
      ]
    },
    "SourceEndpoint": {
      "Type": "Json",
      "Description": "Migration source configuration"
    },
    "MigrationJobName": {
      "Type": "String",
      "Description": "Migrating job name"
    },
    "MigrationMode": {
      "Type": "Json",
      "Description": "Migration mode"
    },
    "DestinationEndpoint": {
      "Type": "Json",
      "Description": "Migration target configuration"
    },
    "MigrationObject": {
      "Type": "Json",
      "Description": "Objects that need to be migrated"
    }
  },
  "Outputs": {
    "MigrationJobId": {
      "Description": "Migration tasks task ID",
      "Value": {
        "Fn::GetAtt": [
          "MigrationJob",
          "MigrationJobId"
        ]
      }
    }
  }
}

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  MigrationJob:
    Type: ALIYUN::DTS::MigrationJob
    Properties:
      MigrationJobClass:
        Ref: MigrationJobClass
      SourceEndpoint:
        Ref: SourceEndpoint
      MigrationJobName:
        Ref: MigrationJobName
      MigrationMode:
        Ref: MigrationMode
      DestinationEndpoint:
        Ref: DestinationEndpoint
      MigrationObject:
        Ref: MigrationObject
Parameters:
  MigrationJobClass:
    Type: String
    Description: Migrating instance specifications, which can be:small, medium, large.
      Various specifications of the reference data migration test performance specifications
    AllowedValues:
    - small
    - medium
    - large
  SourceEndpoint:
    Type: Json
    Description: Migration source configuration
  MigrationJobName:
    Type: String
    Description: Migrating job name
  MigrationMode:
    Type: Json
    Description: Migration mode
  DestinationEndpoint:
    Type: Json
    Description: Migration target configuration
  MigrationObject:
    Type: Json
    Description: Objects that need to be migrated
Outputs:
  MigrationJobId:
    Description: Migration tasks task ID
    Value:
      Fn::GetAtt:
      - MigrationJob
      - MigrationJobId