当前位置:首页 > 高版本导入低版本
oracle expdp exp高低版本间导入导出
ORACLE中逻辑备份可以用EXPDP,EXP,在这里我不想详细讨论这两者之间的区别,一句话,EXPDP是服务器端的工具,EXP是客户端的工具(EXPORT DUMP) 主机: 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 TO TSHIS; 需要将TSHIS用户下的JK_ARCHIVE表中的数据导出后导入到TSHIS2中,并且表名改为JK_ARCHIVE2.脚本如下:
EXPDP TSHIS/TSHIS DIRECTORY=EXPDP_DIR DUMPFILE=JK_ARCHIVE_DATA.DMP TABLES=JK_ARCHIVE;导出成功。
IMPDP TSHIS2/TSHIS2 DIRECTORY=EXPDP_DIR DUMPFILE=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.dmp tables=jk_archive_list ;成功导出
imp tshis2/tshis2 file=e:\\exp\\jk_archive_list_data.dmp fromuser=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.dmp tables=gm_code; OK 将gm_code_data.dmp复制到主机A的相应目录中
impdp tshis/tshis directory=expdp_dir dump=gm_code_data.dmp remap_schema=owhis:tshis; 成功。
2.在主机A上执行导出(主机A可连接到主机B的数据库 TNSNAME 为TEST_XL) expdp owhis/owhis@test_xl directory=data_dir dumpfile=gm_code_data.dmp tables=gm_code 报下如错误
Export: Release 11.2.0.1.0 - Production on 星期二 8月 21 11:07:58 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. 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 rights reserved.
连接到: 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 (在转储文件 \中) 不兼容
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 rights reserved.
连接到: 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 (在转储文件 \中) 不兼容 四、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:11 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. 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: \标识符无效 EXP-00000: 导出终止失败
将主机A中的gm_user表导入到主机B中(不是都有用)
1.在主机A上导出,将文件复制到主机B相应目录中,再执行导入报错 Import: Release 10.2.0.1.0 - Production on 星期二 8月 21 11:23:23 2012 Copyright (c) 1982, 2005, Oracle. 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 IMP-00010: 不是有效的导出文件, 头部验证失败 IMP-00000: 未成功终止导入
2.在主机B上导出A中的数据,再执行导入 成功。
总结:EXPDP,IMPDP不管以哪种方式,只能把低版本中的数据导入高版本中(只能把主机B中的数据导到主机A中)
EXP,IMP双向导数据都可以,但要从高版本中导数据到低版本中,只能在低版本服务器上进行导出导入,
从低版本导数据到高版本,也只能在低版本服务器上导出再把文件复制到高版本服务器上,进行导入操作。
一句话,在低版本服务器上执行导出,最好将DUMP文件复制到目标服务器上执行导入(加快效率),DUMP文件的盘最好与数据文件所在盘不一样 另说明:IMPDP中的参数REMAP_TABLE 11G才有
共分享92篇相关文档