Oracle带大字段表记录暴增(LOBSEGMENT)引发的悲剧

事件起因:ORACLE主库进行例行周期性停机后应用相关人员确认数据交换程序时未发现交换异常,

导致该交换程序连接其中一个数据库成功,连接另外一个数据库失败,因此不断的向连接成功的数据库的状态控制表中写入交换异常的数据,而控制表中有CLOB字段记录所有的出错信息。该程序在周末跑了约24H,导致产生120W条垃圾数据,耗费表空间10G以上。

故障定位处理过程:

1、发现监控系统报告USERS表空间99%使用率

我们通过如下语句查USERS表空间有哪些对象

故障定位处理过程:
1、发现监控系统报告USERS表空间99%使用率
我们通过如下语句查USERS表空间有哪些对象
select owner,segment_name,segment_type,bytes from dba_segments a where a.tablespace_name='USERS'
……………………
8   SNDFC   SYS_LOB0000077141C00012$$   LOBSEGMENT  18817744896
17  SNDFC   SYS_LOB0000094212C00003$$   LOBSEGMENT  10583277568
15  SNDFC   SYS_LOB0000092081C00012$$   LOBSEGMENT  2824863744
13  SNDFC   SYS_LOB0000077219C00003$$   LOBSEGMENT  2618294272
12  SNDFC   SYS_LOB0000077219C00008$$   LOBSEGMENT  38797312
24  SNDFC   SYS_IL0000077219C00003$$    LOBINDEX    26214400
19  SNDFC   SYS_IL0000077141C00012$$    LOBINDEX    8388608
18  SNDFC   SYS_LOB0000077029C00008$$   LOBSEGMENT  4194304
14  SNDFC   SYS_LOB0000077192C00007$$   LOBSEGMENT  3145728
23  SNDFC   SYS_IL0000077219C00008$$    LOBINDEX    131072
28  SNDFC   SYS_IL0000094212C00003$$    LOBINDEX    131072
21  SNDFC   SYS_IL0000077227C00008$$    LOBINDEX    65536
22  SNDFC   SYS_IL0000077227C00004$$    LOBINDEX    65536
26  SNDFC   SYS_IL0000092081C00012$$    LOBINDEX    65536
27  SNDFC   SYS_IL0000094212C00008$$    LOBINDEX    65536
25  SNDFC   SYS_IL0000077192C00007$$    LOBINDEX    65536
29  SNDFC   SYS_IL0000077029C00008$$    LOBINDEX    65536
20  SNDFC   SYS_IL0000077087C00005$$    LOBINDEX    65536
9   SNDFC   SYS_LOB0000077087C00005$$   LOBSEGMENT  65536
16  SNDFC   SYS_LOB0000094212C00008$$   LOBSEGMENT  65536
10  SNDFC   SYS_LOB0000077227C00008$$   LOBSEGMENT  65536
11  SNDFC   SYS_LOB0000077227C00004$$   LOBSEGMENT  65536    

很惊奇的发现里面竟然没有数据表,显然SYS_LOB0000077141C00012$$等几个大的对象占据了存储空间。
因为属性是LOBSEGMENT,马上想到是大对象的表发生了大量的数据增长。    

于是动用如下SQL语句,查处大字段对象:
SELECT A.TABLE_NAME,
       A.COLUMN_NAME,
       B.SEGMENT_NAME,
       B.SEGMENT_TYPE,
       B.TABLESPACE_NAME,
       B.BYTES / 1024 / 1024,
       B.BLOCKS,
       B.EXTENTS
  FROM USER_LOBS A, USER_SEGMENTS B
WHERE A.SEGMENT_NAME = B.SEGMENT_NAME
ORDER BY B.BYTES DESC;    

查询结果如下:
TABLE_NAME          COLUMN_NAME SEGMENT_NAME            SEGMENT_TYPE    TABLESPACE_NAME     B.BYTES/1024/1024
SNDFC_EXCHANGE_LOG_INFO     ERROR_TRACE SYS_LOB0000077141C00012$$   LOBSEGMENT  USERS           17946
SNDFC_SEND_CONTROL_HISTORY  CONTENT     SYS_LOB0000094212C00003$$   LOBSEGMENT  USERS           10093
TMP_SNDFC_EXCHANGE_LOG_INFO ERROR_TRACE SYS_LOB0000125221C00012$$   LOBSEGMENT  IN_SNDFC_DATA       5857
SNDFC_EXCHANGE_LOG_HISTORY  ERROR_TRACE SYS_LOB0000092081C00012$$   LOBSEGMENT  USERS           2694
SNDFC_SEND_CONTROL      CONTENT     SYS_LOB0000077219C00003$$   LOBSEGMENT  USERS           2497
SNDFC_SEND_CONTROL      ERR_TRACE   SYS_LOB0000077219C00008$$   LOBSEGMENT  USERS           37
SNDFC_COM_RESOURCE      FILE_BLOB   SYS_LOB0000077029C00008$$   LOBSEGMENT  USERS           4
SNDFC_NOTICE_FILE       DOC_CONTENT SYS_LOB0000077192C00007$$   LOBSEGMENT  USERS           3
BIN$pIfKdb4Sv0LgQBqsDaM1Tg==$0  ERROR_TRACE SYS_LOB0000125215C00012$$   LOBSEGMENT  IN_SNDFC_DATA       0.6875
SNDFC_AUTO_PORT_BARRIER_LOG EXCEPTION_STACK SYS_LOB0000102643C00011$$   LOBSEGMENT  IN_SNDFC_DATA       0.375
TMP_SAVE_TABLEDDL       TABLE_SQL   SYS_LOB0000117696C00002$$   LOBSEGMENT  IN_SNDFC_DATA       0.125
TMP_SAVE_INDEXDDL       INDEX_SQL   SYS_LOB0000117779C00002$$   LOBSEGMENT  IN_SNDFC_DATA       0.0625
SNDFC_SEND_CONTROL_HISTORY  ERR_TRACE   SYS_LOB0000094212C00008$$   LOBSEGMENT  USERS           0.0625
SNDFC_SEND_CONTROL_HIS      CONTENT     SYS_LOB0000077227C00004$$   LOBSEGMENT  USERS           0.0625
SNDFC_SEND_CONTROL_HIS      ERR_TRACE   SYS_LOB0000077227C00008$$   LOBSEGMENT  USERS           0.0625
SNDFC_ENTRY_RESOURCE        FILE_BLOB   SYS_LOB0000077087C00005$$   LOBSEGMENT  USERS           0.0625
BIN$pHyd9j2iK0vgQBqsDaNWjQ==$0  ERROR_TRACE SYS_LOB0000124975C00012$$   LOBSEGMENT  IN_SNDFC_DATA       0.0625    

根据以上查询,显然SNDFC_EXCHANGE_LOG_INFO表上的SYS_LOB0000077141C00012$$对象作用了17G的空间。
正巧应用值班人员反馈某业务的数据交换程序出错,而出错的交换表中正巧有大字段对象,再一确认就是SNDFC_EXCHANGE_LOG_INFO表。
查该表总记录数和事件发生当天记录数:
SQL> Select Count(*) From  sndfc_exchange_log_info t Where to_char(modi_date,'yyyymmdd')='20110529';    

  COUNT(*)
----------
   1492157    

SQL> Select Count(*) From  sndfc_exchange_log_info t;    

  COUNT(*)
----------
   2043454
该表保存一个月的记录,总记录数量204W,但该天的记录数量达到149W,显然存在问题。
怎么处理这149W条记录,必须新建一张临时表sndfc_exchange_log_info_new,然后把需要的记录移动到该表,
把sndfc_exchange_log_info重命名为sndfc_exchange_log_info_old
再TRUNCATE原先的sndfc_exchange_log_info_old表释放空间,然后把sndfc_exchange_log_info_new重命名
为sndfc_exchange_log_info(注意主键和索引等约束)。

其实表数据的删除还是比较容易的,但是最悲剧的是我们的DATAGUARD环境磁盘非常紧缺。 为了移动sndfc_exchange_log_info的数据,必须增大USERS表空间,而增大USERS表空间备库相应目录就会不足, 昨天为了处理备库相应目录不足问题已经颇费周折,在此简单回顾下。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索users
, 表空间
, segment error
65536
3元钱引发的悲剧、一杯豆浆引发的悲剧、早恋引发的悲剧案例、一张毒舌帖引发的悲剧、小数点引发的悲剧,以便于您获取更多的相关知识。

时间: 2024-09-11 17:03:10

Oracle带大字段表记录暴增(LOBSEGMENT)引发的悲剧的相关文章

自增锁引发的悲剧

背景 先描述下故障吧 step0: 环境介绍 1. MySQL5.6.27 2. InnoDB 3. Centos 基本介绍完毕,应该跟大部分公司的实例一样 CREATE TABLE `new_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `x` varchar(200) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5908151 DEFAULT CHARSET=utf

ORACLE SQL调优之统计信息缺失导致的逻辑读暴增

    2016年11月8日,接到广西负责人申告,说决策系统一条SQL平时执行2s左右能执行完,现在却要执行2:30多才能出结果,请求对其做处理.     操作系统:RHEL LINUX 6.4     数据库版本:11.2.0.4     首先,登录服务器查看数据库服务器的状态: [oracle@orcl ~]$ free -m              total       used       free     shared    buffers     cached Mem:    

DNF Bug 引发我网站流量一夜暴增40倍

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前段时间闲来无事,随便折腾点事情出来做,于是乎DLL之家诞生. 网站程序全是我自己写的,里面的DLL也是我慢慢收集起来的.反正也先来无事,慢慢折腾吧.由于是个行业网站,存在回头客的可能很小,就在SEO上花了功夫.遗憾的是本人对SEO不通,只能那样凑合了.两个月下来,流量少的可怜,每天IP少一又少,对它也渐渐没了兴趣. 可是奇迹就在这个时候出现

浅析如何利用百度产品让网站收录暴增

这是笔者用一个月的时间做实验得到的不完善结论,因为仅仅是一个例子,并不能代表全部,但是还是有所参考的价值的.先附上数据图:   我们可以看到收录暴增的时间都是在周四,所以一定要周四的更新,如果忘记了更新,很可能导致快照停留的结果.这是一个小细节,朋友们要注重细节.下面就来说说笔者的操作方法吧: 一.相关性活跃性高的百度贴吧 相关性跟活跃性这两点都要符合的话,就会淘汰掉一些行业的产品,由于笔者操作的网站是刷机类网站,所以活跃性是非常高的.首先笔者发的帖子都是从网站上的刷机包类文章,然后带上该篇的文

使用oracle带参数游标问题

问题描述 使用oracle带参数游标问题 GOODS 商品表 已有数据: CATEGORY表 已有数据 PL/SQL 代码: DECLARE V_GOODS GOODS%ROWTYPE; --存放商品表记录 V_CATEGORYID CHAR(32); --商品类别ID /*根据指定商品类别ID查询出该类别下商品价格最低的商品记录*/ CURSOR CUR_GOODS(CATEGORYID VARCHAR) IS SELECT * FROM (SELECT * FROM GOODS G WHER

ORACLE查询删除重复记录三种方法_oracle

比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用g

提高支付宝芝麻信用分多种方法 芝麻信用分暴增技巧分享

11月27日,来自支付宝名为"校友日记"的"生活圈"截图火爆刷屏.根据支付宝相关页面的介绍,"校园日记"只有女大学生才可以发布动态,不能发布动态的用户可以点赞和打赏,芝麻信用分大于等于750分的用户还可以进行评论. 同时,支付宝也针对白领人群上线了"白领日记"的生活圈,只有白领女士才可以发布动态."你可以在这里聊聊你的职场经历,也可以记录每天的生活瞬间",与校园日记类似,不能发布动态的用户可以点赞.打赏,芝

警惕IE7新漏洞导致的木马病毒暴增

2月20日,瑞星公司发出2009年度第一个红色(一级)安全警报,因为针对IE7新漏洞(MS09-002)的病毒攻击代码在网上公布,导致利用该漏洞的新木马病毒大量出现.由于该类木马病毒的暴增,根据瑞星"云安全"系统的统计,仅在2月19日就截获了高达866万人次的挂马网站攻击,比前一天增加了一倍.从瑞星"恶意网站监测网"上可以看到,利用该漏洞的挂马网站拦截量直线上升,已升为目前危害最严重的漏洞.  上报被攻击记录的电脑都安装了"瑞星全功能安全软件2009&qu

北京楼市租赁需求暴增改善型买家由买转租

楼市"国十条"和"北京楼市新政"出台后,北京房屋租赁市场持续升温,租赁市场低端与中高端需求同时放量,而且空房和中大户型的 成交量明显上升. 目前,由于北京一手房.二手房市场价格高企,"蜗居"正被"蜗租"代替,群租现象严重.据北京中原调查显示,在回龙观.通州等交通便利的区域,群租房比例已经超过20%,一套3居室最多甚至被隔离成10间出租.群租房的高利润使得原来在出租市场比较便宜的大户型,很多成为群租房. 另一值得注意的市场变化是