DMP文件的导入,导出

前言:DMP文件的导入,导出有两种方式,分别为EXP/IMP和EXPDP/IMPDP,EXPDP/IMPDP是Oracle 10G以后的一种新的数据导入导出方式,也称为数据泵,本文只介绍EXPDP/IMPDP的导入导出方式。

一:查看当前Oracle的directory

SELECT * FROM dba_directories;

DMP文件的导入,导出

此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

DMP文件的导入,导出

(二).基于用户模式导出:

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

DMP文件的导入,导出

DMP文件的导入,导出

(三).基于表空间导出:

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

DMP文件的导入,导出

DMP文件的导入,导出

三:导入

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的密码