Oracle表空间快要用满,不自增怎么办!

  • 今天有客户询问,为什么这个XX表空间就剩余8个G了,但是没有自动增长呢?数据库是不是没有开自动扩展?

在这里插入图片描述

  • 看到用户的数据库剩余8个G的可用空间,使用率已经达到了99.73,第一反应是不是这个表空间的数据文件都用到32G用满了(因为Oracle普通表空间的单个数据文件最大为32GB,如果是大文件表空间数据文件理论最大为32TB),要赶紧上去给加数据文件了。
set line 200
col FILE_NAME for a60
col TABLESPACE_NAME for a20
select file_id,FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024/1024,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='XXX';
  • 通过上面的sql语句在dba_data_files里面查看了这个表空间的数据文件情况,通过AUTOEXTENSIBLE
    列可以看到数据文件都开启了自动扩展,BYTES列里面也可以看出好多文件并没有使用到32G,所以目前的情况下只需要去确认asm磁盘是否有足够的空间供数据文件扩展就可以了,表空间不会存在没有开启自动扩展的情况。

在这里插入图片描述

  • 那为什么客户会说没有开自动扩展呢?客户之所以这么说是因为他自己连续好几天都在监控改表空间,之看到表空间使用量不断上升,但是表空间可用量却一直没有变化,眼看使用率快接近100%还是没有丝毫变化才会询问是否没有开启表空间的自动扩展呢。

  • 实际上,即使数据文件已经开启了自动扩展功能,Oracle并不会提前扩展数据文件,而是优先利用已有的空闲空间。只有在执行插入、更新或创建对象等需要更多空间的操作时,Oracle才会尝试进行自动扩展。

  • 因此,尽管客户可能会认为数据文件没有开启自动扩展,但实际上Oracle的自动增长功能确实是启用的,只是在数据文件仍有剩余空间的情况下并不会立即触发扩展。

  • 最后为了使客户放心,又为该表空间添加了10个20G的数据文件,并开启自动扩展,每次扩展大小为10M,除了新加数据文件外还可以resize原先的数据文件来增加表空间大小(这里需要注意数据库允许的最大数据文件数量是多少,要对其进行合理的规划)

添加数据文件方法:
alter tablespace XXX add datafile '+DATA' size 20G  autoextend on next size 10m;


resize修改数据文件大小方法:
alter database datafile '+DATA/XXX/DATAFILE/XXXX.1029.117872' resize 30G;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值