视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
【数据泵】11G数据迁移10G数据库
2025-09-29 03:01:10 责编:小OO
文档
环境介绍

源环境:Windows Server 2008  X + Oracle 11G 

目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0) Rac

迁移方式

由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移

迁移步骤

源端:

连接cms数据库服务器 192.168.253.113  administrator/******

打开dos窗口 通过expdp命令导出dmp文件,命令如下:

Expdp cms/******@orcl directory=DATA_PUMP_DIR dumpfile=cms.dmp schemas=cms logfile=cms.log version=10.2.0.3.0;

参数说明:expdp 用户名/密码@实例名 directory=【directory_object】虚拟目录对象(DATA_PUMP_DIR系统安装后默认的目录 可用system登陆通过select * FROM dba_directories;查看) dumpfile=导出文件的名 schemas=方案名 logfile=日志文件 version=指定版本导出

将导出的.dmp,.log 文件拷贝到目标环境中(路径是DATA_PUMP_DIR对应的目录)

Plsql system连接数据库 创建cms用户 创建cms表空间 授权cms用户

Ssh连接目标服务器 切换oracle 用户 执行命令:

Impdp system/******@other directory= DATA_PUMP_DIR dumpfile=cms.dmp schemas=cms logfile=cms.log

参数同expdp

一次艰辛的数据导入导出:

环境介绍

源环境:Windows Server 2008  X + Oracle 11G 

目标环境:Linux 5.4 + Oracle 10G(10.2.0.4.0) Rac

迁移方式

由于由上至下迁移,采用exp/imp无法正常导入;故使用expdp/impdp(数据泵)迁移

要求

目标表空间,用户按照源数据格式创建好

导出文件

●SELECT CURRENT_SCN FROM V$DATABASE;  

●expdp system/oracle@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB logfile=FALABELLA_AR_expdp_20111214.log status=10 parallel=1 CONTENT=ALL flashback_scn=612654934  

SELECT CURRENT_SCN FROM V$DATABASE;

expdp system/oracle@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB logfile=FALABELLA_AR_expdp_20111214.log status=10 parallel=1 CONTENT=ALL flashback_scn=612654934

压缩dmp文件 

[sql] view plaincopyprint?

1.gzip -9 FALABELLA_AR_20111214.DMP   

gzip -9 FALABELLA_AR_20111214.DMP 

三、上传DUMP文件到目标库并解压。

[sql] view plaincopyprint?

1.gzip -d  FALABELLA_AR_20111214.DMP   

gzip -d  FALABELLA_AR_20111214.DMP 

四、准备目标库上原有用户对象

[sql] view plaincopyprint?

1.CREATE TABLESPACE TBS_FALABELLA_AR LOGGING DATAFILE '/u01/oradata/oracle/TBS_FALABELLA_AR01.DBF'   

2.  SIZE 1024M AUTOEXTEND ON NEXT M MAXSIZE 4096M  

3.  EXTENT MANAGEMENT LOCAL  

4./  

5.  

6.DROP USER FALABELLA_AR_CORE CASCADE;  

7.DROP USER FALABELLA_AR_CATA CASCADE;  

8.DROP USER FALABELLA_AR_CATB CASCADE;  

9.DROP USER FALABELLA_AR_PUB CASCADE;  

10.  

11.CREATE USER FALABELLA_AR_CORE IDENTIFIED BY FALABELLA_AR_CORE QUOTA UNLIMITED ON TBS_FALABELLA_AR  

12.DEFAULT TABLESPACE TBS_FALABELLA_AR  

13.TEMPORARY TABLESPACE TEMP;  

14.  

15.GRANT CONNECT, RESOURCE TO FALABELLA_AR_CORE;  

16.  

17.CREATE USER FALABELLA_AR_CATA IDENTIFIED BY FALABELLA_AR_CATA QUOTA UNLIMITED ON TBS_FALABELLA_AR  

18.DEFAULT TABLESPACE TBS_FALABELLA_AR  

19.TEMPORARY TABLESPACE TEMP;  

20.  

21.GRANT CONNECT, RESOURCE TO FALABELLA_AR_CATA;  

22.  

23.CREATE USER FALABELLA_AR_CATB IDENTIFIED BY FALABELLA_AR_CATB QUOTA UNLIMITED ON TBS_FALABELLA_AR  

24.DEFAULT TABLESPACE TBS_FALABELLA_AR  

25.TEMPORARY TABLESPACE TEMP;  

26.  

27.GRANT CONNECT, RESOURCE TO FALABELLA_AR_CATB;  

28.  

29.CREATE USER FALABELLA_AR_PUB IDENTIFIED BY FALABELLA_AR_PUB QUOTA UNLIMITED ON TBS_FALABELLA_AR  

30.DEFAULT TABLESPACE TBS_FALABELLA_AR  

31.TEMPORARY TABLESPACE TEMP;  

32.  

33.GRANT CONNECT, RESOURCE TO FALABELLA_AR_PUB; 

导入 

[sql] view plaincopyprint?

1.--第一次导入   

2.impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_ALL_20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=ALL PARALLEL=1 STATUS=10 TABLE_EXISTS_ACTION=REPLACE TRANSFORM=segment_attributes:n:table  

--第一次导入

impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_ALL_20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=ALL PARALLEL=1 STATUS=10 TABLE_EXISTS_ACTION=REPLACE TRANSFORM=segment_attributes:n:table

导入时发现源库和目标库的字符集不一样,导入的时候虽然完成了,但有一些字段在字符转换的时候报出字段长度不够。检查日志,发现很多如下错误:

[sql] view plaincopyprint?

1.ORA-02374: conversion error loading table "FALABELLA_AR_PUB"."RGLLEVVF"  

2.ORA-129: value too large for column XAPM_NOVIA (actual: 16, maximum: 15)  

3.ORA-02372: data for row: XAPM_NOVIA : 0X'4F4C4D45D14F202020202020202020'  

ORA-02374: conversion error loading table "FALABELLA_AR_PUB"."RGLLEVVF"

ORA-129: value too large for column XAPM_NOVIA (actual: 16, maximum: 15)

ORA-02372: data for row: XAPM_NOVIA : 0X'4F4C4D45D14F202020202020202020'

于是想出一个办法,先单独导入元数据,然后查找日志,找出所有字段长度有问题的表,把相应的列长度改长:

[sql] view plaincopyprint?

1.--单独导入元数据   

2.impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_METADATA_ONLY_DISABLE_CONSTRAINT_20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=METADATA_ONLY PARALLEL=1 STATUS=10 TABLE_EXISTS_ACTION=REPLACE TRANSFORM=segment_attributes:n:table  

--单独导入元数据

impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_METADATA_ONLY_DISABLE_CONSTRAINT_20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=METADATA_ONLY PARALLEL=1 STATUS=10 TABLE_EXISTS_ACTION=REPLACE TRANSFORM=segment_attributes:n:table

[sql] view plaincopyprint?

1.--查找日志,找出相应的错误,并修改列   

2.ALTER TABLE FALABELLA_AR_CORE.DCSPP_SHIP_ADDR MODIFY (FIRST_NAME VARCHAR2(50));  

3.ALTER TABLE FALABELLA_AR_PUB.RGLLEVVF MODIFY (  XNMB_NOVIO CHAR(30 BYTE), XAPP_NOVIO CHAR(30 BYTE),  XAPM_NOVIO CHAR(30 BYTE), XNMB_NOVIA CHAR(30 BYTE), XAPP_NOVIA CHAR(30 BYTE), XAPM_NOVIA CHAR(30 BYTE));  

4.ALTER TABLE FALABELLA_AR_CORE.DPS_USER MODIFY ( LOGIN VARCHAR2(2 BYTE) NOT NULL);  

5.ALTER TABLE FALABELLA_AR_CORE.FBL_CONTACT_INFO MODIFY ( EMAIL VARCHAR2(2 BYTE));  

6.ALTER TABLE FALABELLA_AR_CORE.FBL_ELECTRONIC_SHIPPING MODIFY(SENDER_NAME VARCHAR2( BYTE));  

7.ALTER TABLE FALABELLA_AR_CATA.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY ( CUT_OFF_TIME VARCHAR2(10 BYTE));  

8.ALTER TABLE FALABELLA_AR_CATB.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY ( CUT_OFF_TIME VARCHAR2(10 BYTE));  

9.ALTER TABLE FALABELLA_AR_PUB.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY( CUT_OFF_TIME VARCHAR2(10 BYTE));  

10.ALTER TABLE FALABELLA_AR_CORE.FBL_ORDER_BANK_PROMOTION MODIFY (BANK_NAME  VARCHAR2(30 BYTE));  

--查找日志,找出相应的错误,并修改列

ALTER TABLE FALABELLA_AR_CORE.DCSPP_SHIP_ADDR MODIFY (FIRST_NAME VARCHAR2(50));

ALTER TABLE FALABELLA_AR_PUB.RGLLEVVF MODIFY (  XNMB_NOVIO CHAR(30 BYTE), XAPP_NOVIO CHAR(30 BYTE),  XAPM_NOVIO CHAR(30 BYTE), XNMB_NOVIA CHAR(30 BYTE), XAPP_NOVIA CHAR(30 BYTE), XAPM_NOVIA CHAR(30 BYTE));

ALTER TABLE FALABELLA_AR_CORE.DPS_USER MODIFY ( LOGIN VARCHAR2(2 BYTE) NOT NULL);

ALTER TABLE FALABELLA_AR_CORE.FBL_CONTACT_INFO MODIFY ( EMAIL VARCHAR2(2 BYTE));

ALTER TABLE FALABELLA_AR_CORE.FBL_ELECTRONIC_SHIPPING MODIFY(SENDER_NAME VARCHAR2( BYTE));

ALTER TABLE FALABELLA_AR_CATA.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY ( CUT_OFF_TIME VARCHAR2(10 BYTE));

ALTER TABLE FALABELLA_AR_CATB.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY ( CUT_OFF_TIME VARCHAR2(10 BYTE));

ALTER TABLE FALABELLA_AR_PUB.FBL_STOCK_N_SHIP_WAREHOUSE MODIFY( CUT_OFF_TIME VARCHAR2(10 BYTE));

ALTER TABLE FALABELLA_AR_CORE.FBL_ORDER_BANK_PROMOTION MODIFY (BANK_NAME  VARCHAR2(30 BYTE));

然后再单独导入数据,但单独导入数据时由于先后关系,会检查参照完整性,于是先DISABLE所有的参照完整性,再导入数据,等导入完成后,再启用所有的参照完整性约束。

[sql] view plaincopyprint?

1.--报外键约束错误   

2.ORA-31693: Table data object "FALABELLA_AR_CORE"."DCSPP_SHIPITEM_REL" failed to load/unload and is being skipped due to error:  

3.ORA-29913: error in executing ODCIEXTTABLEFETCH callout  

4.ORA-02291: integrity constraint (FALABELLA_AR_CORE.DCSPP_SHRELTNSHP_F) violated - parent key not found  

--报外键约束错误

ORA-31693: Table data object "FALABELLA_AR_CORE"."DCSPP_SHIPITEM_REL" failed to load/unload and is being skipped due to error:

ORA-29913: error in executing ODCIEXTTABLEFETCH callout

ORA-02291: integrity constraint (FALABELLA_AR_CORE.DCSPP_SHRELTNSHP_F) violated - parent key not found

[sql] view plaincopyprint?

1.--于是,禁用所有外键约束   

2.select 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||';' from dba_constraints where owner in('FALABELLA_AR_CORE','FALABELLA_AR_CATA','FALABELLA_AR_CATB','FALABELLA_AR_PUB') and CONSTRAINT_TYPE='R';  

--于是,禁用所有外键约束

select 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||';' from dba_constraints where owner in('FALABELLA_AR_CORE','FALABELLA_AR_CATA','FALABELLA_AR_CATB','FALABELLA_AR_PUB') and CONSTRAINT_TYPE='R';

[sql] view plaincopyprint?

1.--单独导入数据   

2.impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_DATA_ONLY_DISABLE_CONSTRAINT__20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=DATA_ONLY PARALLEL=1 STATUS=10 TRANSFORM=segment_attributes:n:table  

--单独导入数据

impdp system/oracle@oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=FALABELLA_AR_20111214.DMP LOGFILE=FALABELLA_AR_impdp_DATA_ONLY_DISABLE_CONSTRAINT__20111215.log  SCHEMAS=FALABELLA_AR_CORE,FALABELLA_AR_CATA,FALABELLA_AR_CATB,FALABELLA_AR_PUB REMAP_TABLESPACE=TBS_FALABELLA:TBS_FALABELLA_AR CONTENT=DATA_ONLY PARALLEL=1 STATUS=10 TRANSFORM=segment_attributes:n:table

[sql] view plaincopyprint?

1.--启用所有外键约束   

2.select 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' ENABLE NOVALIDATE CONSTRAINT '||constraint_name||';' from dba_constraints where owner in('FALABELLA_AR_CORE','FALABELLA_AR_CATA','FALABELLA_AR_CATB','FALABELLA_AR_PUB') and CONSTRAINT_TYPE='R';  

--启用所有外键约束

select 'ALTER TABLE '||OWNER||'.'||TABLE_NAME||' ENABLE NOVALIDATE CONSTRAINT '||constraint_name||';' from dba_constraints where owner in('FALABELLA_AR_CORE','FALABELLA_AR_CATA','FALABELLA_AR_CATB','FALABELLA_AR_PUB') and CONSTRAINT_TYPE='R';

OK,大功告成,终于看到了久违的成功日志:

Job "SYSTEM"."SYS_IMPORT_SCHEMA_03" successfully completed at 07:29:24下载本文

显示全文
专题