Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69128
  • 博文数量: 15
  • 博客积分: 638
  • 博客等级: 上士
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-26 23:13
文章分类

全部博文(15)

文章存档

2012年(1)

2011年(1)

2009年(13)

分类: Oracle

2009-11-12 19:44:05

系统环境:Solaris 5.8  Oracle9i Release 9.2.0.1.0 - 64bit Production
exp数据报错:
EXP-00002: error in writing to export file
EXP-00002: error in writing to export file
EXP-00000: Export terminated unsuccessfully
 
有网友说是2G文件大小限制。
 
我当时的解决办法:当时的想法是权限问题,于是导出到/tmp目录下,一切正常,近4G大小。
 
 
==========
附网友的方法:
oracle 中Export File Size 2Gb大文件 简介 收藏
我的总结,肯定对你有帮助:  
   
  2Gb   Export   File   Size  
   
  本文写作时大多数的export   版本使用默认的文件处理API   来创建export   文
件。这意味着在相当多的平台上,不能导出大于2GB   的文件。  
   
  以下是一些克服的方法:  
          通常可以导出大于2GB   的文件到裸设备上。  
          在Unix   上可以使用命名管道来压缩/分割文件  
          可以导出到磁盘上  
          ORACLE8i   允许导出到多个文件而不是一个大的文件  
   
   
   
   
  其他的2GB   导出问题  
   
  ORACLE   最大extent   的大小为2GB.不幸的是许多发行版本的ORACLE   中的
export都有一个问题,就是当指定compress=y   时,可能导出的文件中其Next   存
储子句会出现大于2GB   的情况。这会导致即使指定了ignore=y   时,import   也
会出错。  
   
  compress=y   肯能修改storage子句initial子句,指定输出是否压缩碎片的数据段
,便于在重建时使用大的extent.  
   
  本问题可参见[BUG:708790]和[NOTE:62436.1]  
   
   
   
   
  典型的2GB+时export   错误:  
  .   .   exporting   table   BIGEXPORT  
  EXP-00015:   error   on   row   10660   of   table  
  BIGEXPORT,  
  column   MYCOL,   datatype   96  
  EXP-00002:   error   in   writing   to   export   file  
  EXP-00002:   error   in   writing   to   export   file  
  EXP-00000:   Export   terminated   unsuccessfully  
   
   
  在[BUG:185855]中还提到了一个问题:当导出全库时产生的create   tablespace  
命令会使用bytes   作为单位。当import   时,生成的数据文件若大于2GB,可能导
致ora-2237   错误。  
  解决办法是先创建表空间(用M   代替bytes),然后导入文件。  
   
  补充:  
   
  export   大文件可以采取的方法:  
  1.   裸设备  
  比如直接倒出到/dev/rlvtest   等。  
   
  2.   命名管道(Unix   下)  
  mknod   /tmp/imp_pipe   p  
  compress   <   /tmp/exp_pipe   >   export.dmp.Z   &  
  exp   file=/tmp/exp_pipe   userid=xxx/xxx   tables=...  
   
  mknod   /tmp/imp_pipe   p  
  uncompress   <   export.dmp.Z>/tmp/imp_pipe   &  
  imp   file=/tmp/imp_pipe   userid=xxx/xxx   tables=...  
   
  3.压缩/文件拆分:(以下只在ksh   中有效:)  
  echo   |exp   file=>(compress   |   split   -b   1024m   -   expdmp-)  
userid=xxx/xxx   tables=...  
  echo   |   imp   file=<(cat   expdmp-   *   |zcat)   userid=xxx/xxx  
tables=...  
   
  4.可以直接倒出到磁带  
  比如exp   file=/dev/rmt0   ....  
   
  5。可以在ORACLE8i+版本里面,通过使用filesize   和file   相结合,倒出生成
多个文件.  
**************************************************************
5. 命令行-完全导出
  
  exp
full=y inctype=complete
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp, /tmp/2004020603.dmp)
  filesize=2GB log=/tmp/20040206.log
  
  该命令完全导出全库数据,导出到多个文件中每个文件最大2GB,导出过程记录日志
.
  
  说明:
  
  (1) 全库导出时,增量导出类型缺省为(complete)完全,所以例5 和例2导出的结果
是完全一样的.
  
  6. 命令行-累积导出
  
  exp
full=y inctype=cumulative
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp) filesize=2GB
  log=/tmp/20040206.log
  
  该命令累积导出全库数据,导出到多个文件中,每个文件最大2GB,导出过程记录日
志.
  
  说明:
  
  (1) 如果选择了增量导出类型,则必需选择full=y,即只能在全库导出模式下进行
完全累积或增量导出.
  
  7. 命令行-增量导出
  
  exp
full=y inctype=incremental
  file=(/tmp/2004020601.dmp, /tmp/2004020602.dmp) filesize=2GB
  log=/tmp/20040206.log
  
  该命令累积导出全库数据,导出到多个文件中,每个文件最大2GB,导出过程记录日
志.
阅读(7656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~