oracle expdp exp高低版本间导入导出

来源:互联网 发布:怎样利用淘宝漏洞赚钱 编辑:程序博客网 时间:2024/05/22 13:36

ORACLE中逻辑备份可以用EXPDP,EXP,在这里我不想详细讨论这两者之间的区别,一句话,EXPDP是服务器端的工具,EXP是客户端的工具(EXPORTDUMP)

主机: ORACLE版本

   A: 11.2.0.1.0

  B:  10.2.0.1.0

主机A ORACLE除了系统用户还有两个用户 TSHIS、TSHIS2

主机B ORACLE除了系统用户还有一个用户 OWHIS

主机A可连接到主机B的数据库 TNSNAME 为TEST_XL

一、EXPDP 对应IMPDP的用法 (只简单说明)在主机A上进行操作

首先需要有一个DIRECTORY用来指向导出的文件或者导入的文件位置在哪里,一般都用系统用户建立如SYS、SYSTEM,创建语法如下:

CREATE DIRECTORY EXPDP_DIR AS 'D:\EXPDP_IMPDP';

需要授权给相应的用户使用如TSHIS:GRANT READ,WRITE ON DIRECTORY EXPDP_DIR TOTSHIS;

需要将TSHIS用户下的JK_ARCHIVE表中的数据导出后导入到TSHIS2中,并且表名改为JK_ARCHIVE2.脚本如下:

EXPDP TSHIS/TSHIS DIRECTORY=EXPDP_DIRDUMPFILE=JK_ARCHIVE_DATA.DMP TABLES=JK_ARCHIVE;导出成功。

IMPDP TSHIS2/TSHIS2 DIRECTORY=EXPDP_DIRDUMPFILE=JK_ARCHIVE_DATA.DMP REMAP_SCHEMA=TSHIS:TSHIS2

REMAP_TABLE=JK_ARCHIVE:JK_ARCHIVE2  导入成功。

二、EXP 对应 IMP 的用法(也是简单说明)在主机A上进行操作

需要将TSHIS用户下的JK_ARCHIVE_LIST表中的数据导出后导入到TSHIS2中(这个工具改不了表名)脚本如下:

exp tshis/tshis file=e:\exp\jk_archive_list_data.dmptables=jk_archive_list ;成功导出

imp tshis2/tshis2 file=e:\exp\jk_archive_list_data.dmpfromuser=tshis touser=tshis2;成功导入

三、EXPDP,IMPDP ORACLE高低版本之间导入导出的情况

将主机B中的GM_CODE表导出后导入主机A中

可以用两种方式(不一定都有用)

1.在主机B中执行导出,再将DMP文件复制到主机A的相应目录中(EXPDP_DIR中)后执行导入,脚本如下:

expdp owhis/owhis directory=data_dir dump=gm_code_data.dmptables=gm_code; OK

将gm_code_data.dmp复制到主机A的相应目录中

impdp tshis/tshis directory=expdp_dir dump=gm_code_data.dmpremap_schema=owhis:tshis; 成功。

2.在主机A上执行导出(主机A可连接到主机B的数据库 TNSNAME 为TEST_XL)

expdp owhis/owhis@test_xldirectory=data_dir dumpfile=gm_code_data.dmp tables=gm_code报下如错误

Export: Release 11.2.0.1.0 - Production on 星期二 8月 21 11:07:582012

Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights

reserved.
UDE-00018: 数据泵客户机与数据库版本 10.2.0.1.0 不兼容

将主机A中的gm_user表导入到主机B中(不可能)

1.在主机A上导出,将文件复制到主机B相应目录中,再执行导入报错

Import: Release 10.2.0.1.0 - 64bit Production on 星期二, 21 8月,2012

10:31:13

Copyright (c) 2003, 2005, Oracle.  All rightsreserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -64bit

Produc
tion
With the Partitioning, OLAP and Data Mining options
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39142: 版本号 3.1 (在转储文件 "D:\expdp\jk_archive.dmp" 中) 不兼容

2.在主机B上导出A的数据,此时数据文件还是在A上,将文件复制到主机B相应目录,再执行导入报错

Import: Release 10.2.0.1.0 - 64bit Production on 星期二, 21 8月,2012

14:21:39

Copyright (c) 2003, 2005, Oracle.  All rightsreserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -64bit

Produc
tion
With the Partitioning, OLAP and Data Mining options
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39142: 版本号 3.1 (在转储文件 "D:\expdp\test1.dmp" 中) 不兼容

四、EXP,IMP ORACLE高低版本之间导入导出的情况

将主机B中的GM_CODE表导出后导入主机A中

可以用两种方式(不一定都有用)

1.在主机B中执行导出,再将DMP文件复制到主机A的中后执行导入,成功。

2.在主机A上执行导出(主机A可连接到主机B的数据库 TNSNAME 为TEST_XL)

Export: Release 11.2.0.1.0 - Production on 星期二 8月 21 11:19:112012

Copyright (c) 1982, 2009, Oracle and/or itsaffiliates.  All rights

reserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -64bit

Produc
tion
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径...
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "POLTYP": 标识符无效
EXP-00000: 导出终止失败

将主机A中的gm_user表导入到主机B中(不是都有用)

1.在主机A上导出,将文件复制到主机B相应目录中,再执行导入报错

Import: Release 10.2.0.1.0 - Production on 星期二 8月 21 11:23:232012

Copyright (c) 1982, 2005, Oracle.  All rightsreserved.


连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -64bit

Produc
tion
With the Partitioning, OLAP and Data Mining options

IMP-00010: 不是有效的导出文件, 头部验证失败
IMP-00000: 未成功终止导入

2.在主机B上导出A中的数据,再执行导入 成功。

总结:EXPDP,IMPDP不管以哪种方式,只能把低版本中的数据导入高版本中(只能把主机B中的数据导到主机A中)

EXP,IMP双向导数据都可以,但要从高版本中导数据到低版本中,只能在低版本服务器上进行导出导入,

从低版本导数据到高版本,也只能在低版本服务器上导出再把文件复制到高版本服务器上,进行导入操作。

一句话,在低版本服务器上执行导出,最好将DUMP文件复制到目标服务器上执行导入(加快效率),DUMP文件的盘最好与数据文件所在盘不一样

另说明:IMPDP中的参数REMAP_TABLE 11G才有

0 0
原创粉丝点击