[ORACLE] oracle table export exp/imp

10g以前:exp/imp

10g以后: expdp/impdp,可以通过使用并行,从而在效率上要比exp/imp要高,
作用:

  • 小型数据库存的转储备份
  • 表空间的迁移
  • 表的抽取
  • 检测逻辑和物理冲突

exp -help
imp -help

三种方式:

  • 完全模式,要有特殊权限,备份完整数据库  exp system/oracle buffer=65536 feedback=100000 full=y file=exp.dmp log=exp.log
  • 用户方模式                                    exp system/oracle owner=abc buffer=65536 feedback=100000  file=exp.dmp log=exp.log
  • 表模式                                                     exp system/oracle buffer=65536 feedback=100000 file=exp.dmp log=exp.log tables=tab1,tab2,tab3


IMP导入
import 要与export 对应,也有三种模式,表恢复,用户恢复,完全恢复

  • 完全                                       imp system/oracle commit=y buffer=65536 feedback=100000 ignore=y full=y file=exp.dmp log=imp.log
  • 用户模式                                     imp abc/abc fromuser=imp touser=imp commit=y buffer=65536 feedback=100000 ignore=y file=exp.dmp log=imp.log
  • 也可以指定备份数据中指定的表  imp abc/abc fromuser=imp touser=imp commit=y buffer=65536 feedback=100000 ignore=y file=exp.dmp log=imp.log tables=t1,t2,t3


oracle 10g 引入Data Dump 技术,数据泵的作用
    1.实现逻辑备份和逻辑恢复
    2.在数据库用户之间移动对象
    3.在数据库之间移动对象
    4.实现表空间搬移

expdp -help
impdp -help
使用exp之前,必须要建立directory 对象,并且需要为数据库用户授予使用directory对象权限

  • 导出表      expdp abc/abc directory=dump_dir dumpfile=tab.dmp tables=depe,emp logfile=exp.log
  • 导出(用户)     expdp abc/abc directory=dump_dir dumpfile=schema.dmp schemas=system,abc logfile=exp.log
  • 导出表空间    expdp abc/abc directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01,user02 logfile=exp.log
  • 导出数据库    expdp system/manager directory=dump_dir dumpfile=full.dmp full=y logfile=exp.log
  • 5导出查询条件   expdp abc/abc@db_name directory=dump_dir dumpfile=expdb.dmp tables=emp query='where deptno=10' logfile=exp.log


使用impdp之前,必须要建立directory 对象,并且需要为数据库用户授予使用directory对象权限
导出表impdp abc/abc directory=dump_dir dumpfile=tab.dmp tables=depe,emp logfile=impdp.log
导出(用户)impdp abc/abc directory=dump_dir dumpfile=schema.dmp schemas=system,abc logfile=impdp.log
导出表空间impdp abc/abc directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01,user02 logfile=impdp.log
导出数据库impdp system/manager directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log
导出查询条件   impdp abc/abc@db_name directory=dump_dir dumpfile=expdb.dmp tables=emp query='where deptno=10' logfile=impdp.log


SQL*Loader一种数据加载工具,比较适合业务分析类型数据库,能处理多种格式的平面文件,比传统的数据插入效率更高.
加载方式:

  • 传统路经(direct=false) 等同于insert INSERT INTO TABLE PARTITION(P) VALUES...
  • 直接加载(direct=true)  性能比传统路经加载更高,但限制也更多 LOAD INTO TABLE PARTITION (P) VALUES...
  • 外部表加载(较少用) 先为数据文件上创建一个外部表,然后再把数据从外部表INSERT到目标表中

sample :

exp USERID=scott/tiger TABLES=(scott.emp,scott.sales) FILE=/tmp/exp_tab.dmp

imp c##sapr3/12345678 file=/oracle/test.dmp full=y ignore=y;

小注:

在DB OS用户下运行

imp USERID=scott/tiger from user=user1 touser=user2 file=file commit=y feedback=10000 buffer=10240000 ignore=y rows=y indexes=n

先导数据rows=y indexes=n,再导索引rows=n indexes=y

  • 分段式提交
  • 设置缓冲
  • 先导数据再导索引
每天进步一点点,多思考,多总结 版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文地址:https://www.cnblogs.com/tingxin/p/12639857.html