Oracle表空间满了之如何扩容

本文介绍了在预发布环境遇到的Oracle数据库表空间满的问题,通过查询DBA_TABLESPACES和DBA_DATA_FILES找出问题所在。由于DBF文件已达到32GB上限,需要进行扩容。解决方案是添加新的数据文件,并设置自动扩展。同时,讨论了Oracle表空间数据文件大小限制,指出最大值与DB_BLOCK_SIZE相关,并列举了不同DB_BLOCK_SIZE下的最大表空间容量。
摘要由CSDN通过智能技术生成

背景

预发布环境压力测试的时候,后台报错:
ORA-01654: 索引 TSA.TS_TIME_0_2020_09 无法通过 1024 (在表空间 TSA 中) 扩展
在这里插入图片描述

定位问题

无法拓展,可猜测数据库表空间满了,导致无法继续存储数据

查看数据量:
在这里插入图片描述
查看dbf文件位置和大小:

SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS 
FROM DBA_TABLESPACES T,DBA_DATA_FILES D 
WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME 
ORDER BY TABLESPACE_NAME,FILE_NAME; 

在这里插入图片描述
在这里插入图片描述

由图可知,此表空间dbf文件已经达到32G上限(限制跟DB_BLOCK_SIZE有关,文末介绍)。因此需要扩容。

扩容

'/usr/oracle/oradata/tsa/‘ 目录新建 tsa2.dbf 文件用于存储新的数据。
初始大小1024M,达到上限自动扩容50M

ALTER TABLESPACE "TSA" ADD DATAFILE '/usr/oracle/oradata/tsa/tsa2.dbf' 
SIZE 1024M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;

在这里插入图片描述

Oracle表空间数据文件大小限制

表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大表空间为:16384M
8K最大表空间为:32768M
16k最大表空间为:65536M
32K最大表空间为:131072M
64k最大表空间为:262144M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值