全部產品
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"
            ]
          }
        }
      }
    }