Oracle體系結構梳理
小弟最近學習oracle,總結了一下oracle體系結構,希望各位高人指正。具體如下:
Oracle的整個結構元件從大的方面來講,分為Instance和Database兩部分。Instance是由SGA和一組後臺程式組成,而Database由三類檔案組成:Data file、Control file、Redo log file組成。SGA是一塊記憶體區域,通過一組後臺程式,與Database進行資訊的互動。
Instance包括記憶體結構和後臺程式。記憶體結構即SGA和PGA。SGA包括必須的share pool,database buffer cache, redo log buffer cache和一些其他的結構(如鎖、latch管理),還有一些可選的,如:large pool,java pool。SGA的大小在oracle9i中可以動態的調整,峰值可以由SGA_MAX_SIZE引數來設定。Share pool用來存放最近使用的SQL語句和資料的定義,它包含Library Cache 和 Data dictionary Cache兩個記憶體結構,其中Library Cache用來存放最近使用的SQL和PL/SQL語句,使用的是LRU演算法;Data dictionary Cache是用來存放最近使用過的定義,如資料庫檔案、表、索引、列、使用者、許可權等。Database buffer cache存放的是資料塊的副本,當使用者發起一個查詢請求的時候,伺服器程式首先去檢視database buffer cache中是否有所需的資料,若沒有,則到資料檔案中去查詢,找到後,同時將它複製到database buffer cache中,以便下次查詢的時候使用,這樣就提高了查詢的效率。redo log buffer cache記錄了所有對資料塊的改變,也就是說,對資料庫中的資料進行的任何修改,都會記錄到redo log buffer cache中,以便恢復資料庫時用。Large pool是一個可選項,當oracle以shared mode執行時,用來承擔起儲存使用者程式、dispatchers、伺服器間的連線資訊,從而減輕share pool的負擔。Java pool也是可選項,當使用java程式的時候,需要設定它。PGA是為一個單獨的伺服器程式或後臺程式保留的一塊記憶體區域,它包括:排序區(sort area)、會話資訊(session information)、遊標宣告(cursor state)、stack space。
Oracle程式結構包括使用者程式、伺服器程式和後臺程式。
a、 user process:當一個使用者向oracle server請求連線的時候產生;它可以向oracle server請求互動操作;它有兩個特點:
第二, 必須先與oracle server建立一個連線;
第三, 它不會與oracle server直接的進行互動操作
b、 server process:當使用者建立一個session的時候產生;它去連線instence;直接與oracle server進行互動操作;一旦使用者建立了與oracle server的連線,就產生了一個server process,它用來處理user process的請求;在dedicated mode下,一個server process只處理一個user process的請求,在shared mode下,處理多個user process的請求。
c、 background process:當oracle instance啟動的時候產生。可以理解為它是連線oracle物理結構(database)和記憶體結構(SGA)的紐帶,有五個強制的程式:
1) DBWn:Database Writer
它將資料庫buffer中的dirty buffer寫到資料檔案中,從而保證在database buffer cache中有足夠的可用的buffer;
2) LGWR:Log Writer
它從redo log buffer中將資料有順序的寫到redo log file中;
3) SMON:System Monitor
當instance異常結束後,再次重新開啟的時候,SMON自動執行恢復操作:
1、向前執行已經提交成功的事務,即被記錄到redo log中的操作;
2、開啟資料庫,一邊使用者可以登陸,這時使用者可以訪問沒有被鎖住的資料,即執行成功的事務的資料;
3、向後回滾instance異常時未被提交的事務,這些操作沒有來得及寫到redo log中。
4) PMON:process monitor
Clean up after failed process by:
1、回滾使用者當前的事務;
2、釋放當前鎖住的表和行;
3、釋放其他使用者佔用的資源;
4、重啟dispatcher
5) CKPT:CheckPoint
當DBWn程式將SGA中所有的修改了的buffers(提交了的和未提交的)都寫到資料檔案中的時候,產生CheckPoint。
6) ARCn:Archiver
它是可選的後臺程式。當一個redo log file寫滿了之後,需要切換到另外一個redolog file中,這個過程稱之為log switch。那麼ARCn就是在每個log switch時候,都初始化備份、歸檔。它自動對連線的redolog檔案進行歸檔,以保證所有的對資料庫的改變都受到保護。
Oracle的整個結構元件從大的方面來講,分為Instance和Database兩部分。Instance是由SGA和一組後臺程式組成,而Database由三類檔案組成:Data file、Control file、Redo log file組成。SGA是一塊記憶體區域,通過一組後臺程式,與Database進行資訊的互動。
Instance包括記憶體結構和後臺程式。記憶體結構即SGA和PGA。SGA包括必須的share pool,database buffer cache, redo log buffer cache和一些其他的結構(如鎖、latch管理),還有一些可選的,如:large pool,java pool。SGA的大小在oracle9i中可以動態的調整,峰值可以由SGA_MAX_SIZE引數來設定。Share pool用來存放最近使用的SQL語句和資料的定義,它包含Library Cache 和 Data dictionary Cache兩個記憶體結構,其中Library Cache用來存放最近使用的SQL和PL/SQL語句,使用的是LRU演算法;Data dictionary Cache是用來存放最近使用過的定義,如資料庫檔案、表、索引、列、使用者、許可權等。Database buffer cache存放的是資料塊的副本,當使用者發起一個查詢請求的時候,伺服器程式首先去檢視database buffer cache中是否有所需的資料,若沒有,則到資料檔案中去查詢,找到後,同時將它複製到database buffer cache中,以便下次查詢的時候使用,這樣就提高了查詢的效率。redo log buffer cache記錄了所有對資料塊的改變,也就是說,對資料庫中的資料進行的任何修改,都會記錄到redo log buffer cache中,以便恢復資料庫時用。Large pool是一個可選項,當oracle以shared mode執行時,用來承擔起儲存使用者程式、dispatchers、伺服器間的連線資訊,從而減輕share pool的負擔。Java pool也是可選項,當使用java程式的時候,需要設定它。PGA是為一個單獨的伺服器程式或後臺程式保留的一塊記憶體區域,它包括:排序區(sort area)、會話資訊(session information)、遊標宣告(cursor state)、stack space。
Oracle程式結構包括使用者程式、伺服器程式和後臺程式。
a、 user process:當一個使用者向oracle server請求連線的時候產生;它可以向oracle server請求互動操作;它有兩個特點:
第二, 必須先與oracle server建立一個連線;
第三, 它不會與oracle server直接的進行互動操作
b、 server process:當使用者建立一個session的時候產生;它去連線instence;直接與oracle server進行互動操作;一旦使用者建立了與oracle server的連線,就產生了一個server process,它用來處理user process的請求;在dedicated mode下,一個server process只處理一個user process的請求,在shared mode下,處理多個user process的請求。
c、 background process:當oracle instance啟動的時候產生。可以理解為它是連線oracle物理結構(database)和記憶體結構(SGA)的紐帶,有五個強制的程式:
1) DBWn:Database Writer
它將資料庫buffer中的dirty buffer寫到資料檔案中,從而保證在database buffer cache中有足夠的可用的buffer;
2) LGWR:Log Writer
它從redo log buffer中將資料有順序的寫到redo log file中;
3) SMON:System Monitor
當instance異常結束後,再次重新開啟的時候,SMON自動執行恢復操作:
1、向前執行已經提交成功的事務,即被記錄到redo log中的操作;
2、開啟資料庫,一邊使用者可以登陸,這時使用者可以訪問沒有被鎖住的資料,即執行成功的事務的資料;
3、向後回滾instance異常時未被提交的事務,這些操作沒有來得及寫到redo log中。
4) PMON:process monitor
Clean up after failed process by:
1、回滾使用者當前的事務;
2、釋放當前鎖住的表和行;
3、釋放其他使用者佔用的資源;
4、重啟dispatcher
5) CKPT:CheckPoint
當DBWn程式將SGA中所有的修改了的buffers(提交了的和未提交的)都寫到資料檔案中的時候,產生CheckPoint。
6) ARCn:Archiver
它是可選的後臺程式。當一個redo log file寫滿了之後,需要切換到另外一個redolog file中,這個過程稱之為log switch。那麼ARCn就是在每個log switch時候,都初始化備份、歸檔。它自動對連線的redolog檔案進行歸檔,以保證所有的對資料庫的改變都受到保護。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28982975/viewspace-772633/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 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體系結構(1)Oracle
- oracle體系結構(2)Oracle
- oracle體系結構(3)Oracle
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- 3:Oracle體系結構(邏輯結構)Oracle
- Oracle記憶體體系結構Oracle記憶體
- 【Oracle體系結構】 Oracle19C 系統結構介紹Oracle
- oracle結構梳理---歸檔檔案Oracle
- oracle體系結構概覽Oracle
- Oracle 體系結構介紹Oracle
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- oracel體系結構梳理----控制檔案以及pfile和spfile
- Oracle體系結構部落格連結Oracle
- Oracle OCP(37):Database 體系結構OracleDatabase
- Oracle 11g體系結構Oracle
- Oracle體系結構理論篇Oracle
- Oracle 12C 體系結構Oracle
- Oracle資料庫體系結構Oracle資料庫
- 【00】Oracle體系結構詳解Oracle
- Oracle RAC 體系結構--儲存Oracle
- Oracle 體系結構介紹(轉)Oracle
- Oracle 體系結構 SGA 和PGA 總結Oracle
- Oracle系列:Oracle RAC叢集體系結構Oracle
- Oracle體系結構之-Oracle後臺程式Oracle