活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      数据传输服务DTS

      数据传输服务DTS

        • 产品动态
        • 产品概述
        • 什么是数据传输服务
        • 支持的数据库
        • 产品优势
        • 技术架构和功能原理
        • 功能特性
        • 规格说明
        • 术语解释
        • 计费说明
        • 计费项
        • 续订
        • 到期与欠费
        • 退订
        • 访问数据传输服务
        • 安全
        • DTS如何保护用户的数据
        • 监控安全风险
        • 故障恢复
        • 操作日志
        • 权限管理
        • 相关服务
        • 快速入门
        • 准备工作概览
        • 注册天翼云账号并完成实名认证
        • 本地数据库到天翼云
        • 通过公网网络接入天翼云
        • 其他云数据库到天翼云
        • 通过公网网络接入天翼云
        • 阿里云MongoDB到天翼云DDS数据库的网络准备
        • 天翼云数据库到天翼云
        • 同VPC通过VPC网络接入天翼云
        • 同资源池不同VPC,通过对等连接接入天翼云
        • 不同资源池通过公网网络接入天翼云
        • 天翼云ECS自建数据库到天翼云
        • 同VPC通过VPC网络接入天翼云
        • 同资源池不同VPC,通过对等连接接入天翼云
        • 不同资源池通过公网网络接入天翼云
        • 用户指南
        • 数据迁移
        • 迁移方案概览
        • 入云
        • 将MySQL迁移到MySQL
        • 将PostgreSQL迁移到PostgreSQL
        • 将MySQL迁移到PostgreSQL
        • 将DDS/MongoDB副本集迁移到DDS/MongoDB副本集
        • 将DDS/MongoDB副本集迁移到DDS/MongoDB分片集群
        • 将DDS/MongoDB分片集群迁移到DDS/MongoDB分片集群
        • 将SQL Server迁移到SQL Server
        • 订购、续订、退订
        • 订购数据迁移实例
        • 续订数据迁移实例
        • 退订数据迁移实例
        • 实例配置和实例编辑
        • 配置迁移实例
        • 编辑迁移实例
        • 迁移对象管理
        • 对象名映射
        • 查看映射关系
        • 实例管理
        • 查看迁移进度
        • 查看迁移信息
        • 查看迁移日志
        • 使用数据稽查功能对比迁移项
        • 查看迁移详情
        • 生命周期管理
        • 实例状态说明
        • 开始/续传迁移实例
        • 暂停迁移实例
        • 限速设置
        • 监控告警
        • 性能监控
        • 告警配置和查看
        • 标签管理
        • 连接诊断
        • 数据同步
        • 同步方案概览
        • 入云
        • 将MySQL同步到MySQL
        • 将MySQL同步到PostgreSQL
        • MySQL实例间的双向同步
        • 将PostgreSQL同步到PostgreSQL
        • PostgreSQL实例间的双向同步
        • 将SQL Server同步到SQL Server
        • 订购、续订、退订
        • 实例配置和实例编辑
        • 配置同步实例
        • 编辑同步实例
        • 同步对象管理
        • 实例管理
        • 查看同步进度
        • 查看同步信息
        • 查看同步日志
        • 使用数据稽查功能对比同步项
        • 查看同步详情
        • 生命周期管理
        • 实例状态说明
        • 开始/续传同步实例
        • 暂停同步实例
        • 监控告警
        • 标签管理
        • 连接诊断
        • 连接管理
        • 常见问题
        • 产品咨询类
        • 网络安全类
        • 权限类
        • 数据迁移类
        • 数据同步类
        • 数据对比类
        • 通用操作类
        • 计费类
        • 时延类
        • 最佳实践
        • 最佳实践汇总
        • 其他云MySQL迁移到RDS for MySQL
        • 概述
        • 操作流程
        • 创建VPC和安全组
        • 创建RDS for MySQL实例
        • 其他云MySQL实例准备
        • 本地MySQL迁移到RDS for MySQL
        • 概述
        • 操作流程
        • 其他云PostgreSQL迁移到RDS for PostgreSQL
        • 概述
        • 操作流程
        • 本地PostgreSQL迁移到RDS for PostgreSQL
        • 概述
        • 操作流程
        • 安全白皮书
        • DTS安全白皮书
        • API参考
        • API使用说明
        • 故障排除
        • 预检查不通过修复方法
        • MySQL迁移/同步到MySQL
        • PostgreSQL迁移/同步到PostgreSQL
        • 将DDS/MongoDB迁移到DDS/MongoDB
        • 将SQL Server迁移/同步到SQL Server
        • 失败案例
        • 失败案例总览
        • 配置任务案例
        • 待迁移对象数目超过限制值(超过了最大上限)
        • 结构迁移/同步案例
        • 待迁移的对象在目标库已存在(xxx already exists)
        • 依赖的对象不存在(xxx does not exist)
        • 字段无效的默认值(Invalid default value for xxx)
        • 全量迁移/同步案例
        • 初始化目标表错误(getColumnList error)
        • 目标库处于只读状态(super-read-only)
        • 目标库磁盘空间不足(No space left on device)
        • 目标库磁盘空间不足(The table xxx is full)
        • 目标库锁异常(Lock wait timeout exceeded)
        • 内存溢出(OutOfMemoryError)
        • 数据库连接失败(Communications link failure)
        • 数据库连接数太多(Too many connections)
        • 增量迁移/同步案例
        • DML同步报表不存在的错误(Table xxx doesn't exist)
        • 插入数据字段不存在(unknown column 'xxx' in field list)
        • 增量DDL同步错误(Table xxx already exists)
        • 增量node未启动(no live node)
        • 增量拉取数据IO错误(EOF encountered)
        • 文档下载
        • 产品文档
        • 相关协议
        • 服务条款
          无相关产品

          本页目录

          帮助中心数据传输服务DTS故障排除预检查不通过修复方法将DDS/MongoDB迁移到DDS/MongoDB
          将DDS/MongoDB迁移到DDS/MongoDB
          更新时间 2024-05-08 13:17:14
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-05-08 13:17:14
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本页介绍DDS/MongoDB迁移到DDS/Mongo时各种预检查不通过情况的故障排除方法。

          数据库参数检查

          1、源库Oplog开启检查

          失败原因处理建议

          源数据库Oplog未开启。

          请确保已经开启Oplog,副本集默认自动开启Oplog。

          • 执行如下命令检查oplog.rs集合是否存在:

            use local

            show collections

          • 如果oplog.rs集合存在,则Oplog功能就是开启的。

          2、目标库实例状态检查

          失败原因处理建议

          目标库实例状态不正常。

          请检查目标库实例状态,需保证为正常状态。

          • 副本集请执行命令检查每个副本集成员的health字段是否为1,命令如下:

            rs.status()

          • 分片集群请检查mongos、shard的状态,确保能够正常连接。

          3、目标库磁盘空间检查

          失败原因处理建议

          无法建立与源库的连接获取待迁移数据量规模,因此无法执行此项检查。

          请检查源库是否连接成功。

          无法建立与目标库的连接,因此无法执行此项检查。

          请检查目标库是否连接成功。

          目标库磁盘空间不足,剩余磁盘空间大小<建议值。

          建议扩容目标库或清理目标库空间。

          目标数据库磁盘空间建议大小,取以下两种中的小值:

          • 源库待迁移数据大小的2.5倍。

          • 源库待迁移数数据大小加200GB。

          4、源库Balancer关闭检查

          失败原因处理建议

          源库为集群的增量任务,Balancer未关闭。

          分片集群增量迁移任务,Balancer必须关闭。

          先执行use config,切换到config库,执行以下命令:

          while( sh.isBalancerRunning() ) {      

                    print("waiting...");           

                    sleep(1000);

          }

          • 如果返回结果显示“waiting”,说明Balancer正在迁移数据块(chunk),此时不能关闭Balancer,以免导致数据不一致。

          • 如果返回为空,则说明当前Balancer没有在进行块(chunk)迁移,此时可以执行下一步的关闭Balancer的命令,命令如下:

            sh.stopBalancer()

          数据库用户权限检查

          1、源库用户权限检查

          失败原因处理建议

          连接源库的用户需要具备admin库的readAnyDatabase权限、clusterMonitor权限,local库的read权限。

          • 选择副本集增量迁移时,连接到DDS/MongoDB副本集源数据库,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"clusterMonitor",db:"admin"}, {role:"read",db:"local"}])

          连接源库的用户需要具备admin库的readAnyDatabase权限、clusterMonitor权限。

          • 选择副本集全量迁移时,连接到DDS/MongoDB副本集源数据库,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"}, {role:"clusterMonitor",db:"admin"}])

          连接源库mongos的用户需要具备admin库的readAnyDatabase权限,config库的read权限。

          • 选择分片集群全量或者增量迁移,连接到mongos账号的用户,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"},{role:"read",db:"config"}])

          连接源库shard的用户需要具备admin库的readAnyDatabase权限、clusterMonitor权限,local库的read权限。

          • 连接到shard账号的用户,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"readAnyDatabase",db:"admin"},{role:"read",db:"local"},{role:"clusterMonitor",db:"admin"}])

          2、目标库用户权限检查

          失败原因处理建议

          连接目标库的用户需要具备admin库的dbAdminAnyDatabase权限、readWriteAnyDatabase权限、clusterMonitor权限。

          • 连接到DDS/MongoDB副本集目标数据库,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"dbAdminAnyDatabase",db:"admin"}, {role:"readWriteAnyDatabase",db:"admin"},{role:"clusterMonitor",db:"admin"}])

          连接目标库的用户需要具备admin库的dbAdminAnyDatabase权限,admin库的readWriteAnyDatabase权限、clusterManager权限。

          • 连接到mongos目标数据库,使用超级用户或具有适当权限的用户执行以下命令,参考:

            db.grantRolesToUser("用户名",[{role:"dbAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase",db:"admin"},{role:"clusterManager",db:"admin"}])

          网络情况检查

          1、源库连通性检查

          失败原因处理建议

          源数据库账号或密码不正确。

          输入正确的数据库账号和密码后重新执行预检查。

          源数据库所在网络或服务器设置了防火墙。

          查看数据库所在的网络防火墙是否限制了DTS的IP地址段,如果有,关闭防火墙或者将DTS的IP地址加入防火墙白名单中。

          源数据库迁移账号登录权限不足。

          登录源库,为迁移账号添加相应的远程访问权限。

          网络互通问题。

          联系数据库所在机器管理人员和DTS部署机器管理人员排查问题。

          2、目标库连通性检查

          失败原因处理建议

          目标数据库账号或密码不正确。

          输入正确的数据库账号和密码后重新执行预检查。
          目标数据库所在网络或服务器设置了防火墙。查看数据库所在的网络防火墙是否限制了DTS的IP地址段,如果有,关闭防火墙或者将DTS的IP地址加入防火墙白名单中。

          目标库迁移账号登录权限不足。

          登录目标库,为迁移账号添加相应的远程访问权限。

          网络互通问题。

          联系数据库所在机器管理人员和DTS部署机器管理人员排查问题。

          数据库对象检查

          1、源库和目标库固定集合一致性检查

          失败原因处理建议

          用户选择迁移集合在目标库已经存在,并且是固定集合。

          为了保证数据的一致性,可以删除目标库已经存在的和用户选择迁移的同名集合,或者选择不迁移这些冲突的集合。

          源数据库的集合是固定集合,但是目标数据库存在和源库固定集合名称相同的普通集合。为了保证数据的一致性,可以删除目标库已经存在的和源库选择的固定集合的同名集合,或者选择不迁移这些冲突的固定集合。

          2、目标库存在与源库同名的非空集合检查

          失败原因处理建议

          无法建立与源库的连接,因此无法执行此项检查。

          请检查源库是否连接成功。
          无法建立与目标库的连接,因此无法执行此项检查。请检查目标库是否连接成功。
          目标库存在与源库同名的非空集合。

          请根据实际情况判断是否保留与源库同名的目标库下的同名非空集合,如果保留可能导致源库和目标库迁移后数据不一致。

          3、源库映射后的库名、集合名检查


          失败原因处理建议

          映射后存在不符合规范的库名。

          请确保源数据库映射后的库名不包含/\"$*<>:?.|和空格。

          映射后存在不符合规范的集合名。

          请确保映射后集合名中不包含$字符且不以system.开头。

          4、源库集合的索引个数检查

          失败原因处理建议

          源库存在索引数量大于10的集合,这类集合将导致迁移速度较慢。

          • 集合的索引个数会影响DTS迁移任务时间,请权衡是否需要将所有索引进行迁移。若非必要,可在启动迁移前考虑删除部分索引,删除索引的参考命令为:

            db.集合名.dropIndex(索引名)

          5、源库包含TTL的索引检查
          失败原因处理建议

          源库存在包含TTL索引的集合,这可能会影响迁移过程中的数据完整性,时钟不一致导致数据不一致。

          • 请检查这些集合的TTL设置,为保证迁移前后的数据一致性,需要删除TTL索引或者不迁移这些集合。删除索引的参考命令为:

            db.集合名.dropIndex(索引名)

          6、副本集名称检查
          失败原因处理建议
          • 源库的副本集名称填写错误。

          • 目标库的副本集名称填写错误。

          请检查源库或目标库填写的副本集名称是否正确。

          7、分片集群源库孤儿文档检查

          失败原因处理建议

          源库为分片集群,孤儿文档未被清理可能会导致迁移任务数据不一致和产生报错问题。

          分片集群增量迁移任务,源数据库必须关闭Balancer并清理孤儿文档。

          步骤1:请在可以连接分片集群实例的服务器上,创建一个用于清理孤立文档的JS脚本,脚本名称为cleanupOrphaned.js,内容如下:

          function cleanupOrphaned(coll) {

            var nextKey = { };

            var result;

            

            while ( nextKey != null ) {

              result = db.adminCommand( { cleanupOrphaned: coll, startingFromKey: nextKey } );

            

              if (result.ok != 1)

                 print("Unable to complete at this time: failure or timeout.")

            

              printjson(result);

            

              nextKey = result.stoppedAtKey;

            }

          }


          var dbName = 'yourDbName'

          db = db.getSiblingDB(dbName)

          db.getCollectionNames().forEach(function(collName) {

          cleanupOrphaned(dbName + "." + collName);

          });


          步骤2:将yourDbName替换为待清理孤儿文档的数据库名,执行命令,清理Shard节点下指定的数据库中所有集合的孤儿文档:

          mongo --host ShardIP --port Primaryport --authenticationDatabase database -u username -p password cleanupOrphaned.js

          其中ShardIP:Shard节点的IP地址;Primaryport:Shard节点中的Primary节点的服务端口;database:鉴权数据库名,即数据库账号所属的数据库;username:登录数据库的账号;password:登录数据库的密码。

          如果存在多个数据库,您需要重复执行步骤1和2,分别为每个数据库的每个Shard节点清理孤立文档。

          8、唯一索引数量检查

          失败原因处理建议

          目标为分片集群的情况,源库集合的唯一索引数量大于1。

          在源库集合有多个唯一索引的情况下,目标端为分片集群时,由于分片集群只允许单一唯一索引,在迁移过程中会选择一个唯一索引进行迁移,请用户确认是否删除其他唯一索引或继续迁移。 如果继续迁移,DTS选择迁移单个唯一索引,并在此唯一索引上建立分片键。删除索引的参考命令为:

          db.集合名.dropIndex(索引名)



          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  PostgreSQL迁移/同步到PostgreSQL
          下一篇 :  将SQL Server迁移/同步到SQL Server
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明