数据传输服务DTS(Data Transmission Service)支持配置源库或目标库(两者或其一)跨阿里云账号的任务,适用于阿里云账号间的资源迁移、合并、业务架构调整等多种应用场景。
背景信息
在使用DTS配置跨账号(是否跨阿里云账号选择为跨账号)的任务前,您需要进行相应的RAM授权操作,以将创建DTS任务的阿里云账号(主账号)作为授信云账号,从而允许其通过数据传输服务访问数据库实例所属阿里云账号的相关云资源。
什么是跨账号任务
跨账号任务又称为跨阿里云账号任务,指的是源库或目标库实例属于其他阿里云账号(而不属于创建DTS任务的阿里云账号)的DTS任务。
跨账号任务的场景
对于创建DTS任务(登录DTS控制台)的阿里云账号而言,跨账号任务涉及三种不同的场景。
更多关于账号的信息,请参见账号信息。
| 场景 | 场景说明 | 配置说明 | 
| 源库跨账号 | 源库是否跨阿里云账号选择跨账号,且目标库是否跨阿里云账号选择不跨账号。 | 使用源库账号A配置RAM授权,使用目标库账号B创建DTS任务。 | 
| 目标库跨账号 | 源库是否跨阿里云账号选择不跨账号,且目标库是否跨阿里云账号选择跨账号。 | 使用目标库账号B配置RAM授权,使用源库账号A创建DTS任务。 | 
| 源库和目标库均跨账号 | 源库和目标库的是否跨阿里云账号均选择跨账号。 | 分别使用源库账号A和目标库账号B配置RAM授权,使用指定的账号C创建DTS任务。 | 
支持跨账号访问的数据库
数据库实例是否支持跨账号访问,仅与数据实例的数据库类型和接入方式有关。支持跨账号的数据库实例,如下表所示。
源库是否跨阿里云账号的配置结果,不影响目标库数据库类型的选项。
源库
| 数据库类型 | 接入方式 | 
| MySQL | 云实例、专线/VPN网关/智能网关、ECS自建数据库 | 
| PolarDB for MySQL | 云实例 | 
| Tair/Redis | 云实例、专线/VPN网关/智能网关、ECS自建数据库、云企业网CEN、数据库网关DG | 
| SQLServer | 云实例、专线/VPN网关/智能网关 | 
| PostgreSQL | 云实例、专线/VPN网关/智能网关 | 
| MongoDB | 云实例、专线/VPN网关/智能网关、ECS自建数据库、云企业网CEN | 
| Oracle | 专线/VPN网关/智能网关 | 
| PolarDB(兼容Oracle) | 云实例、专线/VPN网关/智能网关 | 
| PolarDB for PostgreSQL | 云实例 | 
| PolarDB-X 1.0 | 云实例 | 
| PolarDB-X 2.0 | 云实例 | 
| DB2 iSeries(AS/400) | 专线/VPN网关/智能网关 | 
| DB2 LUW | 专线/VPN网关/智能网关、ECS自建数据库 | 
| Mariadb | 云实例、专线/VPN网关/智能网关、ECS自建数据库 | 
| OceanBase(MySQL) | 云实例、专线/VPN网关/智能网关、ECS自建数据库 | 
| SLS | 云实例 | 
| AnalyticDB MySQL 3.0 | 云实例 | 
| Kafka | 云实例、专线/VPN网关/智能网关、ECS自建数据库 | 
目标库
| 数据库类型 | 接入方式 | 
| MySQL | 云实例 | 
| PolarDB for MySQL | 云实例 | 
| AnalyticDB MySQL 3.0 | 云实例 | 
| Tair/Redis | 云实例 | 
| ClickHouse | 云实例 | 
| SelectDB | 云实例 | 
| MongoDB | 云实例 | 
账号信息
在跨账号任务中,各阿里云账号(源库、目标库、DTS任务所属的阿里云账号)的用途与跨阿里云账号的数据库相关,存在以下三种情况。
跨阿里云账号的数据库:配置DTS任务时,是否跨阿里云账号选择为跨账号的数据库。可作为判断跨阿里云账号任务场景的依据。
表格使用示例:首先需要确认跨账号的是源库还是目标库,然后通过跨阿里云账号的数据库列寻找目标行,查看各阶段使用到的阿里云账号。
| 跨阿里云账号的数据库 | 登录RAM控制台的阿里云账号 | 信任策略中填入的阿里云账号 | 创建DTS任务的阿里云账号 | DTS任务填入的跨阿里云账号 | 
| 源库 | 源库所属的阿里云账号 | 目标库所属的阿里云账号 | 目标库所属的阿里云账号 | 源库信息:跨阿里云账号填入源库所属的阿里云账号 | 
| 目标库 | 目标库所属的阿里云账号 | 源库所属的阿里云账号 | 源库所属的阿里云账号 | 目标库信息:跨阿里云账号填入目标库所属的阿里云账号 | 
| 源库和目标库 | 源库和目标库所属的阿里云账号 | 指定的阿里云账号 | 指定的阿里云账号 | 
 | 
配置流程
- 确认跨阿里云账号任务的场景。 - 根据是否跨阿里云账号选择为跨账号的数据库实例,判断跨阿里云账号任务的使用场景。 
- 获取阿里云账号(主账号)ID。 - 获取数据库实例和创建DTS任务的阿里云账号(主账号)ID。 
- 使用数据库实例所属的阿里云账号(主账号)创建配置任务所需的RAM角色,并为其精确授权、修改信任策略。 
- 配置跨阿里云账号任务。 - 根据实际需求,配置跨阿里云账号的任务。 
前提条件
- 已创建任务所需的数据库实例。 
- 数据库实例所属的阿里云账号已授予DTS访问云资源的权限。 
准备工作
获取源库所属阿里云账号(主账号)ID
使用源库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
获取目标库所属阿里云账号(主账号)ID
使用目标库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
获取创建DTS任务的阿里云账号(主账号)ID
使用创建DTS任务的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
注意事项
- 当前仅RDS MySQL实例间、PolarDB MySQL版集群间、Tair(企业版)实例间、云数据库MongoDB版(副本集架构)间、云数据库MongoDB版(分片集群架构)间,支持跨账号的双向同步任务。 
- 跨账号的双向同步任务,同时属于源库跨账号和目标库跨账号的场景。因此,源库和目标库所属的阿里云账号(主账号)均需配置RAM授权。 
- 暂不支持不同属性账号之间(如金融云和政务云账号之间)的同步任务。 
- 登录控制台时,使用的阿里云账号均为阿里云账号(主账号)。若使用RAM用户(子账号),则可能会在创建DTS任务时提示授权不正确。 
操作步骤
本操作以同步任务为例,介绍DTS跨阿里云账号任务的配置步骤。
场景一:源库跨账号
- 配置RAM授权,详情请参见场景一:源库跨账号。 
- 使用目标库所属的阿里云账号(主账号),进入源库及目标库配置页面。 - 进入目标地域的同步任务列表页面(二选一)。 - 通过DTS控制台进入- 登录数据传输服务DTS控制台。 
- 在左侧导航栏,单击数据同步。 
- 在页面左上角,选择同步实例所属地域。 
 - 通过DMS控制台进入说明- 实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息,请参见极简模式控制台和自定义DMS界面布局与样式。 - 登录DMS数据管理服务。 
- 在顶部菜单栏中,选择。 
- 在同步任务右侧,选择同步实例所属地域。 
 
- 单击创建任务,进入任务配置页面。 
 
- 配置源库信息。 - 选择源库的数据库类型、接入方式、实例地区。 
- 将是否跨阿里云账号选择为跨账号。  
- 在跨阿里云账号文本框中,填入源库所属阿里云账号(主账号)的ID。 
- 在跨阿里云账号角色名文本框中,填入使用源库所属的阿里云账号(主账号)创建的RAM角色名称(例如ram-for-dts)。 重要- 请勿填入RAM用户名称、RAM角色的ARN或DTS的默认角色AliyunDTSDefaultRole。 
- RAM角色的创建操作,请参见步骤一:创建RAM角色。 
 
 
- 根据实际情况,参考相关配置文档,完成其他及后续配置。 
场景二:目标库跨账号
- 配置RAM授权,详情请参见场景二:目标库跨账号。 
- 使用源库所属的阿里云账号(主账号),进入源库及目标库配置页面。 - 进入目标地域的同步任务列表页面(二选一)。 - 通过DTS控制台进入- 登录数据传输服务DTS控制台。 
- 在左侧导航栏,单击数据同步。 
- 在页面左上角,选择同步实例所属地域。 
 - 通过DMS控制台进入说明- 实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息,请参见极简模式控制台和自定义DMS界面布局与样式。 - 登录DMS数据管理服务。 
- 在顶部菜单栏中,选择。 
- 在同步任务右侧,选择同步实例所属地域。 
 
- 单击创建任务,进入任务配置页面。 
 
- 配置目标库信息。 - 根据实际情况,配置源库信息。 
- 选择目标库的数据库类型、接入方式、实例地区。 
- 将是否跨阿里云账号选择为跨账号。  
- 在跨阿里云账号文本框中,填入目标库所属阿里云账号(主账号)的ID。 
- 在跨阿里云账号角色名文本框中,填入使用目标库所属的阿里云账号(主账号)创建的RAM角色名称(例如ram-for-dts)。 重要- 请勿填入RAM用户名称、RAM角色的ARN或DTS的默认角色AliyunDTSDefaultRole。 
- RAM角色的创建操作,请参见步骤一:创建RAM角色。 
 
 
- 根据实际情况,参考相关配置文档,完成其他及后续配置。 
场景三:源库和目标库均跨账号
- 配置RAM授权,详情请参见场景三:源库和目标库均跨账号。 
- 使用指定的创建DTS任务的阿里云账号(主账号),进入源库及目标库配置页面。 - 进入目标地域的同步任务列表页面(二选一)。 - 通过DTS控制台进入- 登录数据传输服务DTS控制台。 
- 在左侧导航栏,单击数据同步。 
- 在页面左上角,选择同步实例所属地域。 
 - 通过DMS控制台进入说明- 实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息,请参见极简模式控制台和自定义DMS界面布局与样式。 - 登录DMS数据管理服务。 
- 在顶部菜单栏中,选择。 
- 在同步任务右侧,选择同步实例所属地域。 
 
- 单击创建任务,进入任务配置页面。 
 
- 配置源库及目标库信息。 - 选择源库和目标库的数据库类型、接入方式、实例地区。 
- 配置源库跨账号信息。 - 将是否跨阿里云账号选择为跨账号。  
- 在跨阿里云账号文本框中,填入源库所属阿里云账号(主账号)的ID。 
- 在跨阿里云账号角色名文本框中,填入使用源库所属的阿里云账号(主账号)创建的RAM角色名称(例如ram-for-dts)。 重要- 请勿填入RAM用户名称、RAM角色的ARN或DTS的默认角色AliyunDTSDefaultRole。 
- RAM角色的创建操作,请参见创建RAM角色。 
 
 
- 配置目标库跨账号信息。 - 将是否跨阿里云账号选择为跨账号。  
- 在跨阿里云账号文本框中,填入目标库所属阿里云账号(主账号)的ID。 
- 在跨阿里云账号角色名文本框中,填入使用目标库所属的阿里云账号(主账号)创建的RAM角色名称(例如ram-for-dts)。 重要- 请勿填入RAM用户名称、RAM角色的ARN或DTS的默认角色AliyunDTSDefaultRole。 
- RAM角色的创建操作,请参见创建RAM角色。 
 
 
 
- 根据实际情况,参考相关配置文档,完成其他及后续配置。 
相关文档
常见报错
| 错误码 | 提示信息 | 报错原因 | 解决方案 | 
| DTS.Msg.Forbidden.AliyunUIDNotFound | 
 | 
 | 
 | 
| DTS.Msg.InvalidParameter.AliyunUidFormat | 
 | 在跨阿里云账号文本框中,填入的阿里云账号ID不正确。 | 在跨阿里云账号文本框中,填入正确的阿里云账号(主账号)ID。 说明  获取方式,请参见准备工作。 | 
| AssumeRoleFail | 
 | 在跨阿里云账号角色名文本框中,填入的RAM角色授权配置不正确(填入了RAM角色的ARN)。 | 在跨阿里云账号角色名文本框中,填入正确的RAM角色名称。 说明  更多信息,请参见跨阿里云账号任务如何配置RAM授权。 | 
| AssumeRoleFail | 
 | 
 | 
 说明  更多信息,请参见跨阿里云账号任务如何配置RAM授权。 | 
| AssumeRoleFail | 
 | 跨阿里云账号角色名文本框中,填入的RAM角色授权配置不正确。例如,精确授权不正确、未修改信任策略、信任策略代码中的 | 为跨阿里云账号角色名文本框中填入的RAM角色,配置正确的RAM授权。 说明  更多信息,请参见跨阿里云账号任务如何配置RAM授权。 | 
| NoPermission | (没有权限)当前操作未被授权。请联系账号管理员授权。 | 跨阿里云账号角色名文本框中,填入的RAM角色未精确授权或精确授权不正确。 | 为跨阿里云账号角色名文本框中填入的RAM角色,配置正确的精确授权。 说明  更多信息,请参见跨阿里云账号任务如何配置RAM授权。 | 
| Abnormal.RamCheckUserRole | 您尚未授权DTS系统默认角色“AliyunDTSDefaultRole”,如果您的账号有写RAM的权限可以自助前往RAM授权,否则需要您的主账号前往RAM进行角色授权后,再刷新本页面 | 在跨阿里云账号角色名文本框中,填入了DTS系统的默认角色AliyunDTSDefaultRole。 | 在跨阿里云账号角色名文本框中,填入正确的RAM角色名称。 说明  更多信息,请参见跨阿里云账号任务如何配置RAM授权。 |