Q:DTS实例运行中,如果修改源库或目标库的密码会如何?
A:DTS实例会报错中断。您可以单击实例ID进入实例详情,在基本信息页签中修改源端或目标端的账号密码。然后进入任务管理页签报错的实例进展模块,在基本信息中重启该模块。
Q:为什么有的源库或目标库的接入方式没有公网IP?
A:与源库或目标库的接入方式、任务类型和数据库类型有关,例如对于MySQL数据库类型的源端,迁移和订阅任务可以选择公网IP接入,而同步任务是不支持公网IP接入。
Q:源库和目标库可以是同一个数据库实例么?
A:可以。若您的源库与目标库为同一个数据库实例,建议您使用映射功能对数据进行隔离和区分,否则可能会导致DTS实例失败或数据丢失。更多信息,请参见库表列名映射。
Q:为什么Redis为目标库的任务会报错OOM command not allowed when used memory > 'maxmemory'?
A:可能是因为目标Redis实例的存储空间不足。若目标Redis实例的架构类型为集群版,也可能是某一个分片达到了内存上限,您需要升级目标实例的规格。
Q:AliyunDTSRolePolicy权限策略是什么,有什么用?
A:AliyunDTSRolePolicy策略用于当前账号或跨账号访问云账号下的RDS、ECS等云资源,在执行数据迁移、同步或订阅任务的配置时可调用相关云资源信息。更多信息,请参见授予DTS访问云资源的权限。
Q:如何进行RAM角色授权?
A:在您首次登录控制台时,DTS会要求您授权AliyunDTSDefaultRole角色,请根据控制台提示跳转到RAM授权页面进行授权。更多信息,请参见授予DTS访问云资源的权限。
重要您需要使用阿里云账号(主账号)登录控制台进行操作。
Q:DTS任务填写的账号密码可以修改吗?
A:DTS任务填写的数据库账号密码支持修改,您可以单击实例ID进入实例详情,在基本信息页签中单击修改密码修改源端或目标端的账号密码。
重要DTS任务的系统账号密码不支持修改。
Q:MaxCompute表为什么有base后缀?
-
结构初始化。
DTS将源库中待同步表的结构定义信息同步至MaxCompute中,初始化时DTS会为表名增加_base后缀。例如源表为customer,那么MaxCompute中的表即为customer_base。
-
全量数据初始化。
DTS将源库中待同步表的存量数据,全部同步至MaxCompute中的目标表名_base表中(例如从源库的customer表同步至MaxCompute的customer_base表),作为后续增量同步数据的基线数据。
说明该表也被称为全量基线表。
-
增量数据同步。
DTS在MaxCompute中创建一个增量日志表,表名为同步的目标表名_log,例如customer_log,然后将源库产生的增量数据实时同步到该表中。
说明关于增量日志表结构的详细信息,请参见增量日志表结构定义说明。
-
Q:获取不到Kafka的topic,如何处理?
可能是当前配置的Kafka Broker没有topic信息,请参考如下命令检查topic的Broker分布情况:
./bin/kafka-topics.sh --describe --zookeeper zk01:2181/kafka --topic topic_nameQ:是否可以在本地搭建一个MySQL实例,作为RDS实例的从库?
A:可以,您可以使用数据传输服务DTS的数据迁移功能,配置RDS到本地自建MySQL实例的数据实时同步,实现主从架构。
Q:如何将RDS实例的数据复制到新创建的RDS实例中?
A:可以使用DTS数据迁移功能,迁移任务的迁移类型选择库表结构迁移、全量迁移、增量迁移。配置方法,请参见RDS实例间的数据迁移。
Q:DTS是否支持在一个RDS实例中,复制出一个除库名外一样的数据库?
A:支持,DTS提供的对象名映射功能,可以实现在一个RDS实例内复制出一个除库名外一样的数据库。
Q:DTS实例总是显示延迟,如何处理?
可能原因如下:
源端数据库实例使用不同账号创建了多个DTS任务,导致实例的负载过高,请使用同一个账号创建任务。
目标端数据库实例的内存不足,请做好业务安排后重启目标库实例。若无法解决问题,请升级目标端实例规格或进行主备切换。
说明主备切换过程中可能导致网络闪断,请确保您的应用程序具有自动重连机制。
Q:在旧版控制台同步或迁移到目标库后字段都是小写,如何处理?
A:请使用新版控制台配置任务,并使用目标库对象名称大小写策略功能。更多信息,请参见目标库对象名称大小写策略。
Q:DTS任务暂停后还能恢复么?
A:一般情况下,暂停时间不超过24小时的DTS任务可以正常恢复;若数据量较小,则暂停时间不超过7天的DTS任务可以正常恢复。建议暂停时间不要超过6小时。
Q:为什么任务暂停后重启,进度会从0开始?
A:任务重启后,DTS会重新查询已经完成的数据,然后继续处理剩余数据。在此过程中,任务进度可能会由于延迟而和实际有差异。
Q:DDL无锁变更的原理是什么?
A:DDL无锁变更的主要原理,请参见主要原理。
Q:DTS是否支持暂停某个表的同步或迁移?
A:不支持。
Q:如果任务失败需要重新购买吗?
A:不需要,可以在原任务上重新配置。
Q:多个任务都往同一个目标写数据会怎么样?
A:可能会导致数据不一致。
Q:为什么实例续费后仍然是锁定状态?
A:续费锁定的DTS实例后,需要一段时间实例才可以解锁,请耐心等待。
Q:DTS实例是否支持修改资源组?
A:支持。您可以进入实例的基本信息页面,在基本信息区域单击资源组名称后的修改进行变更。
Q:DTS是否有Binlog分析工具?
A:DTS没有Binlog分析工具。
Q:增量任务一直显示95%,是否正常?
A:正常。增量任务是持续进行、不会完成的,进度不会到100%。
Q:为什么DTS任务超过7天还没被释放?
A:偶尔会有冻结的任务保存时间超过7天的情况。
Q:已创建好的任务是否支持修改端口?
A:不支持。
Q:DTS任务中的PolarDB-X 1.0下面挂载的RDS MySQL是否可以降配?
A:不建议降配,降配会触发主备切换,可能会导致数据丢失。
Q:DTS任务运行期间,源或目标端实例是否可以升配或降配?
A:DTS任务运行期间,源或目标端实例升配或降配,可能会导致任务延迟或数据丢失,不建议对源或目标端实例变配。
Q:DTS任务对源端和目标端实例有什么影响?
A:全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,建议在业务低峰期执行全量任务。
Q:DTS任务的延迟大概是多少?
A:DTS任务延迟时间无法估算,因为延迟受限于源实例的运行负载、传输网络的带宽、网络延时、目标实例写入性能等多种因素的影响。
Q:若数据传输控制台自动跳转至数据管理DMS控制台,如何返回旧版数据传输控制台?
A:您可以在数据管理DMS控制台右下角的
中单击
,返回至旧版数据传输控制台。Q:DTS是否支持数据加密功能?
A:DTS支持通过SSL加密连接安全地访问源库或目标库,以便从源库读取数据或在目标库中写入数据,但不支持在数据传输过程中进行数据传输加密。
Q:DTS是否支持ClickHouse为源或目标?
A:不支持。
Q:DTS是否支持 2.0为源或目标?
A:云原生数据仓库 AnalyticDB MySQL 版 2.0仅支持作为目标端,且以云原生数据仓库 AnalyticDB MySQL 版 2.0为目标的方案暂未上线新版控制台,目前仅支持在旧版控制台配置。
Q:为什么在控制台上看不见新创建的任务?
可能是您选择的任务列表不正确,或者对任务进行了筛选。请在相应任务列表选择正确的筛选项,如在相应的任务列表选择正确的地域和资源组等。
请确认控制台顶部导航栏中账号全部资源资源范围下拉框和地域选择下拉框(如华东1(杭州))是否选择正确,资源范围或地域不匹配会导致新创建的任务不可见。
Q:已创建的任务置灰的配置项是否支持修改?
A:不支持。
Q:如何配置延迟告警及阈值?
A:DTS提供了监控报警功能,您可以通过控制台对重要的监控指标设置报警规则,让您及时了解运行状态。配置方法,请参见配置监控告警。
Q:失败时间较长的任务,能否查看失败的原因?
A:不可以。若任务失败的时间较长(如失败超过7天),相关日志会被清除,从而无法查看失败的原因。
Q:失败时间较长的任务,能否恢复?
A:不可以。若任务失败的时间较长(如失败超过7天),相关日志会被清除而无法恢复,您需要重新配置任务。
Q:rdsdt_dtsacct是什么账号?
A:若您未创建rdsdt_dtsacct账号,则该账号可能是由DTS创建的。DTS会在部分数据库实例中创建内置账号rdsdt_dtsacct,用于连接源和目标数据库实例。
Q:如何查看SQL Server中堆表、无主键表、压缩表、含计算列的表、含稀疏列的表信息?
您可以执行如下SQL检查源库是否存在这些场景的表:
-
检查源库堆表信息:
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.indexes WHERE index_id = 0); -
检查无主键表信息:
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id NOT IN (SELECT parent_object_id FROM sys.objects WHERE type = 'PK'); -
检查源库聚集索引列不包含的主键列信息:
SELECT s.name schema_name, t.name table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id WHERE t.type = 'U' AND s.name NOT IN('cdc', 'sys') AND t.name NOT IN('systranschemas') AND t.object_id IN ( SELECT pk_colums_counter.object_id AS object_id FROM (select pk_colums.object_id, sum(pk_colums.column_id) column_id_counter from (select sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.is_primary_key = 'true') pk_colums group by object_id) pk_colums_counter inner JOIN ( select cluster_colums.object_id, sum(cluster_colums.column_id) column_id_counter from (SELECT sic.object_id object_id, sic.column_id FROM sys.index_columns sic, sys.indexes sis WHERE sic.object_id = sis.object_id AND sic.index_id = sis.index_id AND sis.index_id = 1) cluster_colums group by object_id ) cluster_colums_counter ON pk_colums_counter.object_id = cluster_colums_counter.object_id and pk_colums_counter.column_id_counter != cluster_colums_counter.column_id_counter); -
检查源库压缩表信息:
SELECT s.name AS schema_name, t.name AS table_name FROM sys.objects t, sys.schemas s, sys.partitions p WHERE s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id = p.object_id AND p.data_compression != 0; -
检查包含计算列的表信息:
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_computed = 1); -
检查包含稀疏列的表信息:
SELECT s.name AS schema_name, t.name AS table_name FROM sys.schemas s INNER JOIN sys.tables t ON s.schema_id = t.schema_id AND t.type = 'U' AND s.name NOT IN ('cdc', 'sys') AND t.name NOT IN ('systranschemas') AND t.object_id IN (SELECT object_id FROM sys.columns WHERE is_sparse = 1);
-
Q:源和目标端的结构不一致如何处理?
您可以尝试使用映射功能,将源和目标端的列建立映射关系。更多信息,请参见库表列名映射。
说明不支持修改列的类型。
Q:库表列映射是否支持修改列的类型?
A:不支持。
Q:DTS是否支持限制源库的读取速度?
A:不支持,您需要在任务运行前评估源库的性能(如IOPS以及网络带宽是否满足要求),同时建议在业务低峰期运行任务。
Q:如何在控制台的任务列表设置每页显示实例的条数?
说明本操作以同步实例为例,进行介绍。
进入目标地域的同步任务列表页面(二选一)。
通过DTS控制台进入
登录数据传输服务DTS控制台。
在左侧导航栏,单击数据同步。
在页面左上角,选择同步实例所属地域。
通过DMS控制台进入
说明实际操作可能会因DMS的模式和布局不同,而有所差异。更多信息,请参见极简模式控制台和自定义DMS界面布局与样式。
登录DMS数据管理服务。
在顶部菜单栏中,选择。
在同步任务右侧,选择同步实例所属地域。
在页面右侧,将滚动条拖动到页面底部。
在页面的右下角,选择每页显示。
说明每页显示仅支持选择为10、20或50。
Q:DTS实例提示ZooKeeper连接超时如何处理?
请尝试重启实例,查看实例是否可以恢复。重启操作,请参见启动DTS实例。
Q:在CEN中删除DTS网段后,为何会自动重新添加回来?
A:可能是因为您使用了云企业网CEN的基础版转发路由器,将数据库接入到DTS。若您使用该数据库创建DTS实例,即使在CEN中删除DTS网段,DTS也会自动将服务器的IP地址段添加到相应的路由器中。
Q:DTS任务是否支持导出?
A:不支持。
Q:如何使用Java语言调用OpenAPI?
A:Java语言调用OpenAPI的方法与Python语言类似,请参见Python调用SDK示例。您可以进入数据传输服务DTS SDK页面,在所有语言选择目标编程语言后,查看示例代码。
Q:DTS是否支持Azure SQL Database?
A:支持。Azure SQL Database作为源库时,SQLServer增量同步模式需选择轮询查询CDC实例做增量同步。
Q:使用公网配置跨账号的DTS任务,是否需要配置RAM授权?
不需要。您可以在配置DTS任务时,将数据库实例的接入方式选择为公网IP,然后再进行相应的配置。
说明数据同步任务不支持以公网IP的方式接入数据库实例。
Q:DTS是否支持自动扩缩容?
A:DTS Serverless实例能够自动调整实例资源,从而实现自动扩缩容的功能。更多信息,请参见什么是DTS Serverless实例。
Q:公共云是否支持TDDL?
A:不支持。若您待同步或迁移的数据配置了TDDL规则,可能会导致任务失败。