freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracleblogstudy(編輯修改稿)

2025-07-23 12:14 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 change from v$datafile3)、啟動(dòng)SCNOracle把這個(gè)檢查點(diǎn)的SCN存儲(chǔ)在每個(gè)數(shù)據(jù)文件的文件頭中,這個(gè)值稱為啟動(dòng)SCN,因?yàn)樗糜谠跀?shù)據(jù)庫(kù)實(shí)例啟動(dòng)時(shí),檢查是否需要執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)。select name,checkpoint_change from v$datafile_header4)、終止SCN每個(gè)數(shù)據(jù)文件的終止SCN都存儲(chǔ)在控制文件中。select name,last_change from v$datafile在正常的數(shù)據(jù)庫(kù)操作過程中,所有正處于聯(lián)機(jī)讀寫模式下的數(shù)據(jù)文件的終止SCN都為null.5)、在數(shù)據(jù)庫(kù)運(yùn)行期間的SCN值在數(shù)據(jù)庫(kù)打開并運(yùn)行之后,控制文件中的系統(tǒng)檢查點(diǎn)、控制文件中的數(shù)據(jù)文件檢查點(diǎn)SCN和每個(gè)數(shù)據(jù)文件頭中的啟動(dòng)SCN都是相同的。控制文件中的每個(gè)數(shù)據(jù)文件的終止SCN都為null.在安全關(guān)閉數(shù)據(jù)庫(kù)的過程中,系統(tǒng)會(huì)執(zhí)行一個(gè)檢查點(diǎn)動(dòng)作,這時(shí)所有數(shù)據(jù)文件的終止SCN都會(huì)設(shè)置成數(shù)據(jù)文件頭中的那個(gè)啟動(dòng)SCN的值。在數(shù)據(jù)庫(kù)重新啟動(dòng)的時(shí)候,Oracle將文件頭中的那個(gè)啟動(dòng)SCN與數(shù)據(jù)庫(kù)文件檢查點(diǎn)SCN進(jìn)行比較,如果這兩個(gè)值相互匹配,oracle接下來(lái)還要比較數(shù)據(jù)文件頭中的啟動(dòng)SCN和控制文件中數(shù)據(jù)文件的終止SCN。如果這兩個(gè)值也一致,就意味著所有數(shù)據(jù)塊多已經(jīng)提交,所有對(duì)數(shù)據(jù)庫(kù)的修改都沒有在關(guān)閉數(shù)據(jù)庫(kù)的過程中丟失,因此這次啟動(dòng)數(shù)據(jù)庫(kù)的過程也不需要任何恢復(fù)操作,此時(shí)數(shù)據(jù)庫(kù)就可以打開了。當(dāng)所有的數(shù)據(jù)庫(kù)都打開之后,存儲(chǔ)在控制文件中的數(shù)據(jù)文件終止SCN的值再次被更改為null,這表示數(shù)據(jù)文件已經(jīng)打開并能夠正常使用了。澄清幾個(gè)概念系統(tǒng)當(dāng)前SCN并不是在任何的數(shù)據(jù)庫(kù)操作發(fā)生時(shí)都會(huì)改變,SCN是在事務(wù)提交或回滾時(shí)改變;在控制文件,數(shù)據(jù)文件頭,數(shù)據(jù)塊,日志文件頭,日志文件change vector中都有SCN,但其作用各不相同,數(shù)據(jù)文件頭中包含了該數(shù)據(jù)文件的checkpoint SCN, SCN,next SCN,表示給日志文件包含有從low SCN到next SCN的redo SCN,stop SCN,每個(gè)日志文件的low SCN,next SCN同數(shù)據(jù)文件頭中checkpoint SCN相同, SCN,next SCN同日志文件中l(wèi)ow SCN和next SCN相同在數(shù)據(jù)庫(kù)正常運(yùn)行時(shí),控制文件中對(duì)應(yīng)數(shù)據(jù)文件的stop ,在關(guān)閉前會(huì)執(zhí)行一次檢查點(diǎn)工作當(dāng)oracle會(huì)將數(shù)據(jù)緩沖區(qū)上的內(nèi)容全部寫回到磁盤中,然后更新控制文件中對(duì)應(yīng)數(shù)據(jù)文件的stop SCN,使其等于checkpoint SCN。但在異常當(dāng)機(jī)的情況下,由于最后一次檢查點(diǎn)未進(jìn)行或進(jìn)行中間被中止,因而在控制文件,就存在部分的數(shù)據(jù)文件stop SCN為最大值,在數(shù)據(jù)庫(kù)重新啟動(dòng)后,會(huì)檢查控制文件中對(duì)應(yīng)每個(gè)數(shù)據(jù)文件的stop SCN,如果stop SCN不等于控制文件中對(duì)應(yīng)每個(gè)數(shù)據(jù)文件的checkpoint SCN,就會(huì)使用日志文件redo從checkpoint SCN開頭到stop log文件時(shí),就用到了日志文件頭中的low SCN,next SCN,也就是說(shuō)要使用的redo log的low SCN ,next SCN必須包含數(shù)據(jù)文件重做所須的change vector。在確定了哪個(gè)數(shù)據(jù)文件須redo后,oracle會(huì)比較change vector中的SCN和數(shù)據(jù)文件數(shù)據(jù)塊中的SCN,如果change vector的SCN小于數(shù)據(jù)塊的SCN,則跳過此change vector,否則redo數(shù)據(jù)塊中ITL中還有SCN,但它的作用是用于產(chǎn)生一致性讀快照。3內(nèi)存組件詳解BUFFER CACHEServer processes把數(shù)據(jù)文件讀進(jìn)buffer cache。為提高性能,一次讀有時(shí)候讀多個(gè)塊。DBWn進(jìn)程寫數(shù)據(jù)從buffer cache寫進(jìn)數(shù)據(jù)文件。為提高性能,DBWn一次寫多個(gè)塊。某一時(shí)間,buffer cache可能容納一個(gè)塊的多個(gè)拷貝。一個(gè)已存在的塊的拷貝,但是對(duì)于滿足server process可能需要構(gòu)建讀一致拷貝從以前的鏡像信息。為了能夠加快處理數(shù)據(jù)的速度,oracle必須將讀取過的數(shù)據(jù)緩存在內(nèi)存里。而oracle對(duì)這些緩存在內(nèi)存里的數(shù)據(jù)起了個(gè)名字:數(shù)據(jù)高速緩存區(qū)(db buffer cache),通常就叫做buffer cache。按照oracle官方的說(shuō)法,buffer cache就是一塊含有許多數(shù)據(jù)塊的內(nèi)存區(qū)域,而這些數(shù)據(jù)塊主要都是數(shù)據(jù)文件里的數(shù)據(jù)塊內(nèi)容的拷貝。通過初始化參數(shù):buffer_cache_size來(lái)指定buffer cache的大小。oracle實(shí)例一旦啟動(dòng),該區(qū)域大小就被分配好了。buffer cache所能提供的功能主要包括:1)通過緩存數(shù)據(jù)塊,從而減少I/O。2)通過構(gòu)造CR塊,從而提供讀一致性功能。3)通過提供各種lock、latch機(jī)制,從而提供多個(gè)進(jìn)程并發(fā)訪問同一個(gè)數(shù)據(jù)塊的功能。Buffer Cache術(shù)語(yǔ)Multiple Buffer PoolsBuffer pool有三種類型:nDefault:默認(rèn)的池nRecycle:大對(duì)象池,當(dāng)數(shù)據(jù)庫(kù)讀取某一大對(duì)象時(shí)候,可能導(dǎo)致其它對(duì)象的buffer老化,所以可以把大對(duì)象的讀取指定到recycle池中,避免影響其它對(duì)象。這個(gè)池里默認(rèn)為CR塊。nKeep:和recycle相反,把常用對(duì)象的buffer長(zhǎng)久keep在池中。通過DB_KEEP_CACHE_SIZE(BUFFER_POOL_KEEP)參數(shù)可以指定大小。nSQL create table test (n number) storage (buffer_pool keep)。SQL alter table test storage (buffer_pool recycle)。n公式:Buffers in default pool = Total number of buffers–(Buffers in recycle pool + Buffers in keep pool)n可以通過V$SEGSTAT_NAME, V$SEGSTAT,和V$SEGMENT_STATISTICS這個(gè)三個(gè)視圖進(jìn)行段級(jí)別的監(jiān)控。nKeep pool、Recycle pool和default pool采用的LRU算法是不同的,目前大多數(shù)資料所講的LRU算法及關(guān)于buffer cache的話題,主要針對(duì)的是default pool。有些描述中的buffer cache即是指的buffer cache中的default pool,本書中同樣如此。關(guān)于keep pool和recycle pool的算法資料較少。hash算法則是為了能夠進(jìn)行快速查找定位所使用一種技術(shù)。所謂hash算法,就是根據(jù)要查找的值,對(duì)該值進(jìn)行一定的hash算法后得出該值所在的索引號(hào),然后進(jìn)入到該值應(yīng)該存在的一列數(shù)值列表(可以理解為一個(gè)二維數(shù)組)里,通過該索引號(hào)去找它應(yīng)該屬于哪一個(gè)列表。然后再進(jìn)入所確定的列表里,對(duì)其中所含有的值,進(jìn)行一個(gè)一個(gè)的比較,從而找到該值。這樣就避免了對(duì)整個(gè)數(shù)值列表進(jìn)行掃描才能找到該值,這種全掃描的方式顯然要比hash查找方式低效很多。其中,每個(gè)索引號(hào)對(duì)應(yīng)的數(shù)值列在oracle里都叫做一個(gè)hash bucket。如磁盤上數(shù)據(jù)文件的最小IO單元叫block一樣,buffer cache的最小單元(或者說(shuō)結(jié)構(gòu))叫buffer,每個(gè)buffer跟x$bh中每條記錄有一一對(duì)應(yīng)關(guān)系。data buffer header list的結(jié)構(gòu)是用哈希桶Hash buckets來(lái)構(gòu)建的,它按照分組。注意,block class和block type不同。Hash chain是在每一個(gè)Hash bucket內(nèi)部,維護(hù)多個(gè)data buffer header的數(shù)據(jù)結(jié)構(gòu)。Buffer descriptor存在于PGA,它實(shí)際屬于client。它存儲(chǔ)的消息是client提供的。Buffer Headern描述緩沖區(qū)的buffern在TSN, RDBA做hash算法,為hash buckets獲取一個(gè)固定的數(shù)字n被上層組件做為一種提示使用Buffers能夠被請(qǐng)求為NULL, NEW, CR, CRX, SHR,和EXL模式。鏈表是一種數(shù)據(jù)結(jié)構(gòu),通過將對(duì)象串連在一起,從而構(gòu)成鏈表結(jié)構(gòu)。這樣,如果要修改、刪除、查找某個(gè)對(duì)象的話,都可以先到鏈表中去查找,而不必實(shí)際的訪問物理介質(zhì)。buffer cache有兩種LRU鏈表:nLRUW:LRU Write list((checkpoint queue),);寫鏈表,也就是dirty list,維護(hù)著當(dāng)前的臟塊。寫鏈表是需要寫入數(shù)據(jù)文件的臟數(shù)據(jù)塊列表。nLRU:LRU List最近最少使用的鏈表。LRU鏈表是控制不包含任何數(shù)據(jù)的空閑空間(freebuffers)、正在使用的空間(pinnedbuffers)和還沒有寫到寫鏈表的臟數(shù)據(jù)塊。n一個(gè)buffer只能被其中一個(gè)list cache。1LRU list由內(nèi)部參數(shù)_db_block_lru_latches控制,8i以前,只有一個(gè)list在cache里。從Oracle8開始,CKPTQ(checkpoint queues)和FQ (file queues)被引入。隨著異步DBWn引入,list的管理也隨之變化?,F(xiàn)在正確稱呼,應(yīng)該是“working sets,”,包含幾個(gè)不同的LRU lists。每個(gè)LRU是受cache buffers lru chain latch,保護(hù)的。1LRU Lists與working setn每一對(duì)LRU/LRUW稱為一個(gè)working set,buffer通過循環(huán)使用的方式分配到這些working set中。在高負(fù)載的讀取和過多的LRU掃描下,LRU latch可能成為一個(gè)瓶頸。此外,LRU latch在多路并發(fā)系統(tǒng)中也不好衡量。應(yīng)為多個(gè)CPU可能都會(huì)請(qǐng)求單獨(dú)的LRU latch。通過設(shè)置內(nèi)部參數(shù)_DB_BLOCK_LRU_LATCHES,可以改善LRU的競(jìng)爭(zhēng)情況。每個(gè)LRU latch都是一個(gè)working set。每個(gè)working set擁有自己的鏈表,管理屬于它的buffer。如果一個(gè)latch不能訪問,那么就會(huì)轉(zhuǎn)向下一個(gè),直到獲得一個(gè)成功的latch。在事件管理中,如果請(qǐng)求latch失敗,那么miss就會(huì)增加。LRU latch的請(qǐng)求最初是NOWAIT模式,如果在它請(qǐng)求完所有l(wèi)atch都仍然沒有成功后,就會(huì)變?yōu)閃AIT模式。n進(jìn)程訪問所有的latch直到它獲得一個(gè)LRU latch。在多個(gè)DBWR的環(huán)境下,每個(gè)DBWR都有自己的LRU/LRUW,通過設(shè)置db_writer_processes可以更改DBWR的數(shù)目。1Working SetsnWorking Sets = DBWRs x Maximum number of buffer pools (8).n它包含如下list:216。LRU:216。LRUW:記錄dirty buffer216。LRUP:Ping list(RAC)216。LRUXO::對(duì)象重用list,針對(duì)drop和truncate216。LURXR:塊重用list216。Thread CKPT queue:線程CKPT buffer216。File CKPT queue:文件CKPT buffer queue216。Recovery CKPT queue:執(zhí)行恢復(fù)的塊1LRU和buckets/chains不同:n用于尋找某一指定的hash buckets/chainsnLRU提供尋找空閑buffer的方法,從list尾部開始找。nBuffer header內(nèi)容可以通過訪問X$BH表來(lái)訪問。1Buffer Get請(qǐng)求一個(gè)buffer,首先會(huì)填充一個(gè)buffer descriptor,步驟如下:n填充一個(gè)buffer descriptorn1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1