真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle后臺進程LGWR,DBWR,SMON,CKPT的工作機制

oracle后臺進程LGWR,DBWR,SMON,CKPT的工作機制

豐臺網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),豐臺網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為豐臺成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的豐臺做網(wǎng)站的公司定做!

控制文件:記載了數(shù)據(jù)文件名稱和路徑。重做日志名稱和位置,日志序列號,檢查點和日志歷史信息,以及RMAN備份信息。當(dāng)oracle服務(wù)器出現(xiàn)實例失敗或介質(zhì)失敗時,通過控制文件所記載的日志和檢查點信息,oracle可以確定執(zhí)行恢復(fù)所需要的日志文件。

數(shù)據(jù)文件:是用于存儲數(shù)據(jù)庫數(shù)據(jù)的物理文件,它由若干個操作系統(tǒng)系統(tǒng)文件組成,在數(shù)據(jù)文件中中存儲著用戶數(shù)據(jù)(表,索引等),數(shù)據(jù)字典以及回滾段數(shù)據(jù)等。數(shù)據(jù)文件和表空間有著密切的關(guān)系,oracle數(shù)據(jù)庫至少要包含一個數(shù)據(jù)文件,并且數(shù)據(jù)文件是表空間的物理組成元素,一個表空間可以包含多個數(shù)據(jù)文件,并且每個數(shù)據(jù)文件只能唯一的屬于某個表空間。

聯(lián)機重做日志文件:重做日志文件是用于記錄數(shù)據(jù)庫變化的物理文件,其作用是在發(fā)生意外時恢復(fù)oracle數(shù)據(jù)庫。
日志文件以日志文件組的形式存在。
我們知道重做日志緩沖區(qū)是循環(huán)使用的:當(dāng)重做日志緩沖區(qū)的重做項被寫入聯(lián)機重做日志文件后,重做日志緩沖去的內(nèi)容被覆蓋,但是這種循環(huán)以組的方式循環(huán)。


LGWR日志寫入進程:LGWR日志寫入進程負(fù)責(zé)將重做日志緩存區(qū)的日志條目寫入磁盤上的聯(lián)機日志文件。當(dāng)運行DML或DDL語句時,服務(wù)器進程首先要將事物的變化記載道重做日志緩存區(qū),然后才會寫入數(shù)據(jù)高速緩沖區(qū),并且重做日志緩沖區(qū)的內(nèi)容將會被寫入連接日志文件,以避免系統(tǒng)出現(xiàn)意外帶來的數(shù)據(jù)損失(如果操作系統(tǒng)斷電,內(nèi)存中的重做日志緩沖區(qū)的內(nèi)容會丟失,而存在磁盤上的聯(lián)機日志文件則不會丟失),這項任務(wù)由LGWR來完成。
重做日志緩存區(qū)是一個循環(huán)結(jié)構(gòu),LGWR將重做日志緩沖區(qū)中的重做記錄寫入聯(lián)機重做日志文件后,相應(yīng)的緩沖區(qū)內(nèi)容將被清空,保證orale有空閑的重做日志緩沖區(qū)可以寫入。

在出現(xiàn)以下情況時LGWR會開始工作:

--在DBWR進程將臟緩沖區(qū)寫入數(shù)據(jù)文件之前。
--在重做日志記錄達到緩沖區(qū)的三分之一。
--日志緩沖區(qū)記錄的日志多余1m。
--每隔3秒鐘。//重做日子緩沖區(qū)是循環(huán)使用的,要騰出足夠的空間給新的記錄使用
--提交事務(wù)(執(zhí)行commit)//提交事務(wù)相當(dāng)于確定保存修改,不存入日志文件有丟失的可能。


另外。oracle采用了快速提交機制,當(dāng)執(zhí)行commit操作時,并不是將’臟緩沖區(qū)‘’數(shù)據(jù)寫入到數(shù)據(jù)文件中,而是將重做日志緩沖區(qū)的內(nèi)容寫入到重做日志文件中,以確保數(shù)據(jù)庫完整性。此時即使系統(tǒng)出現(xiàn)意外情況(掉電,系統(tǒng)崩潰),因為被提交事務(wù)已經(jīng)記載到了存放在磁盤上的聯(lián)機重做日志文件中,將來在重新啟動時會自動進行實例恢復(fù),
并將被提交事務(wù)所修改數(shù)據(jù)寫入到數(shù)據(jù)文件中,從而避免了數(shù)據(jù)丟失。

DBWn數(shù)據(jù)庫寫入進程:
數(shù)據(jù)庫寫入進程負(fù)責(zé)將數(shù)據(jù)庫高速緩沖區(qū)(臟緩沖區(qū))的類容寫入到數(shù)據(jù)文件。盡管有一個數(shù)據(jù)庫寫進程 (DBW0)適用于大多數(shù)系統(tǒng),但數(shù)據(jù)庫管理員可以配置額外的進程(DBW0-DBW9,最多10個進程),以提高寫入性能,通過初始化參數(shù)DB_WRITER_PROCESSES來完成。當(dāng)數(shù)據(jù)庫高速緩沖區(qū)的快被修改, 它被標(biāo)記為臟緩沖區(qū)并添加到以SCN為循序的LRUW列表,同時,這個順序與重做日志緩沖區(qū)的順序一致。
在出現(xiàn)一下情況時DBWn進程會開始工作
--系統(tǒng)發(fā)出檢查點指令。//同步數(shù)據(jù),詳見檢查點進程(CKPT)
--臟緩沖區(qū)個數(shù)達到指定閾值。
--服務(wù)進程搜索一定數(shù)目的數(shù)據(jù)塊后,不能找到自由緩沖區(qū)。
--數(shù)據(jù)寫入計時時間到。
--表空間脫機或進入只讀狀態(tài)。
--執(zhí)行刪除或截斷表操作
--執(zhí)行alter  tablespace.....begin  backup命令。//需要同步數(shù)據(jù),原理同檢查點。
.

數(shù)據(jù)修改到發(fā)生檢查點整個流程
1   當(dāng)數(shù)據(jù)被修改時,第一次讀取,需要將數(shù)據(jù)從數(shù)據(jù)文件讀入數(shù)據(jù)庫高速緩沖區(qū)。
2   數(shù)據(jù)讀入數(shù)據(jù)庫高速緩沖區(qū)后。我們修改數(shù)據(jù)的條目先記錄入重做日志緩沖區(qū);
3   接著新數(shù)據(jù)被寫入數(shù)據(jù)庫高速緩沖區(qū).
4    提交,LGWR進程將條目從重做日志緩沖區(qū)寫入聯(lián)機重做日志文件,
5    執(zhí)行檢察點CKPT,同步數(shù)據(jù)庫,發(fā)現(xiàn)聯(lián)機日志文件為最新,同步更新數(shù)據(jù)文件,控制文件,觸發(fā)了DBWn進程。

SMON系統(tǒng)監(jiān)控進程
SMON系統(tǒng)監(jiān)控進程主要作用是強制對數(shù)據(jù)庫進行恢復(fù)操作。在實例啟動時,如果上一次數(shù)據(jù)庫是非正常關(guān)閉,并且重做日志文件和控制文件的SCN值是不同的,oracle將自動在重新打開數(shù)據(jù)庫之前,通過執(zhí)行重做日志文件的記錄,來同步所有數(shù)據(jù)文件,控制文件和重做日志文件,確保所有數(shù)據(jù)庫文件的一致性,然后才打開數(shù)據(jù)庫。
如果檢查點進程一列中,第四步完成后發(fā)生系統(tǒng)掉電,崩潰,那么數(shù)據(jù)會不會丟失了?當(dāng)然不會。我們知道,系統(tǒng)掉電,導(dǎo)致內(nèi)存中的數(shù)據(jù)丟失。那么自然上列中的第五步無法完成(無法從數(shù)據(jù)庫告訴緩沖區(qū)寫入數(shù)據(jù)文件),但是由于此時已寫入聯(lián)機日志文件。因此,此時數(shù)據(jù)將從鏈接日志文件中更新,而更新的數(shù)據(jù)量是多少,自然是由SCN決定。這一過程我們稱為''實例恢復(fù)''。該過程不需要數(shù)據(jù)庫管理員手工干預(yù),由SMON進程自動完成。

SMON進程的工作歸納如下:

--進行實例恢復(fù)
--合并數(shù)據(jù)文件的自由空間
--釋放數(shù)據(jù)文件的臨時段

CKPT檢查點進程

CKPT檢查點進程的作用是執(zhí)行一個檢查點,同步數(shù)據(jù)庫的所有數(shù)據(jù)文件,控制文件和重做日志文件。當(dāng)執(zhí)行檢察點時,系統(tǒng)促使DBWn將數(shù)據(jù)緩存區(qū)中數(shù)據(jù)的變化寫入數(shù)據(jù)文件,同時完成對數(shù)據(jù)文件和控制文件的更新,記錄下當(dāng)前數(shù)據(jù)庫的結(jié)構(gòu)和狀態(tài)。在執(zhí)行一個檢查點之后,數(shù)據(jù)庫處于一個完整狀態(tài)。在數(shù)據(jù)庫發(fā)生崩潰后,可以將數(shù)據(jù)庫恢復(fù)到上一個檢查點。oracle數(shù)據(jù)庫在執(zhí)行數(shù)據(jù)變化的語句時,會針對任何修改生成一個順序遞增SCN值,并且會將SCN值連同事物的變化一起記載到重做日志緩存區(qū)。在數(shù)據(jù)文件??刂莆募^部以及重做日志文件中都記載有該值。oracle通過比較各種文件的SCN值,確定文件是否損壞,系統(tǒng)是否異常,最終確定系統(tǒng)是需要進行實例恢復(fù)還是介質(zhì)恢復(fù)。在發(fā)出檢查點時,數(shù)據(jù)文件。控制文件和重做日志的SCN值完全一致。

分類:全局檢查點(關(guān)閉數(shù)據(jù)庫時)、局部檢查點(表空間)、增量檢查點(切日志組)

進程CKPT在以下情況下會開始工作

--發(fā)生日志切換    alter system switch logfile;

--關(guān)閉實例   
--手工執(zhí)行檢查點操作   alter system checkpoint;
--有初始化參數(shù)log_checkpoint_interval和log_checkpoint_timeout強制發(fā)出


文章標(biāo)題:oracle后臺進程LGWR,DBWR,SMON,CKPT的工作機制
網(wǎng)站路徑:http://weahome.cn/article/gpchgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部