fast_start_parallel_rollback与v$fast_start_servers和v$fast_start_transactions

oracle并行事务回滚
1,目的:提升smon在instance recovery的回滚速度
2,根据回滚的数据块大小,oracle smon自动决定启用多个个并行度进行回滚

/******相关参数****/
fast_start_parallel_rollback
 1,取值有3种:false,low,high
 2,各值含义:false  ---禁用并行回滚功能
             low    ---并行回滚最大为2*cpu_count
             high   ---并行回滚最大为4*cpu_count
 3,此参数适用于system crash之前未执行完毕的并行dml或并行ddl
 4,决定并行回滚的并行度  
 5,此参数应用前滚完成之后回滚阶段即对于undo block操作
 
 
v$fast_start_servers
  1,查看实行并行事务恢复的恢复子进程的工作状态
  2,子进程状态:idle,recovering
    已应用的undo block个数
    事务id
    子进程的进程id  
   
v$fast_start_transactions
  1,查看恢复的进度
  2,几个重要的列:
           usn  --恢复事务的undo segment number
           state ---恢复事务的状态:即正在恢复,恢复完成,未恢复
           pid   ---恢复事务的进程id
           udnoblocksdone --已应用的undo block个数
           undoblockstotal --总共的undo block个数
           xid  ---事务id
           parentusn --并行dml事务的父事务的undo segment number    
          
          
/***********测试工作*****************/            

------------会话1--------------------
--1,在一个会话大量insert一个表,不提交


-----------会话2-------------------
--2,在另一会话shutdown abort


--3,关库并startup mount

--4,alter database open

-----------会话3------------------
--5,另启一会话,查询v$fast_start_transactions及v$fast_start_servers视图在变化

---刚开始没有是因为oracle rollforward在应用redo,而此操作与undo有关
SQL> select * from v$fast_start_servers;

no rows selected

SQL> select * from v$fast_start_transactions;

no rows selected

SQL> /

no rows selected

SQL> /

no rows selected

SQL> /

no rows selected

SQL> /

no rows selected

SQL> /

no rows selected

----这下有数据了
SQL> select * from v$fast_start_servers;

STATE                  UNDOBLOCKSDONE        PID XID
---------------------- -------------- ---------- ----------------
RECOVERING                       1243         21 06001400F5030000

---并行恢复事务进度
SQL> select * from v$fast_start_transactions;

       USN        SLT        SEQ STATE                            UNDOBLOCKSDONE

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

UNDOBLOCKSTOTAL        PID    CPUTIME  PARENTUSN  PARENTSLT  PARENTSEQ
--------------- ---------- ---------- ---------- ---------- ----------
XID              PXID             RCVSERVERS
---------------- ---------------- ----------
         6         20       1013 RECOVERING                                 2072

           6137         21         10          0          0          0
06001400F5030000 0000000000000000          1


SQL>

--定位上述执行并行恢复的进程
SQL> select addr,pid,spid,program from v$process where pid=21;
 
ADDR                    PID SPID                     PROGRAM
---------------- ---------- ------------------------ ----------------------------------------------------------------
000007FF624D7BC8         21 1132                     ORACLE.EXE (SHAD)

---禁用共享服务器模式
SQL> alter system set dispatchers='';
 
System altered
 
SQL> show parameter dispa
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string     
max_dispatchers                      integer    

---重启后发现shad字样的进程还在,说明此进程和是否共享或专有服务器模式无关
SQL> select addr,pid,spid,program from v$process where program like 'ORACLE.EXE (SHAD)';
 
ADDR                    PID SPID                     PROGRAM
---------------- ---------- ------------------------ ----------------------------------------------------------------
000007FF624D3A08         17 3260                     ORACLE.EXE (SHAD)
000007FF624DBD88         25 7864                     ORACLE.EXE (SHAD)
000007FF624DEED8         28 5216                     ORACLE.EXE (SHAD)


/****经分析,shad进程即用户会话,每连接一个会话,产生一个服务器进程*******/
SQL> select addr,pid,spid,program from v$process where program like 'ORACLE.EXE (SHAD)';
 
ADDR                    PID SPID                     PROGRAM
---------------- ---------- ------------------------ ----------------------------------------------------------------
000007FF624D3A08         17 3260                     ORACLE.EXE (SHAD)
000007FF624DBD88         25 7864                     ORACLE.EXE (SHAD)
000007FF624DEED8         28 5216                     ORACLE.EXE (SHAD)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-758205/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-758205/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值