expdp/impdp 数据泵导入导出

expdp/impdp 数据泵导入导出业务场景 nbsp nbsp 在工作中 涉及到 oracle 数据库迁移 使用 navicat 等其他工具容易报错 一系列问题很麻烦 今天记录一下操作流程及个人理解 文章参考了很多文档和博客 EXPDP 数据导出请自行修改目录路径和自定义的表名 否则出现错误很难查找 一般 expdp 流程 nbsp nbsp 一 新建逻辑目录最好以 system 等管理员创建逻辑目录 Oracle 不会自动创建实际的物理目录

业务场景:

    在工作中,涉及到oracle数据库迁移,使用navicat等其他工具 容易报错,一系列问题很麻烦,今天记录一下操作流程及个人理解(文章参考了很多文档和博客);

EXPDP数据导出

请自行修改目录路径和自定义的表名,否则出现错误很难查找~

一般expdp流程:

   expdp/impdp 数据泵导入导出

一、新建逻辑目录

最好以system等管理员创建逻辑目录,Oracle不会自动创建实际的物理目录“D:\oracleData”(务必手动创建此目录),仅仅是进行定义逻辑路径dump_dir;

忘记sys用户密码的可以去下如何修改sys用户密码;

建议使用pl、navicat等oracle操作工具来操作;

登陆后sql执行:

 create directory mydata as '逻辑目录路径'; 例如: create directory mydata as '/data/oracle/oradata/mydata'; 

二、查看逻辑目录是否创建成功

执行sql:

sql>select * from dba_directories

expdp/impdp 数据泵导入导出

三、用expdp导出数据

用法及解释:

expdp 用户名/密码@ip地址/实例  [属性] ip地址不写默认就是本地

userid=test/test            –导出的用户,本地用户!!
directory=dmpfile          –导出的逻辑目录,一定要在oracle中创建完成的,并且给用户授权读写权限
dumpfile=xx.dmp      –导出的数据文件的名称,如果想在指定的位置的话可以写成dumpfile=/home/oracle/userxx.dmp
logfile=xx.log          –日志文件,如果不写这个参数的话默认名称就是export.log,可以在本地的文件夹中找到
schemas=userxx       –使用dblink导出的用户不是本地的用户,需要加上schema来确定导出的用户,类似于exp中的owner,但还有一定的区别
EXCLUDE=TABLE:”IN(‘T1′,’T2′,’T3’)”     –exclude 可以指定不导出的东西,table,index等,后面加上不想导出的表名
network_link=db_local          –这个参数是使用的dblink来远程导出,需要指定dblink的名称












列出一些场景:

1)导出用户及其对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

2)导出指定表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery=’where deptno=20′ logfile=expdp.log;

4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example logfile=expdp.log;

5)导整个数据库
expdp scott/123@127.0.0.1/orcl directory=dump_dir dumpfile=ly.dmp full=y  logfile=expdp.log;

一般用的都是导出整个数据库,本人使用的代码:

//包含所有用户的表、视图、索引等 expdp JCPT/123@127.0.0.1/orcl directory=mydata dumpfile=ly.dmp full=y logfile=expdp.log; //指定用户的表、视图、索引等 expdp JCPT/123@127.0.0.1/orcl directory=mydata schemas=jcpt dumpfile=ly.dmp logfile=expdp.log; 

 

导出完成后:逻辑目录生成了一个 dmp文件;

expdp/impdp 数据泵导入导出

IMPDP数据导入

在正式导入数据前,要先确保要导入的用户已存在,如果没有存在,请先用下述命令进行新建用户

流程:

expdp/impdp 数据泵导入导出

一、创建表空间

使用system登录oracle,执行sql

格式: create tablespace 表间名 datafile ‘数据文件名’ size 表空间大小                

create tablespace data_test datafile 'e:\oracle\oradata\test\test.dbf' size 2000M; (*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆) 

二、创建用户并授权         

格式: create user 用户名 identified by 密码 default tablespace 表空间表;                

create user study identified by study default tablespace data_test;

 (*我们创建一个用户名为 study,密码为 study, 表空间为 madate-这是在上一步建好的.)          

授权给 用户 study     ,执行sql

#给用户逻辑目录读写权限 sql>grant read,write on directory mydata to study; #给用户表空间权限 sql>grant dba,resource,unlimited tablespace to study;

 

  三、impdp导入

命令在cmd或者控制台输入,不是sql语句

写法:

impdp 用户名/密码@ip地址/实例  [属性]

ip地址不写默认就是本地

注释:

1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott logfile=impdp.log;

2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);

3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

4)导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;

日常使用的:

把用户jcpt中所有的表导入到lyxt用户下 impdp lyxt/lyxt123@127.0.0.1/orcl directory=mydata dumpfile=LY.DMP remap_schema=jcpt:lyxt logfile=ims.log table_exists_action=replace 

5)追加数据
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action logfile=impdp.log;

    以上是日常工作中实际工作中用到的,希望能够给你得到帮助。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208318.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:52
下一篇 2026年3月19日 上午11:52


相关推荐

  • matlab画三维图像例题_matlab画三维曲面

    matlab画三维图像例题_matlab画三维曲面我可能真的太闲了吧···在网上看到这图觉得挺好看:t=0:pi/360:2*pi;x=sin(t);y=cos(t);z=2*x.^2+y.^2;figureplot3(x,y,z,’Color’,’r’,’LineWidth’,2);xlabel(‘x’);ylabel(‘y’);zlabel(‘z’);title(‘z=(cost)^2+2*(sint)^2’);ax…

    2022年10月11日
    4
  • pandas读取excel文件,转换为字典

    pandas读取excel文件,转换为字典pandas读取excel文件,转换为字典

    2025年6月9日
    5
  • SpringBoot 项目中使用Log4j2详细(避坑)

    SpringBoot 项目中使用Log4j2详细(避坑)以下大部分内容转载整理自 https blog csdn net vbirdbest article details 感谢 vbirdbest 的相关知识分享首先 认识一下三胞胎 log4j 是 apache 实现的一个开源日志组件 logback 同样是由 log4j 的作者设计完成的 拥有更好的特性 用来取代 log4j 的一个日志框架 是 slf4j 的原生实现 Log4j2 是

    2026年3月16日
    2
  • httprunner(5)编写测试用例

    httprunner(5)编写测试用例编写测试用例HttpRunnerv3.x支持三种测试用例格式pytest,YAML和JSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例格式关系如下图所示

    2022年7月31日
    7
  • 大数据在应急管理中的应用[通俗易懂]

    大数据在应急管理中的应用[通俗易懂]随着互联网、社交媒体和人工智能的技术发展和应用普及,大数据在应急管理中发挥的作用将越来越重要,是应急管理未来发展的重要方向之一。应急管理部的成立为中国应急管理的发展提供了政策上的支持,也为发展大数据在中国应急管理中的应用提供了契机。现阶段,理论研究尚无法完全预知大数据在应急管理中的具体应用。但基于对应急管理基本原理的掌握,结合对大数据本质属性的理解和对中国应急管理制度情境的了解,我们可以初步厘清大…

    2022年5月8日
    91
  • java 二维数组 arraycopy_Java对数组的复制[通俗易懂]

    java 二维数组 arraycopy_Java对数组的复制[通俗易懂]定义一个数组int[]a={3,1,4,2,5};int[]b=a;数组b只是对数组a的又一个引用,即浅拷贝。如果改变数组b中元素的值,其实是改变了数组a的元素的值,要实现深度复制,可以用clone或者System.arrayCopyint[]a={3,1,4,2,5};int[]b=a.clone();b[0]=10;System.out.println(b[0]+””+a[0…

    2022年7月7日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号