本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解.
文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本)进行了探讨,并提出了相应的解决方案;
本文部分内容摘录自网络,感谢网友的经验总结;

.说明
  oracle exp/imp命令用于实现对数据库的导出/导入操作;
  exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;
  imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。
.语法
可以通过在命令行输入 imp help=y 获取imp的语法信息:
=============================================================================
  C:/Documents and Settings/auduser>imp help=y
  Import: Release 9.0.1.1.1 - Production on 星期二 5 20 18:21:57 2008
  (c) Copyright 2001 Oracle Corporation.  All rights reserved.
  可以通过输入oracle登录命令 IMP 命令和您的用户名/口令
  后接用户名/口令的命令:
  例程: IMP SCOTT/TIGER
  或者, 可以通过输入 IMP 命令和各种参数来控制导入
  按照不同参数。要指定参数,您可以使用关键字:
  格式: IMP KEYWORD=value KEYWORD=(value1,value2,...,vlaueN)
  例程: 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)
  下列关键字仅用于可传输的表空间
  TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
  TABLESPACES 将要传输到数据库的表空间
  DATAFILES 将要传输到数据库的数据文件
  TTS_OWNERS 拥有可传输表空间集中数据的用户
==============================================
同样可以通过输入 exp help=y 获取exp的语法信息
  Microsoft Windows XP [版本 5.1.2600]
  (C) 版权所有 1985-2001 Microsoft Corp.
  C:/Documents and Settings/auduser>exp help=y
  Export: Release 9.0.1.1.1 - Production on 星期二 5 20 18:26:34 2008
  (c) Copyright 2001 Oracle Corporation.  All rights reserved.
 
  通过输入 EXP 命令和用户名/口令,您可以
  后接用户名/口令的命令:
  例程: EXP SCOTT/TIGER
  或者,您也可以通过输入跟有各种参数的 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 交叉表一致性    CONSTRAINTS  导出约束条件 (Y)
  FEEDBACK            x 行显示进度 (0)
  FILESIZE            每个转储文件的最大大小
  FLASHBACK_SCN        用于回调会话快照的 SCN
  FLASHBACK_TIME      用来获得最接近于指定时间的 SCN 的时间
  QUERY                用来导出表的子集的选择子句
  RESUMABLE            遇到与空格有关的错误时挂起 (N)
  RESUMABLE_NAME      用来标识可恢复语句的文本字符串
  RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
  TTS_FULL_CHECK      TTS 执行完全或部分相关性检查
  TABLESPACES          要导出的表空间列表
  TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
  TEMPLATE 调用 iAS 模式导出的模板名称
.使用示例
3.1 数据导出:
 1 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:/SampleDB.dmp
  exp system/manager@TestDB file=E:/sampleDB.dmp full=y
 2 将数据库中system用户与sys用户的表导出
  exp system/manager@TestDB file=E:/sampleDB.dmp  owner=(system,sys)
 3 将数据库中的表 TableA,TableB 导出
    exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(TableA,TableB)
 4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出
  exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(tableA)  query=' where filed1='王五'
 
  如果想对dmp文件进行压缩,可以在上面命令后面 加上 compress=y 来实现。
3.2 数据的导入
 1 将备份数据库文件中的数据导入指定的数据库SampleDB ,如果 SampleDB 已存在该表,则不再导入;
  imp system/manager@TEST  file=E:/sampleDB.dmp  full=y  ignore=y
 
 2 d:/daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=E:/sampleDB.dmp  tables=(table1)
3. 导入一个完整数据库
 imp system/manager file=bible_db log=dible_db full=y ignore=y
4. 导入一个或一组指定用户所属的全部表、索引和其他对象
 imp system/manager file=seapark log=seapark fromuser=seapark imp
 system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
5. 将一个用户所属的数据导入另一个用户
 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
 imp system/manager file=tank log=tank fromuser=(seapark,amy)
 touser=(seapark1, amy1)
6. 导入一个表

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。