首页 > 代码库 > Oracle expdp/impdp常用示例整理
Oracle expdp/impdp常用示例整理
expdp不依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集进行转换, 平时数据量不大时一直采用exp/imp导数据库,到了数据量大的时候expdp/impdp就看到效果了,一次exp导出28G的DMP文件用了3个小时,采用EXPDP用了20分钟。
1. 创建测试数据
SQL> create tablespace DATA datafile ‘/u01/app/oracle/oradata/orcl/DATA.dbf‘ size 10m autoextend on next 10m;
SQL> create user abc identified by abc default tablespace DATA;
SQL> grant connect,resource to abc;
SQL> conn abc/abc
SQL> create table t as select * from all_objects;
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
T TABLE
SQL>
2. 配置directory目录与用户访问权限
SQL> conn / as sysdba;
SQL> create directory dump_dir as ‘/home/oracle‘;
SQL> col owner format a5
SQL> col directory_name format a25;
SQL> col directory_path format a50;
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ------------------------- --------------------------------------------------
SYS DUMP_DIR /home/oracle
SQL>
SQL> grant read,write on directory dump_dir to public;
SQL>
3. 导出导入全库
(1) 全库导出
$ expdp \‘/ as sysdba\‘ directory=dump_dir full=y dumpfile=fulldb.dmp parallel=2;
(2) 全库导入
$ impdp \‘/ as sysdba\‘ directory=dump_dir full=y dumpfile=fulldb.dmp parallel=2 table_exists_action=replace;
4. 导出导入用户
(1) 同用户导入导出
$ expdp abc/abc directory=dump_dir dumpfile=abc.dmp
导入示例如下:需要创建abc用户
$ impdp abc/abc directory=dump_dir dumpfile=abc.dmp
(2) 不同用户导入导出,abc用户下数据导入到tom用户下
$ expdp abc/abc directory=dump_dir dumpfile=abc.dmp logfile=data.log
导入示例如下:如果不事先创建tom用户的话,IMPDP会自动创建tom用户,需要用有权限的帐号,本例是采用系统管理员权限。
$ impdp \‘/ as sysdba\‘ directory=dump_dir dumpfile=abc.dmp remap_schema=abc:tom
先创建tom用户的导入方式
$ impdp tom/tom directory=dump_dir dumpfile=abc.dmp remap_schema=abc:tom
(3) 同时导出两个用户的所有表,分别导入,也可以一起导入。
expdp \‘/ as sysdba\‘ directory=dump_dir dumpfile=db_abc_tom.dmp schemas=abc,tom
(4) 导出表
expdp abc/abc directory=dump_dir dumpfile=abc_tables.dmp TABLES=emp,dept
(5) 并行导出,可以加入速度
expdp abc/abc directory=dump_dir dumpfile=full.dmp parallel=40
5. 跨版本导入问题
低版本是不能导入高版本dmp,需要在高版本的EXPDP导出时指定版本号导出。低版本IMPDP无需指定版本。
例如:11.2.0.4导入到10.2.0.5
expdp abc/abc directory=dump_dir dumpfile=abc_tables.dmp version=10.2.0.5.0
本文出自 “koumm的linux技术博客” 博客,请务必保留此出处http://koumm.blog.51cto.com/703525/1574472
Oracle expdp/impdp常用示例整理