oracle體系結構梳理----各種程式
oracle 體系中的程式主要三類:
系統程式
後臺程式
服務程式
----後臺程式
SELECT NAME,DESCRIPTION FROM V$BGPROCESS GROUP BY NAME ,DESCRIPTION
?¤資料寫入程式(DBWn)db writer process
?¤日誌寫入程式(LGWR)Redo etc.
?¤檢查點程式(CKPT)checkpoint
?¤系統監控程式(SMON)System Monitor Process
?¤程式監控程式(PMON)process cleanup
?¤恢復程式(RECO)distributed recovery
?¤作業佇列程式(Job Queue Processes)
?¤歸檔程式(ARC0)Archival Process 0
?¤佇列監控程式(QMNn)AQ Coordinator
?¤其他後臺程式 DMON DG Broker Monitor Process
LNS0 Network Server 0
--LGWR程式的觸發條件:
日誌寫入程式log writer process (LGWR)負責管理日誌緩衝區,將日誌緩衝區寫入磁碟上的日誌檔案。LGWR將從上次之後才複製到buffer中的重做條目寫入磁碟。
1.commit 提交資料時,在oracle中只保證redo日誌檔案是完整的,而資料檔案可能是未被更改的
2.when it is 1/3 :full redo log buffer 達到1/3慢的時候
3. 1 meg of data appears in the log buffer :達到1M 的時候
4. every 3 seconds :
5. dbwr寫資料檔案之前
日誌檔案首先會寫入redo log buffer 後寫入redolog file 後來再寫入歸檔日誌檔案,一般會寫入這三個位置
--DBWR的觸發條件如下:
資料庫寫入程式database writer process (DBWn),將buffer中的內容寫入資料檔案中。DBWn程式負責將在buffer cache中的那些修改的buffer,也就是髒資料寫入磁碟中
1. 檢查點發生時
2. 髒緩衝量達到一定量
髒塊:已經被修改但未被寫入資料檔案的塊
操作均在database buffer cache中
3. 沒有空閒的空間填充髒塊了
4. DBWR時間超時了
5. RAC的PING時
6. 表空間OFFLINE時(normal)
7. 表空間設定成只讀時
8. DROP表和TRUNCATE表時 在執行drop和trunctate之前會將資料寫入資料檔案,因為假如原來t1表所在的塊在t1表被drop或truncate後被t2表佔用了,
如果沒有將t1表在記憶體中的髒塊寫入資料檔案,那麼在t2表寫資料進入資料檔案時可能會出現t1表和t2表髒資料混亂的情況。
9.表空間BEGIN BACKUP
SMON在例項恢復過程中較重要,巡檢的,系統監控
1.例項恢復/崩潰恢復(RAC/單例項)是oracle自動完成的
--SMON是系統監控
例項啟動時如有需要,系統監控程式(system monitor process,SMON)將負責進行恢復(recovery)工作。
此外,SMON 還負責清除系統中不再使用的臨時段(temporary segment),以及為資料字典管理的表空間(dictionary managed tablespace)合併相鄰的可用資料擴充套件(extent)。
在例項恢復過程中,如果由於檔案讀取錯誤或所需檔案處於離線狀態而導致某些異常終止的事務未被恢復,SMON 將在表空間或檔案恢復聯機狀態後再次恢復這些事務。
SMON程式定期檢查自己是否被需要,系統內的其他程式發覺需要時也能夠呼叫SMON 程式。
1. 例項恢復:前滾,開啟資料庫,回滾 ,前滾是redo,回滾是undo
例項恢復
介質恢復
例項恢復 --- 崩潰恢復
2.整理區碎片:字典管理表空間才用,本地管理表空間由點陣圖自動整理 --只有資料字典表空間還要管理
3.清理臨時空間 :事務提交或則是資料清理了都是smon來清理
---PMON事務監控
當一個使用者程式(user process)失敗後,程式監控程式(process monitor,PMON)將對其進行恢復。
PMON 程式負責清理資料緩衝區(database buffer cache)並釋放使用者程式使用的資源。例如,它可以重置活動事務表(active transaction table)的狀態,
釋放鎖,將某個程式ID從活動程式列表中移除。
1. 回滾沒提交的事務。這裡是指rollback,釋放鎖資源
2. 釋放程式相關的鎖資源。
3. 釋放其他資源,比如程式號等資訊,v$process可以看到的一些資訊。
4. 監視Oracle 後臺程式,必要時(如果可能的話)重啟這些後臺程式,甚至關閉例項
5. PMON還有一個任務,它可以實現服務註冊
動態註冊過程中,由PMON每隔60秒,去看一下監聽有沒有啟動,如果啟動了,將資訊註冊到監聽
---歸檔程式ARCn
1)當設定成歸檔模式的時候,自動歸檔.
2) 儲存所有改變資料庫的記錄
MMAN:記憶體管理器(Memory Manager)
MMON、MMNL和Mnnn
---事務的生命週期
1、事務開始;(insert,update,delete,select ... for update等)
2、在buffer cache中找需要的資料塊,如果沒有找到,則從資料檔案中載入buffer cache中;
3、事務修改buffer cache的資料塊,該資料被標識為“髒資料”,並把相關的redo資訊寫入log buffer中.
4、事務提交,LGWR程式將log buffer中的日誌寫入redo log file中;
5、當發生checkpoint,CKPT程式更新控制檔案和所有資料檔案的檔案頭中的資訊,DBWn程式則負責將Buffer Cache中的髒資料寫入到資料檔案中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30018455/viewspace-1412611/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle體系結構梳理Oracle
- Oracle體系結構之-Oracle中各種名稱Oracle
- oracle體系結構梳理---SGA+PGAOracle
- ORACLE體系結構梳理---基本概念Oracle
- oracle體系結構梳理---redo和undo解析1Oracle
- oracle體系結構梳理---redo和undo檔案解析Oracle
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- Oracle體系結構之-Oracle後臺程式Oracle
- oracle體系結構Oracle
- ORACLE體系結構小結Oracle
- oracle體系結構總結Oracle
- Oracle體系結構之-物理結構Oracle
- Oracle體系結構之-記憶體結構Oracle記憶體
- oracle結構梳理---資料字典Oracle
- oracle體系結構(轉)Oracle
- ORACLE-體系結構Oracle
- Oracle 體系結構圖Oracle
- oracle體系結構(1)Oracle
- oracle體系結構(2)Oracle
- oracle體系結構(3)Oracle
- oracle 各種遷移總結Oracle
- Oracle記憶體體系結構Oracle記憶體
- 【Oracle】-【體系結構-DBWR】-DBWR程式相關理解Oracle
- 程式猿的年終總結,各種版本各種殘
- 【Oracle體系結構】 Oracle19C 系統結構介紹Oracle
- oracle結構梳理---歸檔檔案Oracle
- ARM的體系結構與程式設計系列部落格——ARM體系變種程式設計
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- oracle體系結構概覽Oracle
- Oracle 體系結構介紹Oracle
- oracel體系結構梳理----控制檔案以及pfile和spfile
- Oracle體系結構部落格連結Oracle
- DBA_Oracle基本體系記憶體和程式結構(概念)Oracle記憶體
- 資料結構連結串列各種問題資料結構
- Oracle OCP(37):Database 體系結構OracleDatabase
- Oracle 11g體系結構Oracle
- Oracle體系結構理論篇Oracle
- Oracle 12C 體系結構Oracle