首页 > 代码库 > 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常用示例整理