请为,那位好手能帮我解决以下问题的困惑:

操作系统AIX 4.3.3

数据库:Oracle8.0.5.2

症状:导入一个8G大小的DMP文件,数据库报不能识别DMP文件,经查询,Oracle8.0.5对可识别的DMP文件大小也限定在2G以内。

请问通过什么有效的手段可以将8G大小的数据文件导入数据库?

谢谢

-----------------------------------------------------------------------------------------------------------------------------------------------------

我找到解决的办法了,现在与大家一起共享

通过管道,将数据导出随后压缩

example export-script:

PATH=$PATH:/usr/local/bin

export PATH

ORACLE_SID=DEMO

export ORACLE_SID

NLS_LANG=american_america.we8iso8859p1

export NLS_LANG

ORAENV_ASK=NO

export ORAENV_ASK

. oraenv

PIPE=/tmp/split_pipe

mkfifo $PIPE

cd /databases/dbs2/export

split -b 500m

exp system/manager file=$PIPE full=y compress=n buffer=7777777 log=/tmp/exp.log

rm $PIPE

导入执行以下命令

and import:

PATH=$PATH:/usr/local/bin

export PATH

ORACLE_SID=STEST

export ORACLE_SID

NLS_LANG=american_america.we8iso8859p1

export NLS_LANG

ORAENV_ASK=NO

export ORAENV_ASK

. oraenv

cd /databases/dbs2/export

PIPE=/tmp/split_pipe

mkfifo $PIPE

cat xaa xab xac xad xae xaf xag xah xai xaj xak xal xam xan xao xap xaq xar xas xat xau xav xaw xax xay xa

z xba xbb xbc xbd xbe xbf xbg xbh xbi xbj xbk xbl >$PIPE &

sleep 5

imp system/manager file=$PIPE full=y log=/tmp/imp_split.log buffer=7777777

rm $PIPE

===========================================================================================

本文描述"2GB"的问题。它阐述了为什么2GB是一个关键数字并且给出了如果文件大于2GB时一些你需要知道的东西。 本文主要阐述在Unix系统上的2GB问题。 讨论的主题: 为什么2GB是一个特别的数字 为什么使用2GB的数据文件 Export和2GB SQL*Loader和2GB oracle和其他2GB问题 为什么2GB是一个特殊的数字 许多CPU和系统调用接口(API)使用32位的字(word)。这个32位就在许多系统上带来了限制。在许多情况下,标准文件操作的API使用32位有符号word来指定文件大小和在文件中的相对位置。有符号的32位word使用最高位为符号位,因此31位所能表示的最大值就是0x7FFFFFFF(+2147483647),比2GB小1。 2GB或大于2GB的文件统称"大文件”.所以在32位环境中就会遇到许多问题。为了克服这些问题,现在的操作系统大多使用64位定义了新的系统调用。新版本的Oracle使用了这些接口但是在处理“大文件“时还是有许多问题是需要注意的。 另一个比较特殊的数字是4GB,0xFFFFFFFF作为无符号字所能表示的最大值就是4294967295,比4GB少1。加1则造成低32位变为0x00000000和一个进位,在32位体系中这个进位会被丢掉,因此4GB是另一个可能会发生问题的数字。 32位影响着oracle的许多方面。为了使用大文件,你需要: 1.操作系统支持2GB+的文件或裸设备 2.操作系统具有支持操作2GB+文件IO的API 3.oracle使用这些API 这对oracle意味着什么? 现今,大多数平台支持大文件并且有64位的API.从oracle 7.3开始通常就使用这些API了,但是这依赖于平台、操作系统和oracle的版本。在多数情况下大文件支持是可行的,但在某些情况下需要一个专门的patch. 在本文写作时,在oracle中还有一些工具没有使用这些新的64位API.比如export,SQL*LOADER,当然这是依赖于平台的具体操作系统数据库版本的。 为什么使用2GB+的数据文件 这里我们总结出使用大文件/设备作为oracle的数据文件的好处和缺点 好处: 在大多数平台上,oracle7最大支持1022个数据文件。每个文件如果小于2GB,那数据库最大也超不过2044GB.(在oracle8上这不是问题,Oracle8支持每个表空间1022个文件)。大文件的使用可以突破2044GB的限制。 对相对小的数据库来讲,大文件意味着更少的文件。也就意味着较少的文件处理及所需资源。 大文件的缺点 恢复的单位更大。一个2GB的文件需要15分钟到一个小时的备份/恢复时间(依赖于备份介质和磁盘速度)。一个8GB的文件需要此时间的4倍 并行备份/恢复操作会受影响 可能有操作系统特殊的限制:比如大于2GB的部分,也许异步IO只能串行(serialised)操作了。 操作大于2GB的文件也许需要补丁(patch),特殊的配置等,相对小文件来讲无形中引入了许多不可测因素,比如在一些AIX中。 使用大文件时需要注意的几点: 向操作系统厂商确认是否支持大文件并且如何配置他们 向操作系统厂商确认可支持的最大实际文件大小 向oracle支持确认是否需要补丁或在你的平台上(硬件、操作系统、oracle)是否有什么限制 当你升级操作系统或oracle时,检查以上所提。 确认是否正确的设置了系统以允许所有用户能使用大文件 确认备份脚本能处理大文件 注意还有一个使用大文件的限制。文件大小的具体数值依赖于数据库的DB_BLOCK_SIZE和平台。在大多数平台上(Unix,NT,VMS),文件大小限制为4194302*DB_BLOCK_SIZE. 请查看Alert [NOTE:112011.1]中的详细记录 重点注意事项: 当允许文件自动增长时需要特别小心。对AUTOEXTEND的文件限制MAXSIZE小于2GB是明智的。否则,由于[BUG:568232],当文件增长超过oracle不能处理时可能会出现ORA-600[3292]等错误。 大多数平台上oracle的数据文件包含一个特殊的头数据块,所以创建一个2GB的文件,实际需要大于2GB的空间。在Unix平台上,这个头大小通常是DB_BLOCK_SIZE,但在裸设备上可能会更大。 2GB的相关oracle错误 ORA-01119 Error in creating datafile xxxx ORA-27044 unable to write header block of file SVR4 Error: 22: Invalid argument ORA-19502 write error on file 'filename', blockno x (blocksize=nn) ORA-27070 skgfdisp: async read/write failed ORA-02237 invalid file size KCF:write/open error dba=xxxxxx block=xxxx online=xxxx file=xxxxxxxx file limit exceed. Unix error 27, EFBIG Export and 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也会出错。本问题可参见[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中的volsize参数最大到4GB.在一些平台上只有2GB. 8i中已经修改了本问题。[BUG:490190]描述了本问题。 SQL*Loader and 2Gb ~~~~~~~~~~~~~~~~~~ 典型的,当SQL*Loader打开一个大于2GB的输入文件时会报如下错误 SQL*Loader-500: Unable to open file (bigfile.dat) SVR4 Error: 79: Value too large for defined data type [NOTE:30528.1]中的例子可以修改后用于大的输入文件 oracle 8.0.6提高了对大的discard和log文件的支持。但最大的输入文件依平台不同而不同。 [BUG:948460]详细描述了输入文件的限制。 [BUG:749600]介绍了最大的discard文件大小 oracle和其他2GB问题 下面列出了其他的2GB问题 - 从oracle 8.0.5开始可以在大多数平台上使用64位oracle 8.0.5 README文件介绍了这些 。见[NOTE:62252.1] - DBV也许不能扫描大于2GB的文件,并报"DBV-100"错。 见[BUG:710888] - 在建立大于2GB文件时,SQL命令 datafile ... Size xxxxx 必须用'M' 或'K',否则报错'ORA-02237':invalid file size -在oracle 7.3.4之前表空间的quotas不能超过2GB.如: Eg: ALTER USER QUOTA 2500M ON reports ORA-2187: invalid quota specification. 见[BUG:425831] 解决办法时赋予unlimited tablesapace权限。 -使用spool时如果spool出的文件超过2GB也许会报错。 其他 具体各平台上文件大小限制 Platform See ~~~~~~~~ ~~~ AIX (RS6000 / SP) [NOTE:60888.1] HP [NOTE:62407.1] Digital Unix [NOTE:62426.1] Sequent PTX [NOTE:62415.1] Sun Solaris [NOTE:62409.1] Windows NT Maximum 4Gb files on FAT Theoretical 16Tb on NTFS ** See [NOTE:67421.1] before using large files on NT with Oracle8 *2 There is a problem with DBVERIFY on 8.1.6 See [BUG:1372172] *3 There is a problem with 8.1.6 / 8.1.7 where an autoextend to 4Gb can cause a crash - see [BUG:1668488] 后记:这篇文章来自metalink.oracle.com。本没想全文翻译的,因为其中许多详细的介绍都要参考该网站上的许多其他文章--我也知道读者读到一个问题,可又见不到到具体的解决方法会很恼火,但无论时间精力都不可能让我全部找来,而且似乎也没有必要。翻译了本文就当起个头吧。 补充: 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=

oracle导出dmp文件大小限制,[Oracle数据库] 急!关于在AIX4.3.3版本下导8.0.5数据库DMP文件大小的限制!...相关推荐

  1. oracle导出中文utf8乱码,ORACLE导入导出后发生中文乱码的原因及解决办法

    从数据库服务器上使用exp导出时显示如下: [oracle@kf15-1]:/users/oracle>$ exp username/passwd@kf15-1/i1000 tables=tab ...

  2. oracle 导出导入exl,关于oracle导出excel和excel导入oracle的经验总结【转】

    一.oracle导出excel 方法一:最简单的方法---用工具plsql dev 执行File =>new Report Window .在sql标签中写入需要的sql,点击执行或按快捷键F8 ...

  3. oracle导出用户下单表或者多表,导入到别的服务器用户下

    导出 exp 用户名/密码 file=存放dmp的名称的目录 statistics=none tables =(表名,表名,表名) exp creditfw/credit file=d:\test.d ...

  4. delphi Oracle导出多个表,Oracle数据库自动备份工具(Delphi源码)

    Oracle数据库自动备份工具(Delphi源码) 下载地址:http://www.blogjava.net/Files/96sd2/OraSvr.rar 『OracleBackupService』简 ...

  5. oracle导出一半报1046,Oracle 数据库1046事件

    例子: session 2: SQL> connect test/test Connected. select * from v$mystat where rownum=1; 143 selec ...

  6. oracle错误 904,ORACLE 导出错误 EXP-00008: 遇到 Oracle 错误 904

    案例情景--在一次 C:\Documents and Settings\Administrator>explsxy/lsxy@lsxy_dbfile=E:\lsxy.dmp owner=lsxy ...

  7. oracle导出报错04063,Oracle EXP导出报错的解决方法

    前段时间上海某保险客户IT主管打电话过来,说他们的开发人员在开发环境中执行EXP报错,让我过去检查下.本着"客户为本,服务为根"的宗旨,第一时间赶到客户现场. 和客户开发人员沟通下 ...

  8. oracle导出到hive,从Oracle导出数据并导入到Hive

    1.配置源和目标的数据连接 源(oracle): 目标(Hive 2.1.1),需要事先将hive的驱动程序导入HHDI的lib目录中. Hive2.1.1需要的jar包如下:可根据自身情况更换had ...

  9. oracle导出数据到文本文件,Oracle数据直接导出到文本文件的方法

    Oracle数据直接导出到文本文件的方法 利用Oracle中的Spool缓冲池技术可以实现Oracle数据导出到文本文件.1).在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件名:sp ...

最新文章

  1. 计算机及网络应用基础思维导图_计算机基础/算法/面试题 PDF+思维导图下载
  2. github 【第三章】Github综合
  3. vue中的组件 (全局注册和本地注册组件)
  4. 初稿4月1 刚体运动与四元数;9月6日修订复数、2D旋转、三维空间旋转的罗德里格、四元数计算、四元数的3D旋转的双倍覆盖、复合旋转、四元数插值
  5. java如何获取scanner_java – 使用Scanner获取用户输入
  6. 教你用MSChart控件绘制正态分布图形
  7. JDBC实战(一)JDBC概述
  8. 如何把windowsXP系统主题成Windows7风格windowsxp主题包
  9. vegan稀释曲线 基因丰度_基于OTU的稀释曲线(Rarefaction curves) + ggplot2
  10. 20120821-GetDC
  11. 项目经理成功的五个关键因素
  12. pytion基础语句之数据类型
  13. 租房是每个奋斗者的必修课
  14. 二手物品网上交易系统设计与开发 毕业设计毕设参考
  15. Emlog程序百度熊掌号一键集成+自动推送插件
  16. window.onload使用方法
  17. OceanBase-安装
  18. 树莓4派开机动画_树莓派的 100 种玩法 2 - 树莓派 4 更新 EEPROM
  19. 下载安装MyEclipse的步骤
  20. Linux下的softlink和symbolic link(hardlink)

热门文章

  1. 三大技巧教你苹果手机怎么截屏!(最全)
  2. 想进行Android和ios开发需要学会哪些语言
  3. 腾讯优测|优社区干货精选-手Q红包后台设计!
  4. 流媒体协议分析之webrtc之rtp
  5. 如何创建Maven项目?
  6. mac基本操作和关闭安全模和任务监控器
  7. AlphaZero称王!DeepMind AI制霸三大棋类游戏
  8. oracle查看锁表的sql
  9. hadoop原理学习笔记 不含命令
  10. HashMap-----put方法详解