Oracle 10G/11G 导入 导出

Oracle10g/11g基本导入导出命令:

exp 用户名/用户密码@服务名 file=保存路径.dmp buffer=8192 filesize=10000m feedback=1000 imp 用户名/用户密码@服务名 file=文件所在路径.dmp full=y

一般来说,指定用户下数据导出(包括触发器,存储过程等)在10g中就可以完全导出(导入)。另外还有导出指定表,指定函数等可以参考Oracle的官方文档(安装后EM界面上貌似就有,也可以到官网上去找)。总体来说10g的导入导出还比较方便。

说明:1、exp/imp命令使用时,只要能够连接数据库,那么就可以在服务端(远端)使用。

   2、Oracle11g基本导入导出命令与Oracle10g相同,需要注意的是11g导出有时空表不会导出,问题参考http://www.cnblogs.com/GYoungBean/archive/2012/07/24/2605963.html   

   3、在不同版本导入时,高版本可以兼容低版本的导出文件,但是需要注意表空间名称、索引、版本号等问题。

-----------------------------------分割线-----------------------------------------------------------

使用expdp/impdp导出/导入文件:

  使用expdp命令时,需要指定转储的文件夹。

  1、基本导出方法:

CREATE OR REPLACE DIRECTORY test_dir(directory别名) AS '/u01/app/oracle/oradata/'(此处为硬盘上路径);
GRANT READ, WRITE ON DIRECTORY test_dir(directory别名) TO scott(指定用户名)/public(所有用户);
expdp scott/scott@orcl directory=test_dir DUMPFILE=xx.dmp schemas=scott(用户名) logfile=expdpScott.log version=10.2.0.1.0(导入数据版本号,同版本内可选参数)

  2、并行导出:

expdp scott/scott@orcl directory=test_dir parallel=4 DUMPFILE=xx_%U.dmp schemas=scott(用户名) logfile=expdpScott.log version=10.2.0.1.0

  其中,parallel为并行导出参数。可以指定导出时使用的线程数。_%U为通配符,导出后形式为XX01.dmp;xx02.dmp等。

说明:1、expdp/impdp为服务器端命令,所以此时导出时只能在服务器端使用(若在远端导出请往下看)

   2、到出前请确认作为转储文件夹在硬盘中存在且路径正确

   3、version使用时,如果是从11g导入的数据要导入到10g中,那么请指定10g的版本号

   4、导入命令请参考文档(见最后的参考资料b.中)

-----------------------------------分割线-----------------------------------------------------------

远端使用expdp命令导出:

  使用远端导出时,请确认远端电脑中安装有oracle客户端并且能够连接到服务端。同时也要相应的建立转储文件夹,且DIRECTORY 要建立在本地

CREATE DATABASE LINK remote_scott(dblink别名) CONNECT TO SCOTT(要连接到用户名) IDENTIFIED BY tiger(要连接的用户密码) USING 'DEV'(远端数据库服务名);
expdp test/test@db10g(本地数据库用户) tables=SCOTT.EMP(远端) network_link=REMOTE_SCOTT(dblink名称) directory=TEST_DIR dumpfile=EMP.dmp logfile=exp.log

  思路就是在本地库与远端建立DB_Link。上面语句中tables=SCOTT.EMP(远端)只是导出的一张表(导出用户下所有表)。

说明:1、不太推荐远端这样导数据,数据量大的时候很慢,而且要有客户端

   2、如果不会使用DB_LINK请参考参考资料a.

-----------------------------------分割线-----------------------------------------------------------

参考资料:

  a.http://docs.oracle.com/cd/B14117_01/server.101/b10759/statements_5007.htm

  b.http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php#GettingStarted

 

----------------------------------分割线--------------------------------------------------------------

2012/09/28补遗

  1、使用expdp导出时,有时会在STATISTICS处卡住不动(具体什么忘记了)。此时在导出时使用参数exclude=statistics即可。

  2、导入时同样需要加入参数exclude=statistics即可

 

转自:http://www.cnblogs.com/GYoungBean/archive/2012/09/17/2688414.html

posted @ 2013-01-09 16:15  落冰  阅读(984)  评论(0编辑  收藏  举报