rollback相關知識

棉花糖ONE發表於2009-11-18

1.defferred rollback:在前滾完成後,資料就open,而在open後做恢復
a.smon
b.user process

 

2.fast start parallel rollback

fast start parallel rollback主要是在當機之前進行了大事務,使用並行回滾
加快恢復的進度,smon做為並行程式的排程程式

 

3.intra-transaction recovery

一個大事務有多個並行程式進行恢復

 

4.on-demand rollback:

並行恢復可以加快使用者恢復的進度,但是使用者讀取到的塊包含鎖必須等到smon完成並行
恢復完成後才能做操作,因此引入了on-demand rollback,server process檢測到資料
塊上包含鎖的時候,自行完成恢復,而避免等待smon完成恢復,server process只負責自己
讀取到的塊,而其餘的塊仍然由smon進行

 

5.並行回滾的引數

fast_start_parallel_rollback

false:不使用並行回滾
low:並行回滾的slave process最大數目2*cpu_count
high:並行回滾的slave process最大數目4*cpu_count

 

6.並行回滾的監控

v$fast_start_servers:並行恢復的slave程式的狀態,如果是recovering表示正在做回滾
如果是idle說明不在幹活

v$fast_start_transactions:監控事務的恢復進度,可以預測恢復的時間(死事務無法在這個
檢視中查到需要查x$ktuxe)

 

7.並行回滾可能存在一些問題

並行回滾會加快恢復的進度,但是在並行回滾的過程中會啟動很多的slave程式,會佔用系統的
大量cpu,因此我們可能會禁用並行回滾,來減小對系統效能的影響,但是當並行回滾開始後如果
設定fast_start_parallel_rollback=false,會導致這個操作hold住,要做一些特殊處理

metalink note: 414242.1
       Doc ID: 238507.1
       Doc ID: 144332.1
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8984272/viewspace-619954/,如需轉載,請註明出處,否則將追究法律責任。