tencent cloud

数据传输服务

动态与公告
产品动态
公告
产品简介
产品概述
数据迁移功能描述
数据同步功能描述
数据订阅(Kafka 版)功能描述
产品优势
支持的地域
规格说明
购买指南
计费概述
变更配置说明
欠费说明
退费说明
快速入门
数据迁移操作指导
数据同步操作指导
数据订阅操作指导(Kafka 版)
准备工作
业务评估
网络准备
添加 DTS IP 地址至对接数据库白名单
DTS 服务权限准备
数据库及权限准备
配置自建 MySQL 系的 Binlog
数据迁移
数据迁移支持的数据库
云数据库跨账号实例间迁移
迁移至 MySQL 系列
迁移至 PostgreSQL
迁移至 MongoDB
迁移至 SQL Server
迁移至腾讯云分布式缓存数据库
任务管理
数据同步
数据同步支持的数据库
云数据库跨账号实例间同步
同步至 MySQL 系列
同步至 PostgreSQL
同步至 MongoDB
同步至 Kafka
任务管理
数据订阅(Kafka 版)
数据订阅支持的数据库
MySQL 系列数据订阅
TDSQL PostgreSQL 数据订阅
MongoDB 数据订阅
任务管理
消费管理
前置校验不通过处理方法
检查项汇总
割接说明
监控与告警
支持的监控指标
告警通知功能
通过控制台配置指标告警和事件告警
通过 API 配置指标告警和事件告警
运维管理
配置系统维护时间
任务状态扭转说明
实践教程
本地数据库同步上云
构建双向同步数据结构
构建多对一同步数据结构
构建多活数据中心
数据同步冲突策略如何选择
使用 CLB 代理将其他账号下的数据库迁移至本账号下
通过云联网方式迁移自建数据库至腾讯云数据库
DTS 性能调优最佳实践
常见问题
数据迁移
数据同步
数据订阅 Kafka 版常见问题
数据订阅正则表达式
错误处理
常见错误处理
连通性测试不通过
校验项结果不通过或者出现警告
云联网接入配置源数据时无法选择子网
迁移慢或者进度卡住
数据同步有延时
数据订阅延迟过高
数据消费异常
API 文档
History
Introduction
API Category
Making API Requests
(NewDTS) Data Migration APIs
Data Sync APIs
Data Consistency Check APIs
(NewDTS) Data Subscription APIs
Data Types
Error Codes
DTS API 2018-03-30
相关协议
服务等级协议
文档数据传输服务数据同步云数据库跨账号实例间同步

云数据库跨账号实例间同步

PDF
聚焦模式
字号
最后更新时间: 2023-11-21 20:40:55

操作场景

云数据库跨账号实例间数据同步,指源库和目标库都属于腾讯云数据库实例,但所属不同的主账号名下,这种数据库实例之间的数据同步。本章节介绍通过 DTS 数据同步功能实现从其他账号腾讯云数据库实例同步数据至本账号下云数据库实例。

支持范围

支持腾讯云数据库实例 MySQL/TDSQL MySQL/TDSQL-C MySQL/MariaDB/PostgreSQL 间的跨账号同步,具体请参见 数据同步支持的数据库 中的表信息跨账号同步列。

前提条件

已创建目标数据库实例。

注意事项

本操作中涉及多处账号信息配置,如下列出了主要配置逻辑,以方便用户理解和正确配置。
数据同步方向:源数据库(其他账号的数据库实例)> 目标数据库(本账号的数据库实例)。
执行同步任务的账号可以是目标数据库的主账号,也可以目标数据库的子账号。
使用主账号执行同步任务。操作任务前,需要请求源数据所属主账号持有人进行角色授权(给目标数据库的主账号),使目标数据库主账号可以访问源数据库。
使用子账号执行同步任务。操作任务前,需要先请求源数据所属主账号持有人进行角色授权(给目标数据库的主账号),使目标数据库主账号可以访问源数据库。然后再请求目标数据库所属主账号持有人进行策略授权(对目标数据库的子账号),使目标数据库子账号可以访问源数据库。

授权账号

使用主账号执行同步任务,请操作步骤1 - 6,使用子账号执行同步任务,请操作步骤1 - 11。
1. 使用源数据库所属的腾讯云主账号登录 访问管理控制台(如果子账号有CAM和角色相关的权限,也可以使用子账号登录)。
2. 左侧导航单击角色,进入角色管理页面,然后单击新建角色
3. 在选择角色载体页面,选择腾讯云账户方式。



4. 输入角色载体信息页面,配置相关信息,单击下一步


云账号类型:选择其他主账号
账号 ID:填入目标数据库所属的腾讯云主账号 ID,主账号 ID 可在 账号信息 中查看。目标数据库实例属于子账号名下时,此处也填写主账号 ID。
外部 ID:可依据情况,选择性开启。
说明
如果使用了外部 ID,请用户自行记录和保存该 ID,后续配置需要填写。
5. 配置角色策略页面,选择 DTS 策略和源数据库服务对应策略,单击下一步
DTS 服务策略,选择 QcloudDTSReadOnlyAccess。
源数据库服务对应策略。
源数据库为云数据库 MySQL,选择 QcloudCDBReadOnlyAccess (云数据库 CDB 相关资源只读访问权限),QcloudCDBInnerReadOnlyAccess(CDB 的读取列表权限)。
源数据库为云数据库 MariaDB,选择 QcloudMariaDBReadOnlyAccess(云数据库 MariaDB 只读访问权限)。
源数据库为云数据库 TDSQL MySQL,选择 QcloudTDSQLReadOnlyAccess(TDSQL MySQL 版(TDSQL for MySQL)只读访问权限)。
源数据库为云数据库 TDSQL-C MySQL,选择 QcloudCynosDBReadOnlyAccess(云原生数据库 TDSQL-C(CynosDB)只读访问权限)。
源数据库为云数据库 PostgreSQL,选择 QcloudPostgreSQLReadOnlyAccess(云数据库 PostgreSQL 只读访问权限)。

6. 配置角色标签,然后在审阅页面,设置角色名称,单击完成后该角色创建完成。
说明
配置后记录该名称,后续创建同步任务时需要输入。

说明
如果执行同步任务的账号为主账号,授权步骤到此结束;如果为子账号,还需要继续进行如下步骤7-11,请求当前主账号持有人,对子账号进行策略授权。
7. (可选)使用目标数据库所属的腾讯云主账号登录 访问管理控制台,在左侧导航单击策略,然后在右侧单击新建自定义策略,并选择按策略语法创建

8. (可选)选择空白模板,然后单击下一步


9. (可选)创建一个策略,策略的名称以及描述可以根据自己的需求填写,策略内容复制示例代码后,将红框中的内容替换成对应的信息。

策略语法示例:
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": ["name/sts:AssumeRole"],
"resource": ["qcs::cam::uin/10*******8:roleName/DTS-role"]
}
]
}
10. (可选)单击完成后返回到策略列表页,在列表页中单击关联用户/组


11. (可选)选择目标数据库实例所属子账号(即执行同步任务的子账号),单击确定,如下图所示。


创建同步任务

1. 使用目标数据库实例所属腾讯云账号,登录 DTS 控制台
2. 选择数据同步 > 新建同步任务,购买一个新的同步任务。
3. 购买完成后,返回数据同步列表,单击操作列的配置,进入配置同步任务页面。
4. 在设置源和目标数据页面,配置源库和目标库信息。下面以 MySQL 到 MySQL 的同步为例进行介绍。

跨账号关键参数配置如下:
接入类型:选择云数据库,表示源数据库属于腾讯云数据库实例。
是否跨账号:选择跨账号
跨腾讯云账号 ID: 填入源数据库所属的主账号 ID。
跨账号授权角色名称。即前文 授权账号 步骤6中创建的角色名称。您可以通过 角色 以及 跨账号角色 了解更多关于角色的概念。
角色外部 ID:如果前文 授权账号 步骤4中设置了外部 ID,则这里则必须按照设置的内容正确填写,否则会发生权限报错。没有设置则不需要填写。
说明
完成上述配置后,选择对应的所属地域,即可获取到跨账号下的实例列表,如果获取实例出现报错,则可能为配置错误,或者未授权,请参考 常见问题 进行处理。
5. 在设置同步选项和同步对象页面,对数据初始化选项、数据同步选项、同步对象选项进行设置,在设置完成后单击保存并下一步
6. 在校验任务页面,完成校验并全部校验项通过后,单击启动任务。 如果校验任务不通过,可以参考 校验不通过处理方法 修复问题后重新发起校验任务。
7. 返回数据同步任务列表,任务开始进入运行中状态。
说明
选择操作列的更多 > 结束可关闭同步任务,请您确保数据同步完成后再关闭任务。

常见问题

1. 跨账号拉取实例列表报错:role not exist[InternalError.GetRoleError]

请确认跨腾讯云账号 ID(应该为源数据库的主账号 ID)和跨账号授权角色名称(应该为 授权账号 步骤6中创建的角色名称)配置是否正确。如果还无法拉取,可能没有授权源数据库的服务权限(参考 授权账号 中的步骤5)。

2. 获取云数据库实例列表失败:InternalError:InternalInnerCommonError 角色中没有授权源数据库所属的腾讯云服务策略,请参考 授权账号 中的步骤5进行授权。

3. 跨账号拉取实例列表报错:you are not authorized to perform operation (sts:AssumeRole) ,resource (qcs::cam::uin/1xx5:roleName/xxxx) has no permission

出错原因:您当前创建同步任务使用的账号是子账号,并且当前子账号没有 sts:AssumeRole 权限。 解决方法
使用主账号来创建同步任务。
请求目标数据库所属的主账号持有人,参考 授权账号 对子账号授权,策略语法中的 resource,填写报错框中蓝色字段部分。

4. DTS 任务配置未填写角色外部 ID,或者填写错误,导致权限报错或者拉取数据库实例失败。

出错原因授权账号 时设置了外部 ID,但在 DTS 任务配置中未填写外部 ID,或者填写错误,导致权限报错或者拉取数据库示例失败。
解决方案:授权账号时如果设置了外部 ID,则 DTS 任务配置时需要正确填写,未设置则不需要填。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈