oracle迁移达梦7手顺及注意事项

1、概述
因为前段时间做了一次oracle迁移达梦7的工作,将迁移过程记录下来供大家参考.
ORACLE迁移到达梦7,主要需要完成以下工作:
1、确定迁移对象,选择合适的参数初始化DM7数据库。
2、使用dts迁移工具完成数据块对象和数据的迁移。
3、对出错的PLSQL对象进行手工移植,需要做少量修改。
4、迁移完成后进行检验、测试和优化。

2、迁移过程
2.1、环境准备
对于从oracle迁移达梦,需要对数据库的一些初始化参数先进行修改,可避免在迁移过程中的一些错误,推荐的参数设置如下:
1、页大小page_size,在达梦中,页大小默认是8k,如果数据库中表存在较多大字段,建议设置成16k或者32k,否则导入数据时会报错。
2、BLANK_PAD_MODE空格填充模式,默认是0,建议设置成1。
3、dm.ini中COMPATIBLE_MODE参数设置成2,表示兼容oracle;CALC_AS_DECIMAL修改为1
同时在迁移前需要在达梦中创建对应的用户,否则会将数据迁移到SYSDBA用户下。表空间也需要提前创建,否则会默认迁移到MAIN表空间下。
对于dts机器的内存推荐至少要大于4g,否则会出现”java heap space”之类内存不足的报错。
机器的CPU要多核,开12个以上的并行速度会快很多(实际本次操作只有1颗CPU)
尽量考虑上SSD,机械盘的速度比较慢(实际本次操作是在机械盘上)

2.2、迁移计划
迁移顺序:先迁移序列、再迁移表、然后迁移视图,最后迁移PLSQL对象,
数据量大的表单独进行迁移
对于分区表如果数据量没有超过 1 亿建议迁移成普通表,在分区列上创建索引
对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。
2.3、常规对象迁移
2.3.1、序列迁移
序列直接使用dts工具迁移即可,一般只要oracle库中序列范围不超过达梦序列可定义范围,基本不会报错。
2.3.2、表迁移
对于表的迁移,一般分三个步骤:1、迁移表结构(不包括约束和索引),2、迁移表数据,3、迁移表的索引和约束。

表结构迁移:
在这里插入图片描述
表结构在迁移过程中主要会因为分区表的问题出现错误,这是因为达梦中要求分区表的分区列必须是主键。对于这个类型的错误需要使用复合主键,将分区键添加到主键中。
在这里插入图片描述
在这里插入图片描述
表数据迁移:
表数据迁移时,只要page_size设置合适大小,基本不会有太多错误。数据量较大的情况可以根据情况开启
在这里插入图片描述
最后,等数据迁移完成后,只需要将表上的约束和索引再迁移即可。

视图迁移:
直接使用dts工具迁移即可,需要注意创建视图依赖的对象是否已经导入,还有相关权限的问题。

2.4、PLSQL对象迁移
主要对自定义类型、存储过程、函数、触发器进行移植。
在这里插入图片描述
该过程主要出现的错误有:
1、
/ 第 257 行, 第 15 列[CLASS]附近出现错误:
语法分析出错 /
这类错误式因为使用了达梦中的保留字,导致冲突。可以采用屏蔽保留字的方法屏蔽。

2、
无效的链接名/表或视图名[XXX]
这类错误是因为对象没有导入造成的,检查对应的表或视图是否存在,如果不存在手动插入。无效的链接名主要是dblink没有导入造成的,由于达梦中创建dblink语法和oracle有不同,所以需要手动改写.
3、
/ 第7 行附近出现错误:
无法解析的成员访问表达式[XXX] /
/ 相关SQL语句: /

这类错误主要是因为其它包之类的编译失效导致,需要具体分析再解决。

在迁移PLSQL对象时,基本上错误都是以上三类,对于第1,2两种类型的比较容易处理。

2.5、收尾工作
更新统计信息:
DBMS_STATS.GATHER_SCHEMA_STATS( ‘HNSIMIS’, --HNSIMIS 为模式名 100, FALSE, ‘FOR ALL COLUMNS SIZE AUTO’);

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在将 Oracle 数据库迁移达梦数据库时,需要注意换精度的问题。Oracle 数据库达梦数据库在数值类型的精度上存在差异,需要进行换。 在 Oracle 数据库中,数值类型包括 NUMBER、FLOAT 和 BINARY_FLOAT 等。其中,NUMBER 类型可以指定精度和小数位数,例如 NUMBER(10,2) 表示精度为 10,小数位数为 2。FLOAT 和 BINARY_FLOAT 类型的精度由系统自动确定。 而在达梦数据库中,数值类型包括 NUMBER、FLOAT 和 DOUBLE 等。其中,NUMBER 类型可以指定精度和小数位数,例如 NUMBER(10,2) 表示精度为 10,小数位数为 2。FLOAT 和 DOUBLE 类型的精度由系统自动确定。 在将 Oracle 数据库迁移达梦数据库时,需要注意以下几点: 1. 换精度:需要将 Oracle 数据库中的数值类型换为达梦数据库中相应的数据类型,并注意换精度的问题。在换过程中,需要确保达梦数据库中的精度和小数位数足够满足业务需求。 2. 数据溢出:由于 Oracle 数据库达梦数据库的数值类型精度不同,可能会出现数据溢出的情况。在进行数据迁移前,需要检查 Oracle 数据库中的数据是否会出现溢出的情况,并根据需要进行数据类型的换或调整达梦数据库的精度。 3. 数据类型的兼容性:Oracle 数据库达梦数据库的数据类型不完全相同,需要进行数据类型的兼容性检查。在进行数据迁移前,需要检查 Oracle 数据库中的数据类型是否与达梦数据库中的数据类型兼容,如不兼容,需要进行相应的数据类型换。 总之,在进行 Oracle 数据库达梦数据库迁移时,需要仔细检查数据类型的精度和兼容性,以确保数据迁移的准确性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值