ORA-1653字典管理表空间

简介: ORA-1653: unable to extend table WACOS.DEPOSITDETAILCHANGLOG by 1107170 in              tablespace WACOS  生产报错 用户建立的一个2G一个8G的数...
ORA-1653: unable to extend table WACOS.DEPOSITDETAILCHANGLOG by 1107170 in              tablespace WACOS 

生产报错

用户建立的一个2G一个8G的数据文件还是报错

解析:

但是下次ORACLE分配的EXTENT是9G用户建立了一个8G 一个2G的数据文件
任何一个数据文件都不能容纳下这个EXTENT 而我建立了一个10G的数据文件所以可以容纳下,EXTENT不能垮数据文件是最小的分配单元

模拟本错误:

SQL>  create table test2
  2    (it int)
  3    storage(initial 20k next 20k pctincrease 20)
  4    tablespace test_dict;
 
Table created
注意这里是字典管理才会出现这样的问题,并且要建立字典管理表空间,必须要SYSTEM表空间也是字典管理方式,LOCAL管理的方式,EXTENT的方式只有2中一种AUTO,一种固定大小,
AUTO分配的时候方式如下:
0-15 extents 每个大小是64K 合计大小 1M 8 8K
16-79 extents 每个大小是1M 合计大小  63M 128 8k--以上两项大小合计 64M
80-199 extents 每个大小是8M 合计大小 960M 1024 8K --以上三项大小合计 1024M=1G
200-?? extents 每个大小是64M  8192 8k块
在表中定义STORAGE是无效的。
 

SQL>  create table test3
  2    (it int)
  3    storage(initial 24k next 1000000k pctincrease 24)
  4    tablespace test_dict;
 
Table created
 
SQL>
SQL>   declare
  2     i number(10);
  3  begin
  4    for i in 1..100000
  5    loop
  6    insert into test3
  7     values(i);
  8    end loop;
  9  end;
 10  /
 
declare
   i number(10);
begin
  for i in 1..100000
  loop
  insert into test3
   values(i);
  end loop;
end;
 
ORA-01653: unable to extend table SYS.TEST3 by 125000 in tablespace TEST_DICT
ORA-06512: at line 7

可以看到当我们想分配超过DATAFILE剩余空间的EXTENT的时候是不能分配,即使此时你看到剩余空间还有很多。注意一个EXTENT不能跨域数据文件。
所以这个时候我们需要
SQL>   alter table  TEST3 STORAGE( NEXT 100k PCTINCREASE 10 );
 
Table altered
 
SQL>
SQL>
SQL> declare
  2     i number(10);
  3  begin
  4    for i in 1..100000
  5    loop
  6    insert into test3
  7     values(i);
  8    end loop;
  9  end;
 10  /

PL/SQL procedure successfully completed
此时就可以了成功,实际上这里最好别设置增长
所以最好如下
alter table  TEST3 STORAGE( NEXT 160k PCTINCREASE 0 );

这个操作指示修改数据字典中的表的定义,对下次分配的EXTENT生效,及下次分配的EXTENT是160K,以后都是160k
相关的定义参考如下:
http://www.blogjava.net/hao446tian/archive/2011/10/28/362218.html

相关文章
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
38 2
|
7月前
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
60 1
|
4月前
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
26 0
|
SQL Oracle 关系型数据库
Oracle 修改表空间数据文件存储位置
一、方法一 1、以表空间ZZH为例,offline 表空间ZZH SQL> alter tablespace ZZH offline; 2、复制数据文件到新的目录 cp /old_path/ZZH01.
2817 0
|
存储 Oracle 关系型数据库
Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看
Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看
217 0
Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看
|
Oracle 关系型数据库 数据库
Oracle 快速创建 N 个表空间数据文件
Oracle 数据库是由无数个表空间组成,表空间是由无数个数据文件组成,数据文件存放在磁盘中。
|
Oracle 关系型数据库 索引
删除Oracle用户及表空间
删除Oracle用户及表空间--转载自 https://blog.csdn.net/sunny05296/article/details/81126548--以sysdba用户登录,查找需要删除的用户conn / as sysdba --查找用户select * from dba_users;se...
2839 0
|
Oracle 关系型数据库 索引
|
SQL Oracle 关系型数据库
数据文件、表空间offline用法及区别
对数据库的脱机包括数据文件的脱机和对表空间的脱机,表空间脱机实际就是表空间对应的所有数据文件脱机。 1.         数据文件OFFLINE 数据文件添加到表空间之后不能够被删除的,没有语法支持这么做,如果想不使用该数据文件,唯一是将数据文件设置为OFFLINE状态。
1497 0

热门文章

最新文章