DMP文件的导入,导出
前言:DMP文件的导入,导出有两种方式,分别为EXP/IMP和EXPDP/IMPDP,EXPDP/IMPDP是Oracle 10G以后的一种新的数据导入导出方式,也称为数据泵,本文只介绍EXPDP/IMPDP的导入导出方式。
一:查看当前Oracle的directory
SELECT * FROM dba_directories;
此directory为dmp文件导入,导出的路径,在实际应用中,可以新建一个directory用来放dmp文件。
新建directory:CREATE [OR REPLACE] directory dir_name AS 'path_name';
授权directory:grant READ, WRITE ON directory dir_name TO user_name;
删除directory:drop directory dir_name;
二:导出
expdp 用户名/密码@数据库实例名 directory=导出目录 dumpfile=导出的文件名.dmp logfile=导出的日志名.log
(一).基于表模式的导出:
expdp user_name/user_password directory=dir_name dumpfile=dmp_file_name.DMP logfile=log_file_name.log tables =table_name1,table_name2,table_name3
示例如下:
expdp hap_prod_230_0304/hap_prod_230_0304 directory=DUMP_DIR dumpfile=circ_method_f_imp.DMP logfile=circ_method_f_imp.log tables=circ_method_f_imp
(二).基于用户模式导出:
expdp user_name/user_password directory=dir_name dumpfile=dmp_file_name.DMP logfile=log_file_name.log schemas=user_name
示例如下:
expdp hap_prod_230_0304/hap_prod_230_0304 directory=DUMP_DIR dumpfile=hap_prod_230_0304.DMP logfile=hap_prod_230_0304.log schemas=hap_prod_230_0304
(三).基于表空间导出:
expdp user_name/user_password directory=dir_name dumpfile=dmp_file_name.DMP logfile=log_file_name.log tablespaces=tablespaces_name
示例如下:
expdp hap_prod_230_0304/hap_prod_230_0304 directory=DUMP_DIR dumpfile=hap_prod_230_0304.DMP logfile=hap_prod_230_0304.log tablespaces=HAP_PROD_TBS
三:导入
impdp 用户名/密码@数据库实例名 directory=导入目录 dumpfile=导入的文件名.dmp logfile=导入的日志名.log
DMP文件的导入需要考虑两个问题:
1.导入的表空间与原数据表空间是否一致(不一致的话,使用remap_tablespace参数)
2.导入的用户与原用户是否一致(不一致的话,使用remap_schema参数)
示例如下:
impdp user_name/user_password directory=dir_name dumpfile=dmp_file_name.DMP logfile=log_file_name.log remap_schema=user1:user2 remap_tablespace=tablespaces_name1:tablespaces_name2 EXCLUDE=USER;
原用户为user1,导入用户为user2 ;原表空间为tablespaces_name1,导入表空间为tablespaces_name2
如果user2已存在,需要加EXCLUDE=USER
如果user2不存在,不需要加EXCLUDE=USER,user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码