尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

DTS迁移总结

发布时间:2026/9/29 15:10:26

资讯中心
01
ARTICLE

DTS迁移总结

DTS迁移总结
DTS迁移总结达梦数据库有限公司2021年5月22目录1 从0到1的迁移顺序选择... 11.1 先搭建骨架... 11.2 重点迁移的地方... 21.3 迁移其余对象... 42 遭受问题的解决办法... 52.1 禁止创建位图索引... 52.2 违反唯一性约束... 62.3 触发器创建报错... 7从0到的迁移顺序选择对于该问题我们首先要清楚应该知道DTS迁移有哪些对象可选在第一张图可以看到有目录表空间上下文用户角色资源限制模式表视图物化视图序列存储过程函数触发器包类同义词模式内的或公共同义词自定义类型。在上面这些中最重要的就是表而表相关的迁移对象如第二张图大致包括表数据表定义即表的结构表的约束主键索引对象权限和注释。先搭建骨架对于DTS迁移我们常常要求用户表空间模式用户权限由操作人员先手动准备好。在实际执行过程中首先第一步就是建立表空间表空间的建立基于原本空间的大小例如从oracle迁移到达梦那么假如oracle里元数据为10G那么先在达梦中创建一个上限13G的表空间非常合理因为同样的数据在不同数据库中存储大小可能不同所以需要稍微大一点。用户模式用户权限同样基于现实情况而定。用户和模式跟着源库而用户权限对于一般的用户resource、public、vti、soi、svi角色的权限就足够。对于DBA权限要和用户沟通之后才可以赋予几种权限的功能如下。重点迁移的地方对于数据迁移最重点的就是表和数据的迁移在本次迁移实践中我切实体会到了这一点。在这一块迁移顺序大致为序列表结构表数据表主键、索引、约束和对象权限。首先讲一下原因原因非常简单就是要满足一个依赖关系的确立以及一个效率的问题。表结构的建立可能会用到序列表数据的迁移必定需要表结构先建立这些是依赖关系的一面先迁移表数据再迁移主键约束索引等可以减少判断的开销加强效率。迁移序列转换界面如此配置因为LAST_NUMBER并不准确使用下一个值是标准的做法。迁移表结构标准做法迁移数据处理完迁移数据的问题之后才可以进行迁移主键约束和索引标准做法如下迁移其余对象其余对象指的是视图物化视图存储过程函数触发器包类同义词模式内的或公共同义词自定义类型。这些对象可以分为两层来看。首先第一层是同义词自定义类型第二类是其他的。跟之前一样他们之间的分类基于依赖关系第二层需要第一层全部建好加上足够的权限。例如触发器可能需要用到自定义类型和同义词。标准操作如下。遭受问题的解决办法这里具体讲一下我遇到问题如何解决。禁止创建位图索引错误号: -3276错误消息:第2行附近出现错误:禁止创建位图索引---------------------------------CREATE BITMAP INDEX INDEX_CHECKTIMEON AMSDATA.AMS_CHECK_RECORD(FIRST_CHECKTIME,LAST_CHECKTIME,FIRST_CHECKSTATUS,LAST_CHECKSTATUS,CHECK_STATUS);错误号: -3276错误消息:第2行附近出现错误:禁止创建位图索引---------------------------------CREATE BITMAP INDEX INDEX_UMIDON AMSDATA.AMS_EMPDATA(UM_ID);首先我要先搞清楚原因先核对SQL语句首先通过报错锁定原因既然报错为禁止创建位图索引那么不是语法问题首先就要去看参数是否是对的在这一步就需要去查看DBA手册中相关的参数。违反唯一性约束错误号: -6612错误消息:违反唯一性约束---------------------------------CREATE UNIQUE INDEX INDEX_ARCHIVE_ID_USERON OADATA.OA_HI_ARCHIVE(APPROVE_ID);错误号: -6612错误消息:违反唯一性约束---------------------------------ALTER TABLE OADATA.ACT_GE_BYTEARRAY ADD CONSTRAINT NOT CLUSTER PRIMARY KEY(ID_) ;首先知道了具体的报错之后我要到现场去验证这里就需要具体问题具体分析例如上面的违反唯一性约束用下列语句查询。然后必须要当原本的源库上面同样查找这样才可以更加全面的了解。--查找所有重复的APPROVE_ID及其出现次数SELECT APPROVE_ID, COUNT(*) AS重复次数FROM OADATA.OA_HI_ARCHIVEGROUP BY APPROVE_IDHAVING COUNT(*) 1;这里我查出来的结果是oracle源库和达梦的不同类型条数是一样的。原因为网络中断后重新执行报错任务导致之前的任务被重新迁移了一遍。导致数据重复删掉重复的数据。然后重试。DELETE FROM OADATA.OA_HI_ARCHIVEWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM OADATA.OA_HI_ARCHIVE GROUP BY ID);DELETE FROM OADATA.OA_HI_ARCHIVEWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM OADATA.OA_HI_ARCHIVE GROUP BY APPROVE_ID);DELETE FROM OADATA.ACT_GE_BYTEARRAYWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM OADATA.ACT_GE_BYTEARRAY GROUP BY ID_);DELETE FROM OADATA.OA_MAILWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM OADATA.OA_MAIL GROUP BY ID);DELETE FROM OADATA.OA_TASK_CENTER_TASKWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM OADATA.OA_TASK_CENTER_TASK GROUP BY ID);触发器创建报错对于之类创建的问题最重要的就是要拿到两边的DDL语句。对于达梦的可以直接在DTS工具里面复制然后到DM管理工具里面执行看一下具体的报错。DDL语句如下对于oracle用下列语句查找得到DDL之后原因就明了了。SELECT DBMS_METADATA.GET_DDL(TRIGGER, YOUR_TRIGGER_NAME) FROM DUAL;
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。