undo的extend和steal機制-創(chuàng)新互聯(lián)

undo的段頭存在著一個SEQ值,當回滾段使用從A區(qū)到B區(qū)的時候,相對應的SEQ值便會加1,例如A區(qū)的SEQ值是6,則undo段使用到B區(qū)的時候變會成為7。

創(chuàng)新互聯(lián)于2013年開始,先為城東等服務建站,城東等地企業(yè),進行企業(yè)商務咨詢服務。為城東企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

但是undo空間是循環(huán)使用的,當該undo段中的事務提交過了之后,相對應的塊就可以被覆蓋掉。如下:

undo的extend和steal機制

當3號區(qū)使用完全之后,oracle將會重新使用1號區(qū),并將其SEQ值加一,改為7,以此類推,新1號區(qū)使用完了之后,2號區(qū)也會被覆蓋,SEQ值改為8.

但是undo空間是循環(huán)使用的,當該undo段中的事務提交過了之后,相對應的塊就可以被覆蓋掉。如下:

undo的extend和steal機制

當3號區(qū)使用完全之后,oracle將會重新使用1號區(qū),并將其SEQ值加一,改為7,以此類推,新1號區(qū)使用完了之后,2號區(qū)也會被覆蓋,SEQ值改為8.

undo塊覆蓋的原則是即將被覆蓋的undo塊必須小于前一個已經(jīng)覆蓋過的SEQ值。如果如下圖,

undo的extend和steal機制

2號區(qū)一直有一個事務占住未被釋放,等到undo再次重用到1號區(qū)的時候,1號區(qū)的值變?yōu)?0。這個時候由于2號區(qū)的事務一直未被釋放,oracle無法對2號區(qū)進行覆蓋,也不能跳過2號區(qū)去重用3號區(qū)的undo塊。這個時候oracle便會進行一次extend,在一號區(qū)和二號區(qū)中間新增一個undo區(qū),我們稱為新2號區(qū)。然后oracle便會在新2號區(qū)進行覆蓋,在新2號區(qū)覆蓋完成之后,如果老2號區(qū)還未提交事務,oracle便會再次申請extend,直到事務提交。這樣會造成undo段短時間內(nèi)消耗大量空間。如下:

undo的extend和steal機制

如果該2號區(qū)在undo段的開頭部分,這樣會導致undo段大部分空間不能重用,所以oracle增加了一種steal機制。

首先確定的是undo偷竊機制的基本單位是區(qū)。例如發(fā)生上述情況:

undo的extend和steal機制

原二號區(qū):即三號區(qū)一直有事務在占用部分塊,導致其無法被覆蓋。那oracle的undo偷竊機制會啟到作用,其他undo段將會把4號區(qū)偷走,此undo段便會剩下三個區(qū),然后在新2號區(qū)后進行extend。

undo的extend和steal機制

但是如果三號區(qū)的事務一直不提交,oracle會一直extend,導致3號區(qū)之前的區(qū)一直無法被重用,undo段一直在增加,可能會報錯undo空間無法擴展。所以事務無論大小,還是要盡快提交。

網(wǎng)站標題:undo的extend和steal機制-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article4/cdioie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站設計公司、網(wǎng)站制作、網(wǎng)站排名虛擬主機、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設