oracle exp/imp工具使用

Posted yaoyangding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle exp/imp工具使用相关的知识,希望对你有一定的参考价值。

最近在学习oraclel备份与恢复的知识,特总结了逻辑备份与恢复的使用方法:

 

一、逻辑备份的介绍:

所谓备份 ,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

    

下面咱们就来讲讲导入导入(EXP/IMP)用法。

 

二、EXP/IMP工具介绍:

        利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。

  1、简单导出数据(Export)和导入数据(Import)

  Oracle支持三种方式类型的输出:

  (1) 表方式(Table方式),将指定表的数据导出。

  (2) 用户方式(User方式),将指定用户的所有对象及数据导出。

  (3) 全库方式(Full方式),瘵数据库中的所有对象导出。

  数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

 

       2、增量导出/导入

  增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

  增量导出包括三种类型:

  (1)“完全”增量导出(Complete)

  即备份三个数据库,比如:

  exp system/admin inctype=completefile=040731.dmp

  (2)“增量型”增量导出

  备份上一次备份后改变的数据,比如:

  exp system/admin inctype=incrementalfile=040731.dmp

  (3)“累积型”增量导出

  累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。

  exp system/admin inctype=cumulativefile=040731.dmp

 

三、EXP/IMP与字符集

   Export和 Import是一对读写Oracle数据的工具。Export将 Oracle数据库中的数据输出到操作系统文件中, Import把这些文件中的数据读到Oracle数据库中,由于使用exp/imp进行数据迁移时,数据从源数据库到目标数据库的过程中有四个环节涉及到字符集,如果这四个环节的字符集不一致,将会发生字符集转换。


     四个字符集是
   (1)源数据库字符集
   (2)Export过程中用户会话字符集(通过NLS_LANG设定)
   (3)Import过程中用户会话字符集(通过NLS_LANG设定)
   (4)目标数据库字符集

 

  详见:http://blog.csdn.net/indexman/article/details/7759318

 

四、应用实例如下:

     1.  EXP

     1)   EXP语法与参数介绍:

    

         格式:  EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
         例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
                   或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
     
    USERID 必须是命令行中的第一个参数。
     
    关键字   说明 (默认值)         关键字      说明 (默认值)
    --------------------------------------------------------------------------
    USERID   用户名/口令           FULL        导出整个文件 (N)
    BUFFER   数据缓冲区大小        OWNER        所有者用户名列表
    FILE     输出文件 (EXPDAT.DMP)  TABLES     表名列表
    COMPRESS  导入到一个区 (Y)   RECORDLENGTH   IO 记录的长度
    GRANTS    导出权限 (Y)          INCTYPE     增量导出类型
    INDEXES   导出索引 (Y)         RECORD       跟踪增量导出 (Y)
    DIRECT    直接路径 (N)         TRIGGERS     导出触发器 (Y)
    LOG      屏幕输出的日志文件    STATISTICS    分析对象 (ESTIMATE)
    ROWS      导出数据行 (Y)        PARFILE      参数文件名
    CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  导出的约束条件 (Y)
     
    OBJECT_CONSISTENT    只在对象导出期间设置为只读的事务处理 (N)
    FEEDBACK             每 x 行显示进度 (0)
    FILESIZE             每个转储文件的最大大小
    FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN
    FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间
    QUERY                用于导出表的子集的 select 子句
    RESUMABLE            遇到与空格相关的错误时挂起 (N)
    RESUMABLE_NAME       用于标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
    TTS_FULL_CHECK       对 TTS 执行完整或部分相关性检查
    TABLESPACES          要导出的表空间列表
    TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
    TEMPLATE             调用 iAS 模式导出的模板名

 

   2) 导出表:  

   

    C:Documents and SettingsAdministrator>exp userid=system/admin tables=(scott.emp) file=e:emp.dmp
     
    Export: Release 10.2.0.1.0 - Production on 星期日 8月 5 14:08:55 2012
     
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     
     
    连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
     
    即将导出指定的表通过常规路径...
    当前的用户已更改为 SCOTT
    . . 正在导出表                             EMP导出了          14 行
    成功终止导出, 没有出现警告。

    3)导出表结构:

   exp userid=system/admin tables=(scott.emp) file=e:emp1.dmp rows=n
 

    4)直接导出

   exp userid=system/admin tables=(scott.emp) file=e:emp1.dmp direct=y
   

   5)导出方案

   exp system/admin owner=(system,scott) file=e:system_scott.dmp

 

  6) 增量导出

   exp userid=system/admin full=y inctype=complete file=e:orcl.dmp

 

 

2. IMP

   1)  语法如下:

    

         格式:  IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
         例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
                   或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
     
    USERID 必须是命令行中的第一个参数。
     
    关键字   说明 (默认值)        关键字      说明 (默认值)
    --------------------------------------------------------------------------
    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)
    FEEDBACK               每 x 行显示进度 (0)
    TOID_NOVALIDATE        跳过指定类型 ID 的验证
    FILESIZE               每个转储文件的最大大小
    STATISTICS             始终导入预计算的统计信息
    RESUMABLE              在遇到有关空间的错误时挂起 (N)
    RESUMABLE_NAME         用来标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
    COMPILE                编译过程, 程序包和函数 (Y)
    STREAMS_CONFIGURATION  导入流的一般元数据 (Y)
    STREAMS_INSTANTIATION  导入流实例化元数据 (N)
     
    下列关键字仅用于可传输的表空间
    TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
    TABLESPACES 将要传输到数据库的表空间
    DATAFILES 将要传输到数据库的数据文件
    TTS_OWNERS 拥有可传输表空间集中数据的用户

 

    2) 导入表:

    SQL> conn scott/tiger
     
    已连接。
    SQL> drop table emp;
     
    表已删除。
     


 

    C:Documents and SettingsAdministrator>imp userid=system/admin tables=(emp) file=e:emp.dmp fromuser=scott touser=scott
     
    Import: Release 10.2.0.1.0 - Production on 星期日 8月 5 15:36:07 2012
     
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     
     
    连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
     
    经由常规路径由 EXPORT:V10.02.01 创建的导出文件
    已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
    . 正在将 SCOTT 的对象导入到 SCOTT
    . . 正在导入表                           "EMP"导入了          14 行
    即将启用约束条件...
    成功终止导入, 没有出现警告。


        3)导入方案:

      imp system/admin file=e:scott.dmp log=e:scott.log fromuser=scott
      imp system/manager file=e:system_scott.dmp  log=e:system_scott.log fromuser=(system, scott)

    

 

      4)  导入完整数据库:

      imp system/admin file=e:orcl.dmp log=e:orcl.log full=y ignore=y
————————————————
版权声明:本文为CSDN博主「罗汉爷」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/IndexMan/article/details/7829748

以上是关于oracle exp/imp工具使用的主要内容,如果未能解决你的问题,请参考以下文章

[转] - Oracle 中 EXP / IMP 使用方法

oracle exp/imp 详解

深入理解Oracle的imp/exp 和各版本之间的规则

ORACLE-数据导入导出-常规exp/imp以及数据泵方式

OracleEXPDP和IMPDP数据泵进行导出导入的方法

windows上oracle数据库导入导出数据