文档

ALIYUN::DTS::MigrationJob

更新时间:

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

说明

建议使用新版资源 ALIYUN::DTS::Instance(用于购买DTS实例)和 ALIYUN::DTS::MigrationJob2(配置数据迁移任务)。

语法

{
  "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

目标实例所在地域ID。

如果是自建数据库,可以选择离自建IDC物理距离最近的地域。

Port

String

目标实例监听端口。

当目标实例为自建数据库时,该参数必须指定。

DatabaseName

String

目标实例的连接数据库名。

目标实例的数据库类型为PostgreSQL、PPAS或MongoDB时,该参数必须指定。

EngineName

String

目标库的数据库类型。

当InstanceType为RDS、ECS、LocalInstance或Express时,该参数才可用且必须指定。

Password

String

目标实例的访问密码。

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。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      RdsInstanceId:
        Type: String
        AssociationProperty: ALIYUN::RDS::Instance::InstanceId
    Resources:
      MigrationJob:
        Type: ALIYUN::DTS::MigrationJob
        Properties:
          MigrationJobClass: small
          MigrationJobName:
            Ref: ALIYUN::StackName
          MigrationMode:
            StructureIntialization: true
            DataSynchronization: true
            DataIntialization: true
          SourceEndpoint:
            UserName: admin
            InstanceID:
              Ref: RdsInstanceId
            Region:
              Ref: ALIYUN::Region
            InstanceType: RDS
            Password: Admin@123
            Port: '3306'
          DestinationEndpoint:
            EngineName: MySQL
            Port: '3306'
            Region:
              Ref: ALIYUN::Region
            InstanceID:
              Ref: RdsInstanceId
            Password: Admin@123
            UserName: admin
            InstanceType: RDS
          MigrationObject:
            - DBName: MySQLDataBase
    Outputs:
      MigrationJobId:
        Description: Migration tasks task ID
        Value:
          Fn::GetAtt:
            - MigrationJob
            - MigrationJobId
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "RdsInstanceId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::RDS::Instance::InstanceId"
        }
      },
      "Resources": {
        "MigrationJob": {
          "Type": "ALIYUN::DTS::MigrationJob",
          "Properties": {
            "MigrationJobClass": "small",
            "MigrationJobName": {
              "Ref": "ALIYUN::StackName"
            },
            "MigrationMode": {
              "StructureIntialization": true,
              "DataSynchronization": true,
              "DataIntialization": true
            },
            "SourceEndpoint": {
              "UserName": "admin",
              "InstanceID": {
                "Ref": "RdsInstanceId"
              },
              "Region": {
                "Ref": "ALIYUN::Region"
              },
              "InstanceType": "RDS",
              "Password": "Admin@123",
              "Port": "3306"
            },
            "DestinationEndpoint": {
              "EngineName": "MySQL",
              "Port": "3306",
              "Region": {
                "Ref": "ALIYUN::Region"
              },
              "InstanceID": {
                "Ref": "RdsInstanceId"
              },
              "Password": "Admin@123",
              "UserName": "admin",
              "InstanceType": "RDS"
            },
            "MigrationObject": [
              {
                "DBName": "MySQLDataBase"
              }
            ]
          }
        }
      },
      "Outputs": {
        "MigrationJobId": {
          "Description": "Migration tasks task ID",
          "Value": {
            "Fn::GetAtt": [
              "MigrationJob",
              "MigrationJobId"
            ]
          }
        }
      }
    }
  • 本页导读 (1)
文档反馈