Oracle中奇怪的Segment命名

  事情的起因是缘于昨天半夜的一次问题处理,当时报警表空间将满,马上查找了一下该表空间下面的segment空间使用情况:

SQL> select segment_name, sum(bytes) / 1048576
  2    from dba_segments
  3   where tablespace_name = 'TEST'
  4   group by segment_name
  5   order by 2;

  发现有这么一个奇怪的以数字命名的segment占用了200多G的空间:

SEGMENT_NAME                   SUM(BYTES)/1048576
------------------------------ ------------------
299.20715                                  202681

  这个以前也碰到过,不过没啥留意,只知道是在装载数据时生成的临时段,比如在create table t as select * from t1的过程中,会生产类似一个数字的SEGMENT。

  在GOOGLE到eygle的文章:Oracle中独一无二的Cache对象,才知道这个段名的含义:299.10715,299是数据文件号,10715是该段在这个数据文件中的块号。

 

  知道了原理后并不能解决问题,v$access无法找出是哪个SID在访问这个OBJECT,只好把v$sqltext中以create和insert开头的SQL语句都找出来,发现只有零星的几条SQL语句在CREATE和INSERT,这些应用的表平时都不足以增大到这么大的空间。于是只好另外定位原因,查到有sql loader在装载数据,看来只能这个东西出问题了,备份好装载脚本后,KILL掉SQL LOADER的进程,果然这个SEGMENT没了,空间也释放出来了。今天才知道由于应用的原因,生成的文本文件由原来的几十G增长到将近1个T,导致平时正常的装载延长到大半夜,空间呈现了数量级的增长。

转自: http://hi.baidu.com/edeed/blog/item/087133fa71d5a81aa8d311c3.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值