0
点赞
收藏
分享

微信扫一扫

oracle exp文件导入到DM环境中​

杰森wang 2022-07-27 阅读 81


迁移思路概述

exp文件导入oracle库中---达梦dts迁移工具迁移oracle迁至dm

实施步骤

前置准备:

达梦数据库目标端前置检查

序号

检查项

检查命令

备注说明

1

数据库字符集

最好相同,至少保证达梦的字符集要比oracle的字符集要大

2

达梦开启兼容oracle模式

配置dm.ini 的compatible_mode=2


空格填充模式

BLANK_PAD_MODE=1 兼容oracle

3

数据库簇大小

32

4

数据库页大小

32

5

开启大小写敏感

开启

6

整数相除是否保留小数位

CALC_AS_DECIMAL 配置2或1

7

导入的用户是否建立

默认自动建立

8

是否表空间名称一致

不存在会自动建立

9

用户默认表空间是否设置

需手动设置


待补充



迁移对像信息收集

迁移对像合计


迁移对象明细


表数据合计及各表记录数


表中字段类型统计


备注:因exp数据只给的metada信息,且是简单测试,此项信息简单表语句查询即可,较为正式环境需要正常统计出以上相关对象并提交客户确认,方可进行后续的迁移操作

迁移工具检查

版本与dm和oracle兼容性

迁移工具端与dm和数据库连接性

检查结果正常

对像迁移顺序

序列---表---视图---函数---存储过程----函数包---job作业

实施步骤

还原dmp文件oracle库

  • 查看oralce exp文件导出日志,确认是用expdp工具导出
  • oracle exp文件导入到DM环境中​_数据库


  • oracle exp文件导入到DM环境中​_数据_02


  • 登陆oracle数据库,此处为方便直接登录数据库服务器,采用sys用户操作,创建目录 su - oracle
    export ORACLE_SID=his1
    sqlplus / as sysdba
  • oracle exp文件导入到DM环境中​_数据库_03


  • 创建还原用到epi用户、epidm用户、目录 create user epi identified by epi;
    create user eipdm identified by epidm
    create directory imp as ‘/home/oracle/imp’;
  • oracle exp文件导入到DM环境中​_数据库_04


  • 创建还原用到的4个表空间:EPIDM_TS、ERP_TS、EPI_INDEX、EPI_TS create tablespace epi_index datafile ‘+DB_DATA’ size 1G autoextend on next 50M maxsize unlimited;
    create tablespace epidm_ts datafile ‘+DB_DATA’ size 2G autoextend on next 50M maxsize unlimited;
    create tablespace epi_ts datafile '+DB_DATA' size 500M autoextend on next 50M maxsize unlimited;
    create tablespace erp_ts datafile ‘+DB_DATA’ size 2G autoextend on next 50M maxsize unlimited;
  • oracle exp文件导入到DM环境中​_数据_05


  • 服务器上创建备份文件放置目录 mkdir pv /home/oracle/imp
    ls /home/oracle (确认创建成功)
  • oracle exp文件导入到DM环境中​_oracle_06


  • 将导出的dmp文件,剪切到/home/oracle/imp mv /root/EPIDM.dmp /home/oracle/imp/.(个人是上传到root,具体以实际测试目录为准)
  • oracle exp文件导入到DM环境中​_数据库_07


  • 修改权限 chown R oracle.oinstall /home/oracle
    说明:如果是oracle用户此步骤可以省略
  • oracle exp文件导入到DM环境中​_数据_08


  • 导入文件 impdp system/oracle@his1 directory=IMP dumpfile=EPIDM.dmp logfile=impEPIDM-1.log schemas=EPIDM cnotallow=metadata_only transform=segment_attributes:n
    impdp system/oracle@his1 directory=IMP dumpfile=EPI.dmp logfile=impEP2-1.log schemas=EPI cnotallow=metadata_only transform=segment_attributes:n
  • oracle exp文件导入到DM环境中​_数据_09


  • 使用sys登录oracle数据库,统计EPI与EPI的对象,并保存到source_oracle_objects中
    create table source_oracle_objects as select owner,object_type,count(*) from all_objects where owner='EPI' or OWNER='EPIDM' group by owner,object_type order by 1,2;
  • oracle exp文件导入到DM环境中​_oracle_10


  • 对象名称明细 create table source_oracle_objects_detal as select owner,object_name,object_type,status from all_objects a where owner='EPI' or OWNER='EPIDM' order by 1,2;
  • oracle exp文件导入到DM环境中​_数据_11


  • 统计表的记录数
  • oracle exp文件导入到DM环境中​_oracle_12

启动客户端工具dts迁移

  • 选择迁移---新建迁移
  • oracle exp文件导入到DM环境中​_数据_13


  • 配置数据库迁移模式,选oracle---dm
  • oracle exp文件导入到DM环境中​_oracle_14










  • 配置对应的数据库连接
  • oracle exp文件导入到DM环境中​_数据库_15


  • oracle exp文件导入到DM环境中​_数据库_16

  • 迁移选择epi与epidm
  • oracle exp文件导入到DM环境中​_oracle_17

迁移序列

迁移表

迁移视图与物化视图

同义词

函数与包

触发器

开始迁移

11、使用客户端工具,连接dm数据库

查看对应的表与用户已经导入

数据验证

连接到DM数据库

统计达梦数据基础信息

select '页大小:'||page

union

select '编码:'||unicode

union

select '大小写区分:'||case_sensitive;

统计迁移的达梦数据中的对象以及表数据量

根据指定用户统计用户下的各对象类型和数目

select object_type,count(*) from all_objects where

owner='EPI' group by object_type;

统计指定用户下所有的对象,并记录到新的记录表中

declare

v_tbname varchar2(100);

v_count int;

v_owner varchar(50);

v_status varchar2(20);

v_sqlst varchar2(100);

cursor C1 is (select owner,object_name,status from all_objects a where object_type='TABLE' and (owner='EPI' or OWNER='EPIDM')) ;

begin

execute immediate 'drop table record_table_count';

execute immediate 'create table record_table_count(owner varchar2(100),object_name varchar2(100),cou_num int)';

open C1 ;

loop

fetch C1 into v_owner,v_tbname,v_status;

exit when C1%notfound;

v_sqlst := 'select count(1) from '||v_owner||'.'||v_tbname;

execute immediate v_sqlst into v_count ;

insert into record_table_count values(v_owner,v_tbname,v_count);

end loop;

close C1;

commit;

end;

对比达梦数据库中对象和

数据库移植完毕后的收尾工作

更新统计信息

数据核对完成无问题后,进行统计信息更新:

更新epi用户

DBMS_STATS.GATHER_SCHEMA_STATS(

'epi',

100,

FALSE,

'FOR ALL COLUMNS SIZE AUTO');

更新epidb

DBMS_STATS.GATHER_SCHEMA_STATS(

'epidb',

100,

FALSE,

'FOR ALL COLUMNS SIZE AUTO');

数据备份

迁移之前及迁移之后,数据库都应该备份一次,备份方式可以选择执行脱机冷备或者联机热备

整理对象脚本

迁移之前收集的资料与脚本需完善保管,以防止漏迁或者误迁等情况。同时方便与客户方进行协同校验工作。常用资料包括对象的ddl定义,收集的对象记录行数等

迁移遇到的问题

  • 迁移报错 试图一次性迁移全部的对象,未严格按照迁移顺序进行,导致迁移过程之中,有100多个报错。
  • 迁移后表索引数量变多

因为oracle默认是堆表,而dm默认是IOT表。但具体未做实验验证

举报

相关推荐

0 条评论