ORA-01653: 表xxxxx无法通过 8192 (在表空间 tsp_data 中) 扩展
今遇到问题:
查看表空间,发现表空间大小已达到32g,但创建表空间时已设置了无限扩展(初始空间为1g),磁盘空间没满,说明表空间无法进行自动扩展了。
问题原因:
查找资料了解到oracle单个表空间数据文件的最大值为:
最大数据块 * db_block_size
查看oracle的 db_block_size
select value from v$parameter where name ='db_block_size';
value=8192=8k
本机数据库的数据块大小为8k,算出本机oracle 单个表空间数据文件的最大值为:
4194304 * 8/1024 = 32768m (32g);
所以既使创建表空间时设置了 autoextend on maxsize unlimited,其最大空间也是不会超过32g。
注:
1、表空间数据文件容量与db_block_size有关,在初始建库时,db_block_size要根据实际需要,设置为 4k、8k、16k、32k、64k等几种大小;
2、oracle的物理文件最大只允许4194304(2^22)个数据块;
解决方法:
修改表空间,增加数据文件。设置新增的数据文件大小为1g,自增长10m(可根据情况自行设置)
alter tablespace tsp_emr add datafile
'd:\oracle\oradata\jh\20200321_data01.dbf'
size 1024m autoextend on next 10m maxsize unlimited;
增加数据文件文件时要注意磁盘空间大小,不能将所有的磁盘空间分配给数据文件,因为日志归档还需要空间,否则会报“ora-00257: 归档程序错误”。
————————————————
版权声明:本文为csdn博主「shileimohan」的原创文章,遵循 cc 4.0 by-sa 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shileimohan/article/details/84989916