Oracle expdp 排除表引數

kaiyinkaiyin發表於2015-04-01

使用邏輯工具的EXCLUDE選項可以指定那類不被匯出,EXPDP工具的前身EXP如果想要完成同樣的任務非常的困難。我們以部分表為例看一下這個帶給我們的便利。
如果在命令列中完成備份,特殊字元的轉義需要特別注意(我這裡使用的是Linux作業系統)。

1.EXPDP幫助中的描述資訊
ora10g@secDB /expdp$ expdp -help
……
EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.
……

2.建立directory資料庫物件,並將讀寫許可權授予sec使用者
sys@ora10g> create or replace directory dump_dir as '/expdp';

Directory created.

sys@ora10g> grant read,write on directory dump_dir to sec;

Grant succeeded.

3.確認作業系統資訊
ora10g@secDB /expdp$ uname -a
Linux secDB 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST x86_64 x86_64 x86_64 GNU/Linux

4.在sec使用者下建立幾張表用於後續的
建立三張表T1、T2和T3,每張表中初始化一條資料
sec@ora10g> create table t1 (x int);
sec@ora10g> insert into t1 values (1);
sec@ora10g> create table t2 (x int);
sec@ora10g> insert into t2 values (2);
sec@ora10g> create table t3 (x int);
sec@ora10g> insert into t3 values (3);
sec@ora10g> commit;

5.為了與後面的比較,先全使用者匯出
ora10g@secDB /expdp$ rm -f sec.dmp sec.log
ora10g@secDB /expdp$ expdp sec/sec directory=dump_dir dumpfile=sec.dmp logfile=sec.log



6.排除T1表進行備份
ora10g@secDB /expdp$ rm -f sec.dmp sec.log
ora10g@secDB /expdp$ expdp sec/sec directory=dump_dir dumpfile=sec.dmp logfile=sec.log EXCLUDE=TABLE:\"IN\(\'T1\'\)\"



7.排除多張表進行備份
以排除表T1和T2兩張表為例進行演示
ora10g@secDB /expdp$ rm -f sec.dmp sec.log
ora10g@secDB /expdp$ expdp sec/sec directory=dump_dir dumpfile=sec.dmp logfile=sec.log EXCLUDE=TABLE:\"IN\(\'T1\',\'T2\'\)\"



排除表T1和T2後T3表被成功匯出。
注意在Linux的bash下特殊字元的轉義處理

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10957369/viewspace-1481081/,如需轉載,請註明出處,否則將追究法律責任。

相關文章