欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ORA-01653: 表xxxxx无法通过 8192 (在表空间 tsp_data 中) 扩展

程序员文章站 2022-03-10 16:12:10
今遇到问题: 查看表空间,发现表空间大小已达到32G,但创建表空间时已设置了无限扩展(初始空间为1G),磁盘空间没满,说明表空间无法进行自动扩展了。 问题原因: 查找资料了解到Oracle单个表空间数据文件的最大值为: 最大数据块 * DB_BLOCK_SIZE 查看Oracle的 DB_BLOCK ......

今遇到问题:

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