1. 程式人生 > >expdp/impdp及exp/imp的使用及區別

expdp/impdp及exp/imp的使用及區別

關於expdp和exp的使用方法,具體講下在使用者模式下的使用。

expdp在使用者模式下的使用:

expdp c##hr/hr directory=dumpdir dumpfile=dump.dmp logfile=dump_expdp.logschemas=c##hr;
impdp system/oracle directory=dumpdir dumpfile=dump.dmp logfile=dump_impdp.log remap:schema=c##hr:scott
如果不新增schemas引數,則表示預設匯出當前匯出的使用者c##hr下的使用者資料
在使用expdp之前要確定dumpdir已經建立好:

sql>select * from dba_directories


OWNER                DIRECTORY_NAME                 DIRECTORY_PATH                                             
-------------------- ------------------------------ ------------------------------------------------------------ 
SYS                  ORACLE_HOME                    /                                     
SYS                  ORACLE_BASE                    /                                            
SYS                  OPATCH_LOG_DIR                  /oracle/app/oracle/product/12.1.0/dbhome_1/QOpatch
SYS                  OPATCH_SCRIPT_DIR               /oracle/app/oracle/product/12.1.0/dbhome_1/QOpatch
SYS                  OPATCH_INST_DIR                /oracle/app/oracle/product/12.1.0/dbhome_1/OPatch
SYS                  DATA_PUMP_DIR                 /oracle/dump_backup

 
SYS                  XSDDIR                            /oracle/app/oracle/product/12.1.0/dbhome_1/rdbms/xml/schema
SYS                  XMLDIR                        /oracle/app/oracle/product/12.1.0/dbhome_1/rdbms/xml  
SYS                  ORACLE_OCM_CONFIG_DIR          /oracle/app/oracle/product/12.1.0/dbhome_1/ccr/state
SYS                  ORACLE_OCM_CONFIG_DIR2        /oracle/app/oracle/product/12.1.0/dbhome_1/ccr/state
SYS                  DUMPDIR                            /oracle/dump_backup     

data_pump_dir 就是系統自定義的dump資料夾。也可以自定義,在這裡我使用的是自定義的資料夾:

sql>create or replace directory dumpdir as '/oracle/dump_backup';

上述語句僅僅是在資料庫中建立,還需在作業系統中建立:

mkdir /oracle/dumpdir

dumpdir建立好後,還需要授權:

sql>grant read,write on directory dumpdir to c##hr;

exp在使用者模式下的使用:

四種模式,full,owner,table,tablespace,這裡僅介紹owner模式,即預設模式。

exp system/oracle/backup/hr_exp.dmp owner=c##hr

imp scott/tiger fromuser=c##hr touser=scott file=/oracle/backup/hr_exp.dmp log=/oracle/backup/hr_imp.log
如果報ORA-01031: insufficient privileges,則可以使用具有較大許可權的使用者進行匯入(expdp也是如此),比如使用system使用者:
imp system/oracle fromuser=c##hr touser=scott file=/oracle/backup/hr_exp.dmp log=/oracle/backup/hr_imp.log