expdp不依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集进行转换, 平时数据量不大时一直采用exp/imp导数据库,到了数据量大的时候expdp/impdp就看到效果了,一次exp导出28G的DMP文件用了3个小时,采用EXPDP用了20分钟。
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>
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>
$ expdp \‘/ as sysdba\‘ directory=dump_dir full=y dumpfile=fulldb.dmp parallel=2;
$ impdp \‘/ as sysdba\‘ directory=dump_dir full=y dumpfile=fulldb.dmp parallel=2 table_exists_action=replace;
$ expdp abc/abc directory=dump_dir dumpfile=abc.dmp
导入示例如下:需要创建abc用户
$ impdp abc/abc directory=dump_dir dumpfile=abc.dmp
$ 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
expdp \‘/ as sysdba\‘ directory=dump_dir dumpfile=db_abc_tom.dmp schemas=abc,tom
expdp abc/abc directory=dump_dir dumpfile=abc_tables.dmp TABLES=emp,dept
expdp abc/abc directory=dump_dir dumpfile=full.dmp parallel=40
低版本是不能导入高版本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
原文地址:http://koumm.blog.51cto.com/703525/1574472