ORA-16530 invalid buffer or length Cause: A NULL buffer or a length of zero is specified. Action: Correct command parameters and retry.
ORA-01653 unable to extend table string.string by string in tablespace stringCause: Failed to allocate an extent for table segment in tablespace.Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the tablespace indicated.空间不够 那2.4G的数据分开来导 加数据文件
Cause: A NULL buffer or a length of zero is specified.
Action: Correct command parameters and retry.
加数据文件
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 相结合,倒出生成多个文件.