事务在回滚的时候,drop掉相关的表。事务会停止回滚,相关的undo段会自动offline

最近发现测试环境中oracle的undo segment,大量的自动offline。排查了一下

结论:
在回滚的时候,如果将表做了drop table <> purge;操作。回滚会自动结束。涉及的undo segments会自动offline(不会立即offline);
测试过程中,offline中的undo回滚中的区,可以被online的undo segments使用。

测试。
1.将undo表空间使用完
SQL> insert into emp select * from emp;

14 rows created.

SQL> /

………………

SQL> /
insert into emp select * from emp
*
ERROR at line 1:
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'

SQL>
2.kill会话,自动回滚
3.另起一个会话,产生大量的事务,消耗undo。发现offline中的extent被使用

SQL> select SEGMENT_NAME,EXTENT_ID,BYTES from dba_extents where segment_name in (select SEGMENT_NAME from dba_rollback_segs where STATUS='OFFLINE')

SEGMENT_NAME EXTENT_ID BYTES
--------------------------------------------------------------------------------- ---------- ----------
_SYSSMU12_3580111010$ 0 65536
_SYSSMU12_3580111010$ 1 65536
_SYSSMU12_3580111010$ 2 65536
_SYSSMU13_3093638253$ 0 65536
_SYSSMU13_3093638253$ 1 65536
_SYSSMU13_3093638253$ 2 65536
_SYSSMU13_3093638253$ 3 65536
_SYSSMU13_3093638253$ 4 65536
_SYSSMU13_3093638253$ 5 65536
_SYSSMU13_3093638253$ 6 65536
_SYSSMU13_3093638253$ 7 65536

SEGMENT_NAME EXTENT_ID BYTES
--------------------------------------------------------------------------------- ---------- ----------
_SYSSMU14_3308680137$ 0 65536
_SYSSMU14_3308680137$ 1 65536
_SYSSMU14_3308680137$ 2 65536
_SYSSMU15_4173493555$ 0 65536
_SYSSMU15_4173493555$ 1 65536
_SYSSMU16_3198972214$ 0 65536
_SYSSMU16_3198972214$ 1 65536
_SYSSMU17_3974766379$ 0 65536
_SYSSMU17_3974766379$ 1 65536
_SYSSMU17_3974766379$ 2 65536
_SYSSMU17_3974766379$ 3 65536

SEGMENT_NAME EXTENT_ID BYTES
--------------------------------------------------------------------------------- ---------- ----------
_SYSSMU17_3974766379$ 4 65536
_SYSSMU17_3974766379$ 5 65536
_SYSSMU18_289737016$ 0 65536
_SYSSMU18_289737016$ 1 65536

26 rows selected.

SQL> /

SEGMENT_NAME EXTENT_ID BYTES
--------------------------------------------------------------------------------- ---------- ----------
_SYSSMU12_3580111010$ 0 65536
_SYSSMU12_3580111010$ 1 65536
_SYSSMU13_3093638253$ 0 65536
_SYSSMU13_3093638253$ 1 65536
_SYSSMU14_3308680137$ 0 65536
_SYSSMU14_3308680137$ 1 65536
_SYSSMU15_4173493555$ 0 65536
_SYSSMU15_4173493555$ 1 65536
_SYSSMU16_3198972214$ 0 65536
_SYSSMU16_3198972214$ 1 65536
_SYSSMU17_3974766379$ 0 65536

SEGMENT_NAME EXTENT_ID BYTES
--------------------------------------------------------------------------------- ---------- ----------
_SYSSMU17_3974766379$ 1 65536
_SYSSMU18_289737016$ 0 65536
_SYSSMU18_289737016$ 1 65536

14 rows selected.

SQL>

猜你喜欢

转载自www.cnblogs.com/erwadba/p/9167003.html