## 迁移思路
1.统计Oracle库中对象以及表数据量;
2.达梦数据库选择合适的初始化参数: BLANK_PAD_MODE 空格填充模式选1, CASE_SENSITIVE 大小写敏感;可以考虑开启兼容Oracle数据库的INI参数;
3.制定迁移计划:
  (1) 选择合理的迁移顺序; 
            先迁移序列、再迁移表、最后迁移视图。
  (2) 对于数据量大的表单独迁移;
  (3) 对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。

## 迁移工具
达梦数据库自带迁移工具DTS

## 迁移中遇到的问题:
**标度大于精度** 
Oracle 中 number(m,n)允许 n>m,但是在达梦中是不允许的,达梦中 m>=n,达梦 中 m 表示精度,n 表示标度。精度是一个无符号整数, 定义了总的数字数;标度定义了小 数点右边的数字位数。碰到这种问题一方面要思考一下 Oracle 里面列定义是否弄错了,如 果是特意这样设计的,要搞清楚这个列到底需要存放什么样的数据,单独迁移这张表,对达 梦中的数据类型进行修改。

**连接尚未建立或已经关闭** 
这个问题有可能是因为 Oracle 库中存在非法的数据如:-5486-12-31 00:00:00 这样 的非法的时间,在批量绑定插入的时候 JDBC 未作校验,服务器端检测到就会把这个连接剔 除,就会报这个错误。新版的 JDBC 驱动(2019-7 月以后)已经对此类问题进行了处理, 增加了校验,碰到非法的数据会直接报错。碰到这种问题建议使用最新的 JDBC 驱动,替换 掉迁移工具使用的 JDBC 驱动即可

**字符串截断** 
一般从 oracle 迁移到 DM7 的时候,出现字符串截断的一般都是字段中含有中文,出 现这种问题是因为 DM7 初始化的时候选择的字符集是 Unicode(即 utf-8),该字符集的 国际标准是一个汉字占 3 个字节,而 oracle 中默认情况下一个汉字占 2 个字节,此时迁移 的时候就会报下面的错误:

遇到该错误有 3 种解决办法。

1 是在初始化的时候,字符集选择 gb18030,如下图:

2 是选择 VARCHAR 类型以字符为单位,如图:

3 因为前面 2 种都需要重新初始化数据库,第三种不需要重新初始化数据库即可解决,即在选择迁移方式的时候,选择字符长度隐射关系为 2,如下图:

**记录超长**

DM7 在初始化的时候,选择的页大小影响后面表每行数据的长度,表每行的长度之和(普
通数据类型)不能超过一页大小,如果超过 1 页大小即报记录超长的错误,如下图:

解决办法:

(1) 找到表中 varchar 类型比较长的(如 varchar2(8000)这种),修改成 text 类型;
(2) 初始化的时候页大小选择 32k。(对于表中 varchar2 类型较长,并且字段较多的情
况不太适合,这种情况采用方法 1 解决。)
**违反唯一性约束**
这种情况是因为表中设置了唯一性约束或者主键约束,但是数据中有重复记录造成的。 这种情况有可能是原始库的约束被禁用了,或者数据重复迁移造成的。
解决办法:
在确定源数据没有问题的情况下,迁移的时候选择删除后再拷贝,如下图:
在迁移界面中,先中要迁移的表,然后点击转换

在弹出的窗口中选择删除后拷贝,如下图:

这样既可迁移成功。
**违反引用约束**
这种问题主要是由外键约束造成的,父表的数据没有迁移,先迁移了子表的数据,错误 如图所示:
解决办法:
迁移的时候先不迁移外键等约束,在选择好要迁移的表时,点击转换,按照下面步骤迁移。
(1)第一次只选择表定义,不选择约束等,如图:

(2)第一次迁移完成后(确保没有错误),第二次只选择数据,如图:

(3)第三步选择约束、索引等,如图:

按照上面三步迁移,基本上都可以顺利迁移成功。

**视图迁移过程中顺序问题:无效的用户对象**
这个问题一般是因为在迁移视图之前,没有将视图依赖的表迁移过去,如图所示:
解决办法:
严格按照迁移的顺序,先迁移表,然后再迁移视图、存储过程、函数等的顺序迁移即可。

达梦数据库——Oracle到达梦数据迁移相关推荐

  1. DM达梦数据库的使用以及数据迁移工具的使用

    1.找不到DM数据库的相关软件 我们打开虚拟机的终端,在根目录下输入命令: ./manager ------->是打开达梦数据库的管理工具 ./dts --------------->是打 ...

  2. mysql数据迁移 脚本_PHP将数据从Oracle向Mysql数据迁移实例

    为什么要迁移? 首先从运营成本考虑,用Mysql可以节约不少的费用.另一方面,Mysql的稳定性及功能不断地提高与增强,基本上可以满足客户的需求,如支持多 节点部署,数据分区等.还有就是Mysql使用 ...

  3. oracle 向mysql数据迁移

      为什么要迁移? 首先从运营成本考虑,用Mysql可以节约不少的费用.另一方面,Mysql的稳定性及功能不断地提高与增强,基本上可以满足客户的需求,如支持多 节点部署,数据分区等.还有就是Mysql ...

  4. 远程登录另一个mysql 数据库_Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...

    技术交流群:233513714 一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以 ...

  5. TiDB数据库备份恢复与数据迁移

    TiDB数据库备份恢复与数据迁移 数据迁移 使用 mydumper/loader 全量导入数据 mydumper/loader 全量导入数据最佳实践 某次导入示例,以及相关的配置 从 MySQL 导出 ...

  6. Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...

    技术交流群:233513714 一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以 ...

  7. 达梦DMHS中Oracle到达梦veri数据对比

    文章目录 前言 一.规划 二.源端配置ODBC 1.ODBC安装 2.配置文件 三.创建配置文件 1.Oracle源端agent配置文件 2.DM目的端agent配置文件 3.Oracle源端配置ve ...

  8. 达梦数据库--管理工具,数据迁移工具使用

    国产话达梦数据库,常用工具:达梦管理工具,达梦数据迁移工具. 1.达梦管理工具主要类似于navicat,是数据库可视化工具,新建连接输入IP,端口,账号,密码即可连接数据库. 之后在模式中,可以查看该 ...

  9. 查看达梦数据库表中的数据为乱码解决

    将数据库备份文件导入达梦数据库后,从windows启动应用系统,查看表中的数据时,表中的中文全部显示为乱码. 解决方法: 在目录C:\Windows\System32下创建文件dm_svc.txt,使 ...

最新文章

  1. ios android安全性分析,Android与iOS的对比分析及Android安全技术的设计与实现
  2. Java中常见数据结构Map之HashMap
  3. mybatis 动态 SQL
  4. 【干货】移动互联网时代的零售店面转型之道
  5. TensorFlow 常见API
  6. java中fork函数_java中的forkjoin框架的使用
  7. python列表、元组、字典、集合区别及他们之间的转换(超全)
  8. 【C语言】冒泡排序法
  9. qq相册回收站复原显示服务器繁忙,qq回收站照片怎么找回?3大恢复方法3分钟解决...
  10. 一、CRUB的使用及如何终端关机
  11. android跳到自带浏览器打开pdf
  12. 电脑公司Windows7_X86旗舰版V0911
  13. edi系统三要素_EDI的三要素
  14. JavaScript中会打印出undefined的情况汇总
  15. gif格式图片的解析
  16. Power BI报表常见格式 1 - 报告
  17. linux进阶-ssh命令的使用技巧全get
  18. 双飞燕G3-200N鼠标修理
  19. 用读小说的方式掌握c语言(仅适合初学,目的是让c的学习不枯燥)
  20. 微信小程序仿猫眼电影在线选座实现

热门文章

  1. dumpsys activity 相关命令解析
  2. 数据堂获得“维科杯·OFweek 2021人工智能行业最具投资价奖”
  3. 开店三大分享:咖啡店装修风格怎么确定?门店氛围如何打造?
  4. 关于VSCODE的插件 一
  5. 蛙跳差分格式(非恒定流)
  6. 和微信公众号编辑器战斗的日子
  7. 【数据仓库】现代数据仓库坏了吗?
  8. 2017前端技术预览(未完结,最后更新于1月13日)
  9. Java腾讯云支付对接
  10. 网站备案:阿里云-信息系统安全等级保护备案证明及网站服务合同下载