中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-19 11:39:02 來源:ITPUB博客 閱讀:242 作者:家有ORACLE老公 欄目:關系型數據庫

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

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

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

聯機重做日志文件:重做日志文件是用于記錄數據庫變化的物理文件,其作用是在發生意外時恢復oracle數據庫。
日志文件以日志文件組的形式存在。
我們知道重做日志緩沖區是循環使用的:當重做日志緩沖區的重做項被寫入聯機重做日志文件后,重做日志緩沖去的內容被覆蓋,但是這種循環以組的方式循環。


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

在出現以下情況時LGWR會開始工作:

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


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

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

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

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

SMON進程的工作歸納如下:

--進行實例恢復
--合并數據文件的自由空間
--釋放數據文件的臨時段

CKPT檢查點進程

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

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

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

--發生日志切換    alter system switch logfile;

--關閉實例   
--手工執行檢查點操作   alter system checkpoint;
--有初始化參數log_checkpoint_interval和log_checkpoint_timeout強制發出

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉节县| 固镇县| 太康县| 石城县| 汾阳市| 江阴市| 浪卡子县| 新化县| 于都县| 大田县| 佛教| 金溪县| 江达县| 阳原县| 钟山县| 岫岩| 广德县| 张家界市| 康定县| 苗栗市| 瓦房店市| 鄄城县| 寻乌县| 芦溪县| 江永县| 长汀县| 夏津县| 四子王旗| 莱西市| 土默特左旗| 息烽县| 光山县| 清水河县| 垫江县| 宣威市| 内丘县| 斗六市| 宜黄县| 金阳县| 进贤县| 贞丰县|