Oracle管理中的2GB问题_第1页
Oracle管理中的2GB问题_第2页
Oracle管理中的2GB问题_第3页
Oracle管理中的2GB问题_第4页
Oracle管理中的2GB问题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OracleOracle管理中的管理中的2GB2GB问题问题 本文描述 2GB 的问题 它阐述了为什么2GB 是一个关键数字并且给出了如果 文件大于2GB 时一些你需要知道的东西 本文主要阐述在Unix 系统上的2GB 问题 讨论的主题 为什么2GB 是一个特别的数字 为什么使用2GB 的数据文件 Export 和2GB SQL Loader 和2GB ORACLE 和其他2GB 问题 其他 为什么为什么2GB2GB 是一个特殊的数字是一个特殊的数字 许多CPU 和系统调用接口 API 使用32 位的字 word 这个32 位就在许多 系统上带来了限制 在许多情况下 标准文件操作的API 使用32 位有符号word 来 指定文件大小和在文件中的相对位置 有符号的32 位word 使用最高位为符号位 因此31 位所能表示的最大值就是0 x7FFFFFFF 2147483647 比2GB 小1 2GB 或大于2GB 的文件统称 大文件 所以在32 位环境中就会遇到许多问 题 为了克服这些问题 现在的操作系统大多使用64 位定义了新的系统调用 新 版本的ORACLE使用了这些接口但是在处理 大文件 时还是有许多问题是需要注意 的 另一个比较特殊的数字是4GB 0 xFFFFFFFF 作为无符号字所能表示的最大值就 是4294967295 比4GB 少1 加1 则造成低32 位变为0 x00000000 和一个进位 在 32 位体系中这个进位会被丢掉 因此4GB 是另一个可能会发生问题的数字 32 位影响着ORACLE 的许多方面 为了使用大文件 你需要 1 操作系统支持2GB 的文件或裸设备 2 操作系统具有支持操作2GB 文件IO 的API 3 ORACLE 使用这些API 这对这对ORACLEORACLE 意味着什么 意味着什么 现今 大多数平台支持大文件并且有64 位的API 从ORACLE 7 3 开始通常就 使用这些API 了 但是这依赖于平台 操作系统和ORACLE 的版本 在多数情况下 大文件支持是可行的 但在某些情况下需要一个专门的patch 在本文写作时 在 ORACLE 中还有一些工具没有使用这些新的64 位API 比如export SQL LOADER 当然这是依赖于平台的具体操作系统数据库版本的 为什么使用为什么使用2GB 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 但在裸设备上可能会更大 2GB2GB 的相关的相关ORACLEORACLE 错误 错误 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 2Gb2Gb ExportExport FileFile SizeSize 本文写作时大多数的export 版本使用默认的文件处理API 来创建export 文件 这意味着在相当多的平台上 不能导出大于2GB 的文件 以下是一些克服的方法 通常可以导出大于2GB 的文件到裸设备上 在Unix 上可以使用命名管道来压缩 分割文件可以导出到磁盘上 ORACLE8i 允许导出到多个文件而不是一个大的文件 译 方法可参考文章结尾处补充 其他的其他的2GB2GB 导出问题导出问题 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 LoaderSQL Loader andand 2Gb2Gb 典型的 当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 文件大小 ORACLEORACLE 和其他和其他2GB2GB 问题问题 下面列出了其他的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 补充 补充 export 大文件可以采取的方法 1 裸设备 比如直接倒出到 dev rlvtest 等 2 命名管道 Unix 下 mknod tmp imp pipe p compress export dmp Z exp file tmp exp pipe userid xxx xxx tables mknod tmp imp pipe p uncompress tmp imp pipe imp file tmp imp pipe us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论