oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp

一,简介

  存活下来的远古级别的导入导出软件exp/imp  ,软件多数使用于oracle 9i 之前 到了10g以后基本全面被数据库泵(Data Pump)取代,即expdp/impdp.本文会分别介绍这几款软件使用.

二,exp/imp

  1,exp 使用参数说明

--------括号内为默认值------
USERID            用户名/口令      如: USERID=duanl/duanl      
FULL               导出整个数据库 (N)
BUFFER            数据缓冲区的大小         
OWNER            所有者用户名列表,你希望导出哪个用户的对象,就用owner=username
FILE                输出文件 (EXPDAT.DMP)    
TABLES            表名列表 ,指定导出的table名称,如:TABLES=table1,table2
COMPRESS         导入一个extent (Y)   
RECORDLENGTH     IO 记录的长度
GRANTS            导出权限 (Y)            
INCTYPE            增量导出类型
INDEXES            导出索引 (Y)           
RECORD            跟踪增量导出 (Y)
ROWS               导出数据行 (Y)        
PARFILE            参数文件名,如果你exp的参数很多,可以存成参数文件.
CONSTRAINTS        导出约束 (Y)    
CONSISTENT         交叉表一致性
LOG                屏幕输出的日志文件    
STATISTICS          分析对象 (ESTIMATE)
DIRECT             直接路径 (N)              
TRIGGERS          导出触发器 (Y)
FEEDBACK       显示每 x 行 (0) 的进度
FILESIZE         各转储文件的最大尺寸
QUERY           选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES                 将传输的表空间列表            

    例:

    全库导出:

 exp system/123456@oracle01 file=/oradata/back/full.dmp full=y

oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp

oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp      按用户导出:

 exp system/123456  file=/oradata/back/test.dmp owner=kingle

      按表导出:

 exp system/123456  file=/oradata/back/test.dmp owner=t,t1

  2,imp 说明

USERID    用户名/口令           
FULL      导入整个文件 (N)
BUFFER    数据缓冲区大小         
FROMUSER  所有人用户名列表
FILE      输入文件 (EXPDAT.DMP)    
TOUSER    用户名列表
SHOW      只列出文件内容 (N)
TABLES    表名列表
IGNORE    忽略创建错误 (N)    
RECORDLENGTH   IO 记录的长度
GRANTS    导入权限 (Y)          
INCTYPE   增量导入类型
INDEXES   导入索引 (Y)          
COMMIT    提交数组插入 (N)
ROWS      导入数据行 (Y)       
PARFILE   参数文件名
LOG       屏幕输出的日志文件   
CONSTRAINTS   导入限制 (Y)
DESTROY   覆盖表空间数据文件 (N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES   跳过不可用索引的维护 (N)
ANALYZE   执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK  显示每 x 行 (0) 的进度
TOID_NOVALIDATE   跳过指定类型 id 的校验
FILESIZE          各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES          将要传输到数据库的表空间
DATAFILES            将要传输到数据库的数据文件
TTS_OWNERS           拥有可传输表空间集中数据的用户

    例:

  全库导入:

imp system/123456@oracle01 file=/oradata/back/full.dmp full=y

oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp

  按用户导入:

imp system/123456  file=/oradata/back/test.dmp fromuser=kingle touser=kingle

  按表导入:

imp system/123456  file=/oradata/back/test.dmp owner=t

二,expdp/impdp(数据泵)

  1,数据泵

    数据泵(DATA PUMP)是一种在数据库之间或在数据库与操作系统之间高速传输数据的技术。数据泵工具运行在服务器,数据库管理员需要指定数据库目录来保存转储的数据。

    优势:

1. 支持并行处理导入、导出任务
2. 支持暂停和重启动导入、导出任务
3. 支持通过Database Link的方式导出或导入远端数据库中的对象
4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、 数据文件或数据所在表空间。
5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象

  2,expdp

    导出就是数据库的逻辑备份,实质是读取一个数据库记录并将这个记录集写入一个文件(扩展名通常是dmp),这些记录的导出与物理位置无关

    实例:

    按用户导出:

expdp system/123456 schemas=test dumpfile=/oradata/backup/test.dmp DIRECTORY=dir;

    并行进程parallel

expdp system/123456 schemas=test dumpfile=/oradata/backup/test2.dmp DIRECTORY=dir;

    按照表名导出:

expdp test/123456 TABLES=t dumpfile=test3.dmp DIRECTORY=dir;

    按条件导出:

expdp test directory=dir dumpfile=test4.dmp Tables=t query='WHERE id=1';

    按表空间导出:

expdp system/123456 DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=users;

    全库导出:

expdp system/oracle^Cumpfile=full.dump full=y logfile=full.log directory=expdp

oracle 基础知识(十)----exp/imp--->>>>>expdp/impdp

  3,impdb

    导入即数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库

    导到指定用户:

impdp system/123456 DIRECTORY=dir DUMPFILE=kingle.dmp SCHEMAS=kingle;

    导入表空间

impdp system/123456 DIRECTORY=dir DUMPFILE=tablespace.dmp TABLESPACES=users;

    导入数据库

 impdb system/123456  DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;