Oracle梳理
Oracle伺服器包括:Oracle例程和Oracle資料庫。
Oracle例程包括:SGA(系統全域性區)和後臺程式。
系統全域性區:資料庫高速緩衝區(db_cache_size),重做日誌緩衝區(log_buffer),共享池(shared_pool_size).
後臺程式:DBWR,LGWR,PMON,SMON,CKPT.
使用者在客戶端通過應用程式或者Oracle客戶端提交SQL語句,客戶端為其分配使用者程式,伺服器端為其分配伺服器程式,使用者的SQL操作都是伺服器程式處理的。
共享池用於存放最近執行的SQL語句和資料字典資訊;資料庫高速緩衝區用於存放最近訪問的資料塊資訊。可以使用DB_nk_CACHE_SIZE定義非標準資料快取記憶體。
重做日誌緩衝區:用於記載例程變化,其尺寸由初始化引數LOG_BUFFER定義。
重做日誌用於記載資料庫變化,當執行例程恢復或介質恢復時需要使用重做日誌。當執行DDL和DML操作時,事物變化會被寫入到重做日誌緩衝區,而在特定時刻LGWR會將重做日誌緩衝區的內容寫入重做日誌。每個操作執行緒至少要包含兩個重做日誌組,並且這些重做日誌組是迴圈使用的。當一組日誌寫滿後,Oracle會自動進行日誌切換,並LGWR會將事務變化寫入到下一日誌組。
LGWR用於將重做日誌緩衝區所記載的內容寫入到重做日誌。當執行DML或DDL語句時,伺服器程式首先將事務變化寫到重做日誌緩衝區,然後才會修改資料快取記憶體。注意,Oracle總是“先日誌後修改”。也就是說在DBWR工作之前,LGWR首先將事務變化寫入到重做日誌。
在以下情況中LGWR程式會開始工作:
1.提交事務(COMMIT)
2.每隔三秒鐘
3.當重做資訊超過1M時
4.重做日誌緩衝區已有1/3填滿
5.在DBWR程式將髒緩衝區寫入到資料檔案之前
當Oracle處於ARCHIVELOG模式時,當後臺程式LGWR進行日誌切換時,那麼後臺程式ARCH會自動將重做日誌內容複製到歸檔日誌中。
當重做日誌寫完之後,資料庫開始寫資料檔案。
DBWR用於將資料高速緩衝區的髒緩衝區資料寫入到資料檔案中。當執行DML操作時,伺服器程式會修改緩衝區,並且將這些緩衝區標識為“髒緩衝區”,將來這些髒緩衝區會由後臺程式DBWR寫入到資料檔案中。
預設情況下只有一個DBW0程式,可以設定初始化引數db_writer_processes定義最多10個DBWR程式(DBW0-DBW9)。在以下情況時,DBWR開始工作:
1.系統發出檢查點(checkpoint)
2.伺服器程式不能找到空閒緩衝區
3.刪除或截斷表
4.使表空間正常離線(Alter Table....Offline Normal)
5.開始表空間備份(Alter Tablespace....Begin Backup)
CKPT(Checkpoint Process):用於發出檢查點(Checkpoint),並且檢查點會同步資料庫的資料檔案,控制檔案和重做日誌檔案。當發出檢查點時,後臺程式CKPT會將檢查點時刻的SCN(System Change Number)寫入到控制檔案和資料檔案頭部,同時促使後臺程式DBWR將所有髒緩衝區資料寫入到資料檔案中。
當發出檢查點時,不僅後臺程式CKPT和DBWR要開始工作,而且LGWR也會將重做日誌緩衝區寫入到重做日誌,從而確保了資料檔案,控制檔案和重做日誌的一致性。在以下情況中CKPT會開始工作:
1.日誌切換
2.關閉例程(Shutdown Abort例外)
3.手工檢查點操作(Alter System Checkpoint)
4.由初始化引數Fast_start_mttr_target強制發出檢查點
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12035968/viewspace-586857/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle梳理二Oracle
- index_oracle索引梳理系列及分割槽表梳理IndexOracle索引
- ORACLE分割槽表梳理系列Oracle
- Oracle體系結構梳理Oracle
- 【ORACLE】Oracle繫結變數知識梳理Oracle變數
- oracle結構梳理---資料字典Oracle
- 【CURSOR】Oracle 遊標 (cursor)知識梳理Oracle
- 【INDEX】Oracle 索引常見知識梳理IndexOracle索引
- oracle結構梳理---歸檔檔案Oracle
- oracle體系結構梳理----各種程式Oracle
- oracle體系結構梳理---SGA+PGAOracle
- ORACLE體系結構梳理---基本概念Oracle
- Oracle索引梳理系列(六)- Oracle索引種類之函式索引Oracle索引函式
- oracle結構梳理----checkpoint——啟動與關閉Oracle
- ORACLE事務和例項恢復過程梳理Oracle
- oracle體系結構梳理---redo和undo解析1Oracle
- oracle體系結構梳理---redo和undo檔案解析Oracle
- RxJava梳理RxJava
- Activity梳理
- vue梳理Vue
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫
- React Hooks 梳理ReactHook
- JavaScript原型梳理JavaScript原型
- Flutter - 動畫 API 梳理Flutter動畫API
- Jshop流程梳理JS
- React render流程梳理React
- web知識梳理Web
- Mysql知識梳理MySql
- redis基礎梳理Redis
- MyBatis sqlSession概要梳理MyBatisSQLSession
- Flex Box 概念梳理Flex
- http快取梳理HTTP快取
- JavaWeb知識梳理JavaWeb
- css常用技巧梳理CSS
- webpack 知識梳理Web
- 面經梳理-mysqlMySql
- Docker容器學習梳理 - 容器登陸方法梳理(attach、exec、nsenter)Docker
- 常用陣列方法梳理陣列