Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1172050
  • 博文数量: 178
  • 博客积分: 2776
  • 博客等级: 少校
  • 技术积分: 2809
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-22 15:36
文章分类

全部博文(178)

文章存档

2014年(3)

2013年(66)

2012年(109)

分类: Oracle

2012-12-13 10:34:00

Oracle dbaSMON的作用还包括清理死事务:Recover Dead transaction。当服务进程在提交事务(commit)前就意外终止的话会形成死事务(dead transaction)PMON进程负责轮询Oracle进程,找出这类意外终止的死进程(dead process),通知SMON将与该dead process相关的dead transaction回滚清理,并且PMON还负责恢复dead process原本持有的锁和latch

 

我们来具体了解dead transaction的恢复过程:

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

PL/SQL Release 10.2.0.4.0 - Production

CORE    10.2.0.4.0      Production

TNS for Linux: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 - Production

 

SQL> select  * from global_name;

 

GLOBAL_NAME

--------------------------------------------------------------------------------

 

SQL>alter system set fast_start_parallel_rollback=false;

System altered.

 

设置1050010046事件以跟踪SMON进程的行为

 

SQL> alter system set events '10500 trace name context forever,level 8';

System altered.

 

SQL> oradebug setospid 4424

Oracle pid: 8, Unix process pid: 4424, image: oracle@rh2.oracle.com (SMON)

 

SQL> oradebug event 10046 trace name context forever,level 8;

Statement processed.

 

在一个新的terminal中执行大批量的删除语句,在执行一段时间后使用操作系统命令将执行该删除操作的

服务进程kill掉,模拟一个大的dead transaction的场景

 

SQL> delete large_rb;

delete large_rb

 

[oracle@rh2 bdump]$ kill -9 4535

 

等待几秒后pmon进程会找出dead process:

[claim lock for dead process][lp 0x7000003c70ceff0][p 0x7000003ca63dad8.1290666][hist x9a514951]

 

x$ktube内部视图中出现ktuxecfl(Transaction flags)标记为DEAD的记录:

 

SQL> select sum(distinct(ktuxesiz)) from x$ktuxe where ktuxecfl = 'DEAD';

 

SUM(DISTINCT(KTUXESIZ))

-----------------------

                  29386

 

SQL> /

 

SUM(DISTINCT(KTUXESIZ))

-----------------------

                  28816

 

以上KTUXESIZ代表事务所使用的undo块总数(number of undo blocks used by the transaction)

 

==================smon trace content==================

阅读(1254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~