回滚段问题
数据库版本10.2.0.4online回滚段太多了,感觉十分奇怪。
SQL> select status,count(*) from dba_rollback_segs group by status;
STATUS COUNT(*)
---------------- ----------
ONLINE 614
OFFLINE 10
SQL> select count(*) from v$session;
COUNT(*)
----------
43
SQL> select count(*) from v$transaction;
COUNT(*)
----------
0
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
=============================================
dba_rollback_segs的个数只增不减。
用什么手段可以查出原因。现在没方向了。 日志当中没有报错,而且还是新的库 _undo_autotune 是多少~ SELECT status,
Count(* ),
Sum(blocks) * 8096 / 1024 / 1024
FROM dba_undo_extents
GROUP BY status;
harryzhang 发表于 2013-12-3 12:38 static/image/common/back.gif
_undo_autotune 是多少~
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
DESCRIB
--------------------------------------------------------------------------------
_undo_autotune
TRUE
enable auto tuning of undo_retention
harryzhang 发表于 2013-12-3 12:39 static/image/common/back.gif
SELECT status,
Count(* ),
Sum(blocks) * 8096 / 1024 / 1024
SQL> /
STATUS COUNT(*) SUM(BLOCKS)*8096/1024/1024
--------- ---------- --------------------------
UNEXPIRED 109 8.58569336
EXPIRED 4281 574.685547
ACTIVE 11 .679443359
SQL> select count(*),status from dba_rollback_segs group by status;
COUNT(*) STATUS
---------- ----------------
768 ONLINE
10 OFFLINE
http://www.askmaclean.com/archives/automatic-undo-management-common-analysis-diagnostic-scripts.html 了解你所不知道的SMON功能(十一):OFFLINE UNDO SEGMENT http://www.askmaclean.com/archives/smon-offline-undo-segment.html
不offline 很正常 dla001 发表于 2013-12-3 13:14 static/image/common/back.gif
http://www.askmaclean.com/archives/automatic-undo-management-common-analysis-diagnostic-scripts.html
查过了,问题还是那样,为什么回滚段个数在不断上升,而且也没有自动清理掉。
我大胆猜测一下,会不会有个会话一直连着,没有关闭,而且不断有事务从这个会话中并发发起呢? Liu Maclean(刘相兵 发表于 2013-12-3 14:07 static/image/common/back.gif
了解你所不知道的SMON功能(十一):OFFLINE UNDO SEGMENT http://www.askmaclean.com/archives/smon-offline- ...
看了一下,收获甚多,先谢谢。
回滚段个数在不断增加,到达32000多个时,会不会触发一个BUG导致数据库宕,这个是我比较担心的。
我之前10.2.0.4的版本就碰到了回滚段过多,然后宕机,打补丁重建库的操作。没想到现在仍然如此,现象复现。
我想可能要从应用上分析了。
对于数据库本身来讲,是怎样一个场景致使回滚段不断增加的。
process、session、transaction、DML SQL在增加时的状态又是怎样的?
基础比较差,回家准备查资料了。 rollback_segments 可以控制回滚段数量,但是这个需要慎重,可能导致回滚段不够,从而出现事务终止 Liu Maclean(刘相兵 发表于 2013-12-3 14:07 static/image/common/back.gif
了解你所不知道的SMON功能(十一):OFFLINE UNDO SEGMENT http://www.askmaclean.com/archives/smon-offline- ...
刘大,现在查出来是CDC的PURGE()引起的回滚段个数的增长,5分钟一次,但是SMON没有自己清理, 试试 _smu_debug_mode=33554432 结下帖子,最终原因定位为dbms_cdc_publish.purge()中采用了并发处理机制,但是这个处理机制在这个数据库版本中存在BUG,使用并行度超过1时会重新申请回滚段,而不会去复用之前可利用的回滚段空间。最终导致每次执行函数,就会无限制增加会回滚段。
处理办法有两个:
1.执行前关闭并行度,设置参数并行参数为1
2.定期维护UNDO,重建或者手工管理,这个方法是我不太推荐的。
页:
[1]