標籤:oracle 資料泵
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常用樣本整理