全部產品
Search
文件中心

Resource Orchestration Service:ALIYUN::DTS::MigrationJob

更新時間:Aug 13, 2024

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"
            ]
          }
        }
      }
    }