Oracle到DM迁移

13 篇文章 0 订阅
12 篇文章 0 订阅

目录

一.迁移流程图:

二.迁移前准备

2.1 统计Oracle信息

2.2 创建DM目标端实例

(1)初始化实例:

2.3 迁移计划

三.正式迁移

3.1 dm.ini开启oracle兼容参数

3.2 启动DTS工具

3.3 迁移表定义

3.4 迁移表数据

3.5 迁移索引和约束

3.6 迁移视图触发器及同义词

四.更新统计信息

方法一:执行sql

方法二:登录管理工具

五.迁移后验证

5.1使用命令行对比

5.2使用dts工具对比

(1)创建dts对比任务:


一.迁移流程图:

二.迁移前准备

2.1 统计Oracle信息

查看页大小和字符集:

--统计页大小

LIU@ prod>select name,value from v$parameter where name ='db_block_size';

NAME VALUE

--------------------------------------------------------------

db_block_size  8192

--查询编码格式

SYS@ prod>select * from v$nls_parameters a where a.PARAMETER='NLS_CHARACTERSET';

PARAMETER VALUE

--------------------------------------------------------------

NLS_CHARACTERSET ZHS16GBK

查看数据类型:

SYS@ prod>select owner,object_name,object_type from dba_objects where owner='LIU' order by 3;

OWNER  OBJECT_NAME OBJECT_TYPE

---------------------------------------------------------------------------------------------------------------------------------

LIU    SYS_C0011392   INDEX

LIU    TEST_PART_PK   INDEX

LIU    SYS_C0011402   INDEX

LIU    SYS_C0011386   INDEX

LIU    SYS_C0011400   INDEX

LIU    SYS_C0011394   INDEX

LIU    SYS_C0011398   INDEX

LIU    SYS_C0011384   INDEX

LIU    SYS_C0011396   INDEX

LIU    SYS_C0011388   INDEX

LIU    SYS_C0011390   INDEX

LIU    LIU_SYNONYM  SYNONYM

LIU    TEST_PART  TABLE

LIU    LIU10   TABLE

LIU    LIU9   TABLE

LIU    LIU8   TABLE

LIU    LIU7   TABLE

LIU    LIU6   TABLE

LIU    LIU5   TABLE

LIU    LIU4   TABLE

LIU    LIU3   TABLE

LIU    LIU1   TABLE

LIU    LIU2   TABLE

LIU    TLK_P_NEWS_MDS   TABLE

LIU    TEST_PART TABLE PARTITION

LIU    TR_P_NEWS TRIGGER

LIU    TEST_VIEW VIEW

查看表大小:

LIU@prod>select SEGMENT_NAME,(BYTES/1024/1024) MB from dba_segments where owner='LIU' order by 1;

SEGMENT_NAME  MB

------------------------------ ----------

LIU1     .0625

LIU2     .0625

LIU3     .0625

LIU4     .0625

LIU5     .0625

SYS_C0011384     .0625

SYS_C0011386     .0625

SYS_C0011388     .0625

SYS_C0011390     .0625

SYS_C0011392     .0625

已选择10行

2.2 创建DM目标端实例

(1)初始化实例:

注意:

根据Oracle实例的字符集选择初始化对应的DM实例,如Oracle使用GBK,达梦建议使用GB18030,Oracle使用UTF8,达梦也对应选择UTF8。

dminit path=/dm8/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=2 DB_NAME=DMDB INSTANCE_NAME=DMSERVER PORT_NUM=5236

  1. 创建表空间和用户

从 Oracle 移植到 DM,要求必须创建新的用户和表空间,不要把数据迁移到

系统管理员 SYSDBA 用户下和 MAIN 表空间下。迁移需要的表空间及用户即可。

create tablespace LIU datafile '/dm8/dmdata/DMDB/liu.dbf' size 1024  autoextend on next 1 maxsize 10240 CACHE = NORMAL;

create user "LIU" IDENTIFIED BY "liu123456" DEFAULT TABLESPACE "LIU";

  1. 根据Oracle端用户权限进行授权

Oracle端:

select * from dba_sys_privs where grantee='LIU';

未选定行

SYS@ prod>select  * from dba_role_privs where grantee='LIU';

GRANTEE      GRANTED_ROLE   ------------------------------------------------------------------------------------------ ------------------------------

LIU           CONNECT     

LIU           RESOURCE       

DM端:

grant RESOURCE,public to liu;       

2.3 迁移计划

(1)选择合理的迁移顺序:先迁移序列、再迁移表、最后迁移视图、函数、存储过程、触发器等。 (最后一部分可一起迁移)

(2)对于数据量大的表单独迁移。

(3)对于分区表如果数据量没有超过 1 亿建议迁移成普通表,在分区列上 创建索引。

(4)对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。

(5)数据量较大时,可开启快速装载

三.正式迁移

3.1 dm.ini开启oracle兼容参数

SQL>SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',2);

3.2 启动DTS工具

点击按钮创建新的工程,输入工程名和工程描述,点击【确定】,即可创建工程,如下图所示:

右键选择【新建迁移】,输入迁移名称和迁移描述,即可创建迁移,如下图所示:

输入迁移名称:Oracle-DM,点击【确定】按钮,完成迁移的创建,如下图所示:

选中新建的迁移,即可查看迁移工具的欢迎界面,介绍了迁移工具的支持情况等信息,如下图所示:

在欢迎界面点击【下一步】,选择要迁移的方式,以 Oracle 迁移到 DM 数据库为例,如下图所示:

 

输入数据源(Oracle 数据库)的信息:主机名 (IP) 、端口,服务名(Oracle 默认服务名 ORCL),角色(默认),用户名和口令,如下图所示:

要确认数据库信息正确,保持开启状态,Oracle 监听已启动。

指定驱动ojdbc6.jar

 

3.3 迁移表定义

 

 

3.4 迁移表数据

(1)选择需要导入的模式及对象

(2)勾选需要迁移的对象,选择转换

(3)取消勾选,表定义,勾选数据,修改普通表一次扫描读取行数和提交行数

修改大字段表一次扫描读取行数和提交行数

设置主键冲突处理,设置导入导出并发数

勾选了快速装载

 

 

 

导入表数据完成,无报错

3.5 迁移索引和约束

注:记住勾选选项(保留引用表原有模式信息)

如果不勾选快速装载迁移,总迁移时间会延长

3.6 迁移视图触发器及同义词

 

 

四.更新统计信息

迁移完整的库建议按照库模式更新统计信息,凡是涉及到迁移数据的及时进行更新统计信息的操作。

方法一:执行sql

DBMS_STATS.GATHER_SCHEMA_STATS('username',1.0,TRUE,'FOR ALL INDEXED SIZE AUTO');

DBMS_STATS.GATHER_SCHEMA_STATS('username',30,TRUE,'FOR ALL COLUMNS SIZE AUTO');

方法二:登录管理工具

库模式更新:

表模式更新:

列模式更新:

更新索引:


五.迁移后验证

5.1使用命令行对比

  1. 对象数对比

Oracle:

select owner,object_type,count(object_name) from dba_objects where owner='LIU' group by owner,object_type order by 3;

OWNER  OBJECT_TYPE        COUNT(OBJECT_NAME)

---------------------------------------- --------------------------------------------------------- ------------------

LIU  TABLE PARTITION     1

LIU  VIEW     1

LIU  TRIGGER     1

LIU  SYNONYM     1

LIU  INDEX    11

LIU  TABLE    12

DM:

select owner,object_type,count(object_name) from dba_objects where owner='LIU' group by owner,object_type order by 3;

行号     OWNER OBJECT_TYPE     COUNT(OBJECT_NAME)  

---------- ----- --------------- ----------------------------------------------------------

1          LIU   VIEW             1

2          LIU   SCH              1

3          LIU   SYNONYM         1

4          LIU   TRIGGER          1

5          LIU   TABLE PARTITION   1

6          LIU   CONSTRAINT      12

7          LIU   TABLE            12

8          LIU   INDEX            30

  1. 数据量对比

Oracle:

select owner,segment_name,(bytes/1024/1024) MB from dba_segments where owner='LIU'  and segment_type='TABLE';

OWNER        SEGMENT_NAME       MB

------------------------------ ------------------------------ ----------- ------------------------------

LIU        SYS_C0011392     .0625

LIU        SYS_C0011390     .0625

LIU        SYS_C0011388     .0625

LIU        SYS_C0011386      .0625

LIU        SYS_C0011384     .0625

LIU        TAB_CNT_ORA     .0625

LIU        ORA_TABLES     .0625

LIU        LIU5     .0625

LIU        LIU4     .0625

LIU        LIU3     .0625

LIU        LIU2     .0625

LIU        LIU1     .0625

DM:

select owner,segment_name,(bytes/1024/1024) MB from dba_segments where owner='LIU'  and segment_type='TABLE';

行号     OWNER SEGMENT_NAME   MB                  

---------- ----- -------------- --------------------

1          LIU   TLK_P_NEWS_MDS 1

2          LIU   LIU1           1

3          LIU   LIU10          1

4          LIU   LIU2           1

5          LIU   LIU3           1

6          LIU   LIU4           1

7          LIU   LIU5           1

8          LIU   LIU6           1

9          LIU   LIU7           1

10         LIU   LIU8           1

11         LIU   LIU9           1

5.2使用dts工具对比

(1)创建dts对比任务:

 

 

 

 

 

 

 

 

 

  1. dts对比报告

经对比,不一致对象如下:

(1)查看表对象不一致原因:

在DM中会将Oracle的DATA类型转换为’TIMESTAMP’格式,此报错可忽略。

(2)查看视图不一致原因:

经查看视图查询结果,均一致。只是DM创建视图语句和Oracle略微不同。报错可忽略

 

(3)查看触发器不一致原因:由于Oracle端触发器编译本身就有问题,执行不成功。所以DM端此问题可忽略。

达梦云适配技术社区
https://eco.dameng.com/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值