Oracle数据泵(Data Pump)你了解过吗?

本文详细介绍了Oracle数据库管理员如何使用Expdp和Impdp工具进行数据和元数据的高效迁移,包括创建逻辑目录、设置权限、导出按用户、表、查询和表空间,以及导入数据的操作方法和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

         作为Oracle数据库管理员,或多或少会用到Expdp/Impdp工具。在Oracle数据库间迁移或者升级,备份和恢复,以及生产、开发、测试环境之间数据导出导入等方面,DBA通过会使用Expdp/Impdp工具很快速来实现这些操作。

数据泵

什么是数据泵?

        Oracle数据泵技术支持Oracle数据库间进行数据和元数据高速迁移,主要是由客户端expdp和impdp实用工具来实现导出和导入数据。expdp和impdp客户端其实是使用DBMS_DATAPUMP PL/SQL包中提供的过程,使用在命令行中输入的参数执行导出和导入命令。这些参数支持导出和导入完整数据库或数据库子集的数据和元数据。同时,DBMS_DATAPUMPDBMS_METADATAPL/SQL包可以独立于数据泵客户端使用。

数据泵的组成

Oracle Data Pump由三个不同的组件组成:

  • 命令行客户端、expdp和impdp
  • DBMS_DATAPUMP PL/SQL包(也称为数据泵API)
  • DBMS_METADATA PL/SQL包(也称为元数据API)

注意事项

  • exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
  • expdp和impdp是服务端工具程序,它们只能在oracle服务端使用,不能在客户端使用。
  • imp只适用于exp导出的文件,不适用于expdp导出的文件;impdp只适用于expdp导出的文件,不适用于exp导出的文件

expdpimpdp使用

  • 在Oracle服务端,命令行打开sqlplus
sqlplus /nolog
conn / as sysdba
  • 创建逻辑目录,该命令不会在操作系统中创建真正的目录(最好手工创建好),最好以administrator创建
create directory dump as "/u01/dump";
  • 查看管理员目录(同时查看操作系统中是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
  • 给用户赋予在指定目录的操作上权限,最好是以system等管理员赋予
grant read,write on directory dump to 用户;
  • 导出数据

         (1)按用户导出

expdp 用户名/密码@实例名 schemas=模式 dumpfile=expdp.dmp directory=dump logfile=expdp.log;

        (2)并行进程paraller

expdp scott/tigger@orcl directory=dump dumpfile=scott3.dmp paraller=40 job_name=scott3;  

       (3)按表名导出

expdp scott/tigger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump;        

      (4)按查询条件导出

expdp scott/tigger@orcl directory=dump dumpfile=expdp.dmp tables=emp query='where eno=20';    

     (5)按表空间导出

expdp system/manager directory=dump dumpfile=tablespace.dmp tablespace=temp,example;     

    (6)整个数据库导出

expdp system/manager directory=dump dumpfile=full.dmp full=y;
  • 还原数据

    (1)导入指定用户下

impdp scott/tigger@orcl directory=dump dumpfile=expdp.dmp schemas=scott logfile=expdp.log

   (2)改变表的owner

impdp system/manager directory=dump dumpfile=expdp.dmp tables=scott.dept remap_schema=scott:system

   (3)导入表空间

impdp system/manager diretory=dump dumpfile=tablespace.dmp tablespace=example

   (4)导入整个数据库

impdp system/manager directory=dump dumpfile=full.dmp full=y;

  (5)追加数据

impdp system/manager directory=dump dumpfile=expdp.dmp schemas=system table_exists_action;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值