关于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