一:oracle的IMP/EMP特性:
Oracle的imp/exp组件的一个操作原则就是向下兼容,且有一些规则:
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp
不能连接到低版本的数据库服务器。
规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容)。
规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,
则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本Oracle 8。
二:oracle的IMPDP/EMPDP的特性:
1.在oracle9i以后引入数据泵命令IMPDP/EXPDP,oracle11g中exp命令是无法 导出数据库中的空表的,但可以通过EXPDP导出
2.Oracle11g通过exp导出的数据是无法通过imp导入到oracle10g中的,但 可以通过expdp和impdp完成。
3.IMPDP/EMPDP是服务器端是命令,无法在客户端使用。
三:oracle10g数据导入到oracle11g中: 在oracle10g上执行:
Exp ccense/ccense@orcl file=D:\2012123101.dmp
在oracle11g上创建好表空间和用户后执行:
Imp ccense/ccense@orcl file=D:\20121231001.dmp
四.Oracle11g数据导入到oracle10g中:
1.在oracle11g服务器命令行中用expdp导出数据
expdp ccense/ccense@orcl directory=expdp_dir dumpfile=expdp11g_123101.dmp logfile=expdp11g_123101.log version=10.2.0.1.0 (schemas=ccense)
具体备份文件在expdp_dir目录中:
声明:expdp_dir 数据库默认为DATA_PUMP_DIR。select * from dba_directories查询DATA_PUMP_DIR所在路径既expdp11g_123101.dmp存放的位置。导出命令时务必加上版本号,日志文件可不写。
本人测试语句:可参考
expdp ASIT_STKX/ASIT_STKX@orcl directory=DATA_PUMP_DIR dumpfile=lasa22.dmp owner=ASIT_STKX version=10.2.0.1.0
2.在oracle10g服务器DOS命令行中用IMPDP导入数据:
把oracle11g的备份文件放到oracl10g服务器的impdp_dir目录中,并创建好相应的用户和表空间,然后执行下面的命令:
impdp ccense/ccense@orcl directory=impdp_dir dumpfile=expdp11g_123101.dmp logfile=impdp11g_123101.log version=10.2.0.1.0 (schemas=ccense)
声明同上,impdp_dir同上
本人测试语句:可参考
impdp ASIT_STKX/ASIT_STKX@orcl directory=DATA_PUMP_DIR dumpfile=lasa22.dmp owner=ASIT_STKX
以上是网友的资料,自己实践一把,
1、从11g导出:
expdp eip/eip@myorcl directory=DATA_PUMP_DIR dumpfile=lasa22.dmp owner=eip version=10.2.0.1.0
2、查询11g用户使用的表空间,并记下表空间的名字:
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
3、确保10版本的用户表空间同名,如果不同,修改同名:
alter tablespace EKPTAB1 rename to EIP;
4、执行导入,中间报部分错误,只管表与数据的数据量相同即可,
impdp eip/password421@local_eip DIRECTORY=DATA_PUMP_DIR DUMPFILE=lasa22.dmp REMAP_SCHEMA=eip:eip