ORACLE 空间不足
我今天在原有的实例下建立了一个表空间,但是我导入数据的时候报错,错误代码1658,空间不够?表空间的大小绝对够了,是不是因为实例的大小有限制还是?请高手指教,复制党勿扰...
我今天在原有的实例下建立了一个表空间,但是我导入数据的时候报错,错误代码1658,空间不够?表空间的大小绝对够了,是不是因为实例的大小有限制还是?请高手指教,复制党勿扰
展开
3个回答
展开全部
对新手来说,这种报错还是经常遇到的o(∩_∩)o 。如果你确认了你的表空间足够大,那么,我认为多半就是你在做imp时建表的问题。这个问题怎么产生的呢?可能是:
1、你在exp时使用了compress=y参数,这个参数乍一看是压缩的意思,实际上它的作用是将建表时的initial值增大到该表在原数据库中占用的空间大小。也就是说如果原表水线比较高那直接导入数据的话基本上这个错误是无法避免的。
2、你原表的initail值本来设置较大,在新数据库中虽然有空间但是这些空间并不连续。数据库找不到合适的连续块进行分配。
出现以上问题最快的解决办法就是自己先在新库中手工建立需要导入的对象,然后再进行数据导入就行。(别忘了使用 ignore=y 参数^^)
当然了还有一种比较特殊的情况,就是你的每一条数据的数据量都比较大,直接超出了一个数据块的大小,那么就会发生“行链接”的情况,这样你导入的数据的大小将会远超你看到的dmp包的大小,也会导致1658的错误发生。
1、你在exp时使用了compress=y参数,这个参数乍一看是压缩的意思,实际上它的作用是将建表时的initial值增大到该表在原数据库中占用的空间大小。也就是说如果原表水线比较高那直接导入数据的话基本上这个错误是无法避免的。
2、你原表的initail值本来设置较大,在新数据库中虽然有空间但是这些空间并不连续。数据库找不到合适的连续块进行分配。
出现以上问题最快的解决办法就是自己先在新库中手工建立需要导入的对象,然后再进行数据导入就行。(别忘了使用 ignore=y 参数^^)
当然了还有一种比较特殊的情况,就是你的每一条数据的数据量都比较大,直接超出了一个数据块的大小,那么就会发生“行链接”的情况,这样你导入的数据的大小将会远超你看到的dmp包的大小,也会导致1658的错误发生。
展开全部
[oracle@test~]$ oerr ora 1658
01658, 00000, "unable to create INITIAL extent for segment in tablespace %s"
// *Cause: Failed to find sufficient contiguous space to allocate INITIAL
// extent for segment being created.
// *Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the
// tablespace or retry with a smaller value for INITIAL
[oracle@test ~]$
说的很明白了,加数据文件扩展表空间就好了,如果你磁盘空间没问题的话,磁盘 空间有问题就挪一个数据文件到比较空闲的空间然后做个软连接
01658, 00000, "unable to create INITIAL extent for segment in tablespace %s"
// *Cause: Failed to find sufficient contiguous space to allocate INITIAL
// extent for segment being created.
// *Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the
// tablespace or retry with a smaller value for INITIAL
[oracle@test ~]$
说的很明白了,加数据文件扩展表空间就好了,如果你磁盘空间没问题的话,磁盘 空间有问题就挪一个数据文件到比较空闲的空间然后做个软连接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议楼主把表空间加大点再试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询