客户执行过程,其中有长查询(把结果插入到表中,insert into tab1 select * from view_1之类的语句)报错经查看告警日志,告警日志中出现如下错误内容:

Mon Sep 29 12:06:05 2014
ORA-1628: max # extents 32765 reached for rollback segment _SYSSMU465_3766520548$
Mon Sep 29 12:29:45 2014
minact-scn: useg scan erroring out with error e:12751
Mon Sep 29 12:33:45 2014
ORA-1628: max # extents 32765 reached for rollback segment _SYSSMU236_3356150501$
Mon Sep 29 12:34:55 2014
SMON: Parallel transaction recovery tried
错误是rollback segment 的extents 已经达到了32765已经不能再通过增加extents来扩展段大小了,就是上面段_SYSSMU465_3766520548$和段_SYSSMU236_3356150501$的碎片过多。
查看相关数据库信息
1)查看undo管理
SQL> show parameter undo
NAME                      TYPE              VALUE
--------------------    -----------  ------------------
undo_management    string     AUTO
undo_retention         integer    7110
undo_tablespace       string     UNDOTBS11

2)查看undo表空间
SQL> select distinct status,tablespace_name ,to_char(round(sum(bytes)/1024/1024)) sizeM,count(1) from dba_undo_extents group by status,tablespace_name;

STATUS     TABLESPACE_NAME   SIZEM    COUNT(1)
---------  ---------------  -------    --------- 
EXPIRED      UNDOTBS12    55643     17001
UNEXPIRED    UNDOTBS11    893       415
UNEXPIRED    UNDOTBS12    1473     287
EXPIRED      UNDOTBS11    43777     69141

3)查看报错的两个回滚段
SQL> select sum(blocks), count(*), SEGMENT_NAME
  from sys.dba_extents t
 WHERE T.segment_name IN
       ('_SYSSMU465_3766520548$', '_SYSSMU236_3356150501$')
 GROUP BY T.segment_name;
 
SUM(BLOCKS) COUNT(*)      SEGMENT_NAME
----------- ----------    -----------------------
    1528552 32765        _SYSSMU465_3766520548$
     753016 32765        _SYSSMU236_3356150501$

SQL> SELECT T.segment_name,T.BLOCKS,T.EXTENTS FROM DBA_SEGMENTS T WHERE T.segment_name IN ('_SYSSMU465_3766520548$', '_SYSSMU236_3356150501$');

SEGMENT_NAME          BLOCKS    EXTENTS
-------------          ---------    ----------  
_SYSSMU236_3356150501$ 753016      32765
_SYSSMU465_3766520548$ 1528552      32765
SQL> SELECT T.segment_name,T.BLOCKS,T.EXTENTS FROM DBA_SEGMENTS T WHERE T.segment_name IN ('_SYSSMU465_3766520548$', '_SYSSMU236_3356150501$');

SEGMENT_NAME              BLOCKS   EXTENTS
------------------------ ----------   ----------
_SYSSMU236_3356150501$ 753016       32765
_SYSSMU465_3766520548$ 1528552       32765

通过以上信息,外面看出是两个segment的extents 过多,也就是碎片过多导致,我要做的就是减少两个segment的extents数据量解决办法有两种
a 重新建个undo表空间,使用新的undo表空间替换正在使用的,这个操作可以在线做 注意选择业务空闲时段做
b 收缩这个这个两个段,减少extents数量
这里我选择的是后一种
处理步骤如下:
1 查询隐藏参数 _smu_debug_mode记录老的值,收缩后修改会此值
select a.inst_id,
       a.ksppinm "Parameter",
       b.ksppstvl "Session Value",
       c.ksppstvl "Instance Value"
  from x$ksppi a, x$ksppcv b, x$ksppsv c
 where a.indx = b.indx
   and a.indx = c.indx
   and a.inst_id = b.inst_id
   and b.inst_id = c.inst_id
   and a.ksppinm in ('_smu_debug_mode');
我的系统 _smu_debug_mode的值是0 
2  alter system set "_smu_debug_mode"=4 scope=memory ; --0x00000004    Allow RBU operations to be executed in SMU mode
3  收缩两个segment
SQL> alter rollback segment "_SYSSMU465_3766520548$" shrink;

Rollback segment altered.
SQL> alter rollback segment "_SYSSMU236_3356150501$" shrink;
Rollback segment altered.
4 修改为之前的值,由于系统是一体机,需要设置为0,否则storage index不能使用
SQL> alter system set "_smu_debug_mode"=0 scope=memory ;
System altered.
5 查看收缩后两个segment的extents 数量
SQL> SELECT T.segment_name,T.BLOCKS,T.EXTENTS FROM DBA_SEGMENTS T WHERE T.segment_name IN ('_SYSSMU465_3766520548$', '_SYSSMU236_3356150501$');
SEGMENT_NAME                 BLOCKS EXTENTS
------------------------------  ---------- ----------
_SYSSMU236_3356150501$      232            29
_SYSSMU465_3766520548$      760            16
客户再次执行过程问题解决。 
总结
出现此问题的原因主要是 事务过大占用过多的undo segment 导致segment 扩展到一定的extents后不能再扩展
可以通过优化慢的SQL语句和减小事务来避免这样的问题

ORA-1628: max # extents 32765 reached for rollback segment 错误处理相关推荐

  1. oracle的ora01504,Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found

    接上文<Oracle Undo tablespace恢复(无备份)> 1.在创建新的undo tablesapce "undotbs2"后,删除旧的undo table ...

  2. 了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT

    SMON对于Undo(Rollback)segment的日常管理还不止于OFFLINE UNDO SEGMENT 转载于:https://blog.51cto.com/maclean/1278486

  3. ORA-01555: snapshot too old: rollback segment number with name too smal

    从客户那儿报来个问题,说是日志中显示,在执行一个sql时抛出 error info 如下: Java.sql.SQLException: ORA-01555: snapshot too old: ro ...

  4. linux ora 27125,ORA-27125 unable to create shared memory segment | 信春哥,系统稳,闭眼上线不回滚!...

    今天搭建ORACLE 10.2.0.5.6  for LINUX X86_64测试环境,在DBCA建库时遇到ORA-27125:unable to create shared memory segme ...

  5. oracle ora 31644,dmp文件损坏导致ORA-39014 ORA-39029 ORA-31693错误

    不知道这样写标题对不对,本来是通过FTP将dmp文件从A机器上传到B机器再导入,因为数据库有几十个G,就采用了并行导出,分成了四个文件.在导入将近结结束时出现了以下错误: ORA-39014: 一个或 ...

  6. 某客户回滚段达到32765处理

    某客户数据库的版本为11.2.0.3,如下所示: SQL> select * from v$version; BANNER Oracle Database 11g Enterprise Edit ...

  7. Oracle ORA-1628错误的定位分析(2012/1/8)

    在Oracle 10.2.0.1.0中,只要设置了undo表空间自动管理,不管有没开启自动扩展,不管undo_retention设置为多少,都会启用 Automatic Tuning of undor ...

  8. Oracle报错及解决办法

    报错1: ORA-30036:unable to extend segment by 8 in undo tablespace 'UNDOTBS1' 报错2: ORA-01756:quoted str ...

  9. 【Oracle】关于LOBs

    Master Note - RDBMS Large Objects (LOBs) (Doc ID 1268771.1) 如何评估LOBs占用空间大小? (1) col segment_name for ...

最新文章

  1. 通过计算TCO体现固态盘的真正价值
  2. java和C++有什么异同
  3. 实现树状结构_钢结构设计 | “生命之树”景观案例赏析
  4. css为什么要用浮动_CSS问题和解决
  5. 网络规划设计师水平考试备考资料(11.分析总结)
  6. 阿里云国际版CDN 安全保护指南:管理篡改、攻击和内容
  7. 信用卡诈骗检测(经过测试)
  8. HijackThis使用详解
  9. 水利水电课程指导之建筑制图基础_第一章1.3 平面图形的尺寸标注
  10. SysInfoTools MS SQL Transaction Log Recovery 22.0
  11. 人工智能基础(高中版)教材补充和资源分享之番外篇 Cozmo+Python+ROS+AI
  12. 前端之JS篇(一)——计算机基础JS简介
  13. 手机获取验证码的功能
  14. 游戏推广的原理,利用空间,产品的分类
  15. 分享给新手的18条冲压生产经验
  16. USB入门系列之四 —— USB的线缆以及插头、插座
  17. BUAAOJ(散题) 135 老和尚的真言
  18. 计算机专业进农商行还是电信,农商行好进嘛?为什么那么多人选择报考农商行?...
  19. kindeditor批量上传设置_淘宝详情装修批量投放怎么做?具体怎么操作?
  20. 易基因|MeRIP-seq揭示m6A RNA甲基化通过调控组蛋白泛素化来促进癌症生长和进展:Cancer Res

热门文章

  1. SPA项目开发之首页导航+左侧菜单
  2. Redis源码学习(13),t_set.c 学习(一),sadd,srem 命令学习
  3. 美团多线受挫 估值恐已缩水
  4. 源支付3.1版本全开源版+店员监控软件+手机监控APP源码
  5. java随机生成车牌号函数
  6. 不只卖电脑的联想,还有什么“新看点”?
  7. Map集合及三层嵌套
  8. JAV spi 和扩展方式
  9. 视频广告场景识别方案总结
  10. 三层架构,网关冗余(网关在汇聚层的情况下)