ITPub博客

首页 > Linux操作系统 > Linux操作系统 > exp imp用法介绍

exp imp用法介绍

原创 Linux操作系统 作者:tianya_2011 时间:2012-05-16 18:44:05 0 删除 编辑
一 基本命令:

 1.  获取帮助

     $ exp help=y

     $ imp help=y

2. EXP是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
   exp导出工具将数据库中数据导出成一个二进制系统文件.可以在不同OS间迁移
    它有三种模式:
    a.表模式:    导出用户所有表或者指定的表(也可以导出其他用户的表);
    b.用户模式:    导出用户所有对象以及对象中的数据; 

    c.整个数据库:  导出数据库中所有对象。

 

3.IMP是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
   imp导入工具将EXP形成的二进制系统文件导入到数据库中.
   它有三种模式:
   a. 用户模式:   导入用户所有对象以及对象中的数据(或某个对象及对象中的数据);
   b. 表模式:     导入用户所有表或者指定的表;
   c. 整个数据库: 导入数据库中所有对象。

二、数据导出:
 
  1、 将数据库ora10g完全导出,用户名system 密码manager 导出到D:\full_emp.dmp中
 
  $ exp   system/manager@ora10g    file=d:\full_emp.dmp full=y  log=d:\full_emp.log
 
  2、 将数据库中system用户与sys用户导出
 
  $ exp   system/manager@ora10g   file=d:\sys_system_emp.dmp  owner=(system,sys) log=d:\sys_system_emp.log
 
  3、 将数据库中的scott用户的表table1 、table2导出
 
  $ exp   scott/tiger@ora10g   file=d:\t1_t2_emp.dmp tables=(table1,table2)  log=d:\t1_t2_emp.log
 
  4、 将数据库中scott用户的表table1中的字段filed1以"00"打头的数据导出
 
  $ exp   system/manager@ora10g   file=d:\00_emp.dmp tables=(table1) query=\" where filed1 like '00%'\"  log=d:\00_emp.log
 
 三、数据的导入
 
   1、将D:\full_emp.dmp 中的数据导入 ora10g数据库中。
 
  $ imp   system/manager@ora10g   file=d:\full_emp.dmp  log=d:\full_imp.log
    
      // 一般是建一个新库,然后全库导入
 
      2 将d:\t1_t2_emp.dmp中的表table1 导入
 
  $ imp    scott/tiger@ora10g    file=d:\t1_t2_emp.dmp  tables=(table1) log=d:\t1_imp.log
 
      // 一般是将表彻底删除,然后导入。

      3,将用户导入:
   
      $ imp    scott/tiger@ora10g    file=d:\scott_emp.dmp fromuser=scott  touser=scott  log=d:\scott_imp.log
 
四,Oracle imp备份导入注意事项:
  
(1)数据库对象已经存在
  一般情况,导入数据前应该彻底删除目标数据下的表,序列,函数/过程,触发器等;数据库对象已经存在,按缺省的imp参数,则会导入失败如果用了参数ignore=y,会把Oracleexp文件内的数据内容导入如果表有唯一关键字的约束条件,不合条件将不被导入如果表没有唯一关键字的约束条件,将引起记录重复。
  
(2)数据库对象有主外键约束
  不符合主外键约束时,数据会导入失败解决办法:先导入主表,再导入依存表disable目标导入对象的主外键约束,导入数据后,再enable它们
  
(3)权限不够
  如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限
  
(4)导入大表(大于80M )时,存储分配失败
  默认的EXP时, compress = Y,也就是把所有的数据压缩在一个数据块上.导入时,如果不存在连续一个大数据块,则会导入失败.导出80M以上的大表时,记得compress= N,则不会引起这种错误.
  
(5) imp和exp使用的字符集不同
  如果字符集不同,导入会失败,可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.导入完成后再改回来.
  
(6) imp和exp版本不能往上兼容
  imp可以成功导入低版本exp生成的文件,不能导入高版本Oracleexp生成的文件
(7)只导出表结构:加direct=y参数
(8)导出的文件是二进制文件 如果要经历FTP传输 一定要使用binary传输模式传 如果使用ASCII模式传输会损坏文      件
如果用户导出其他用户的对象:
1)需要dba的权限
2)或者exp_full_database的权限
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25373498/viewspace-730985/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-11

  • 博文量
    85
  • 访问量
    606625