使用expdp 和impdp 导入导出 表结构

Posted 沙和尚-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用expdp 和impdp 导入导出 表结构相关的知识,希望对你有一定的参考价值。

//首先在oracle中创建一个虚拟目录用来做为导出的dump文件输出并赋予读写权限

create directory  dmpdir  as  \'/home/oracle/dmp\';
grant read,write on directory dmpdir to public;

 

//验证

select * from dba_directories;

 

可以看到虚拟目录已经创建成功了

物理目录需不需要手动创建我没验证,我在做的时候事先创建好了物理目录

为了避免莫名奇妙的问题我们还是手动创建一下物理目录吧O(∩_∩)O 

mkdir /home/oracle/dmp

 

//导出全库表结构无数据

expdp 用户名/密码@地址/表空间 directory=虚拟目录的名称(dmpdir) dumpfile=RCCADB.dmp cluster=no schemas=fraudzd content=metadata_only

dumpfile : 导出的dump文件名称
cluster : 是否集群
content=metadata_only  只要表结构
schemas : 你的用户名

完整例子
expdp root/root@localhost/myDataBase directory=dmpdir dumpfile=RCCADB.dmp cluster=no schemas=
root content=metadata_only

 //导入表结构

impdp root1/root1@localhost/myDataBase directory=dmpdir dumpfile=RCCADB.dmp cluster=no remap_schema=root:root1

remap_schema  = 原始用户:目标用户  

 

//导出指定表结构和数据

//导出指定表包括数据

expdp root/root@localhost/myDataBase directory=dmpdir logfile=M_RULE_EXPORT.LOG dumpfile=M_RULE.dmp TABLES=root.m_met_rules,root.m_ruleset,root.m_ruleset_org cluster=no

注意 这里不要写schema参数 tables 和 schema参数不能同时出现

//导入刚才导出的dump文件

impdp root1/root1@localhost/myDataBase directory=dmpdir logfile=M_RULE_IMPORT.LOG dumpfile=M_RULE.dmp TABLES=root.m_met_rules,root.m_ruleset,root.m_ruleset_org remap_schema=root:root1 cluster=no table_exists_action=REPLACE
table_exists_action 如果目标用户表已存在则覆盖

 

以上是关于使用expdp 和impdp 导入导出 表结构的主要内容,如果未能解决你的问题,请参考以下文章

数据泵EXPDP导出工具和IMPDP导入工具的使用

如何使用expdp和impdp命令将一个数据库的表空间导入到另一个数据库中?(oracle 10g)

impdp导入expdp导出数据库实例

oracle使用impdp和expdp导入导出数据

逻辑导入导出exp/imp与数据泵expdp/impdp

ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法