本文主要是介绍Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、问题: 任务运行失败,查看报错是oracle错误。
2、网上查找资料了解到Oracle 10g 单个表空间数据文件的最大值为:最大数据块 DB_BLOCK_SIZE
SQL> select value from v$parameter where name ='db_block_size';
查看Oracle的 DB_BLOCK_SIZE 结果“8192”
3、本机数据库的数据块大小为8K,算出本机Oracle 单个表空间数据文件的最大值为:
4194304 * 8/1024 = 32768M (32G);
4、打开数据库,查看表空间发现数据文件 xxx.dbf 已经到了31.99G以上,但创建表空间时已设置了无限扩展(初始空间为10G),磁盘空间没满,说明表空间无法进行自动扩展了。
5、方案:修改表空间,增加数据文件
SQL> ALTER TABLESPACE 表空间名称 ADD DATAFILE
'D:\oracle\orcldata\test\新数据文件名称.DBF'
SIZE 10240M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED;
注:
1、表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K、8K、16K、32K、64K等几种大小;
2、ORACLE的物理文件最大只允许4194304(2^22)个数据块;
增加数据文件文件时要注意磁盘空间大小,不能将所有的磁盘空间分配给数据文件,因为日志归档还需要空间,否则会报“ORA-00257: 归档程序错误”。
这篇关于Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!