第7章數(shù)據(jù)庫實例_第1頁
第7章數(shù)據(jù)庫實例_第2頁
第7章數(shù)據(jù)庫實例_第3頁
第7章數(shù)據(jù)庫實例_第4頁
第7章數(shù)據(jù)庫實例_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Oracle 10g 數(shù)據(jù)庫基礎(chǔ)教程第第7章章 數(shù)據(jù)庫實例數(shù)據(jù)庫實例Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程本章內(nèi)容本章內(nèi)容pOracle實例概述 pOracle內(nèi)存結(jié)構(gòu)pOracle后臺進程Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程本章要求本章要求p掌握Oracle實例基本概念p掌握Oracle實例的內(nèi)存結(jié)構(gòu)、功能及管理p了解Oracle進程分類及其作用p掌握Oracle后臺進程、功能及管理Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.1實例概述實例概述pOracle實例的概念 nOracleOracle數(shù)據(jù)庫主要由放在磁盤中的物理數(shù)據(jù)庫和對物數(shù)據(jù)庫主要由放在磁盤中的物理數(shù)據(jù)庫和對物理數(shù)據(jù)庫進行管理的數(shù)據(jù)庫管理系

2、統(tǒng)。其中數(shù)據(jù)庫管理數(shù)據(jù)庫進行管理的數(shù)據(jù)庫管理系統(tǒng)。其中數(shù)據(jù)庫管理系統(tǒng)是處于用戶與物理數(shù)據(jù)庫之間的一個中間層軟理系統(tǒng)是處于用戶與物理數(shù)據(jù)庫之間的一個中間層軟件,又稱為實例,由一系列內(nèi)存結(jié)構(gòu)和后臺進程組成。件,又稱為實例,由一系列內(nèi)存結(jié)構(gòu)和后臺進程組成。n在啟動數(shù)據(jù)庫時,在啟動數(shù)據(jù)庫時,OracleOracle首先在內(nèi)存中獲取一定的空首先在內(nèi)存中獲取一定的空間,啟動各種用途的后臺進程,即創(chuàng)建一個數(shù)據(jù)庫實間,啟動各種用途的后臺進程,即創(chuàng)建一個數(shù)據(jù)庫實例,然后由實例裝載數(shù)據(jù)文件和重做日志文件,最后例,然后由實例裝載數(shù)據(jù)文件和重做日志文件,最后打開數(shù)據(jù)庫。用戶操作數(shù)據(jù)庫的過程實質(zhì)上是與數(shù)據(jù)打開數(shù)據(jù)庫。用

3、戶操作數(shù)據(jù)庫的過程實質(zhì)上是與數(shù)據(jù)庫實例建立連接,然后通過實例來連接、操作數(shù)據(jù)庫庫實例建立連接,然后通過實例來連接、操作數(shù)據(jù)庫的過程。的過程。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p數(shù)據(jù)庫與實例的關(guān)系 n 單實例數(shù)據(jù)庫系統(tǒng)單實例數(shù)據(jù)庫系統(tǒng) 多實例數(shù)據(jù)庫系統(tǒng)多實例數(shù)據(jù)庫系統(tǒng) Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p實例組成 n內(nèi)存結(jié)構(gòu):系統(tǒng)全局區(qū)(內(nèi)存結(jié)構(gòu):系統(tǒng)全局區(qū)(SGA)和程序全局區(qū)()和程序全局區(qū)(PGA) n后臺進程組成后臺進程組成 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程 處理數(shù)據(jù)的內(nèi)存結(jié)構(gòu)處理數(shù)據(jù)的內(nèi)存結(jié)構(gòu)實實 例例 后后 臺臺 進進 程程 客戶應(yīng)用程序 服務(wù)器進程 數(shù)據(jù)庫數(shù)據(jù)庫Oracle 10

4、g數(shù)據(jù)庫基礎(chǔ)教程實例實例SGA日志緩存日志緩存共享池共享池數(shù)據(jù)字典數(shù)據(jù)字典緩沖區(qū)緩沖區(qū)庫緩沖區(qū)庫緩沖區(qū)DBWRSMONPMONCKPTLGWROthers用戶進程用戶進程服務(wù)器進程服務(wù)器進程PGA控制文件控制文件數(shù)據(jù)文數(shù)據(jù)文件件 歸檔日志歸檔日志文件文件參數(shù)文件參數(shù)文件口令文件口令文件重做日志重做日志文件文件數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫緩存數(shù)據(jù)庫緩存Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.2 Oracle內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)p系統(tǒng)全局區(qū)(System Global Area,SGA)p程序全局區(qū)(Program Global Area,PGA) Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程pSGAnSGA是由是由Ora

5、cle分配的共享內(nèi)存結(jié)構(gòu),包含一個數(shù)據(jù)庫實例共分配的共享內(nèi)存結(jié)構(gòu),包含一個數(shù)據(jù)庫實例共享的數(shù)據(jù)和控制信息。當多個用戶同時連接同一個實例時,享的數(shù)據(jù)和控制信息。當多個用戶同時連接同一個實例時,SGA數(shù)據(jù)可供多個用戶共享,數(shù)據(jù)可供多個用戶共享,SGA又稱為共享全局區(qū)(又稱為共享全局區(qū)(Shared Global Area)。用戶對數(shù)據(jù)庫的各種操作主要在)。用戶對數(shù)據(jù)庫的各種操作主要在SGA中進行。中進行。該內(nèi)存區(qū)隨數(shù)據(jù)庫實例的創(chuàng)建而分配,隨實例的終止而釋放。該內(nèi)存區(qū)隨數(shù)據(jù)庫實例的創(chuàng)建而分配,隨實例的終止而釋放。 pPGAnPGA是在用戶進程連接數(shù)據(jù)庫、創(chuàng)建一個會話時,由是在用戶進程連接數(shù)據(jù)庫、創(chuàng)建

6、一個會話時,由Oracle為為用戶分配的內(nèi)存區(qū)域,保存當前用戶私有的數(shù)據(jù)和控制信息,因用戶分配的內(nèi)存區(qū)域,保存當前用戶私有的數(shù)據(jù)和控制信息,因此該區(qū)又稱為私有全局區(qū)(此該區(qū)又稱為私有全局區(qū)(Private Global Area)。每個服務(wù))。每個服務(wù)器進程只能訪問自己的器進程只能訪問自己的PGA,所有服務(wù)器進程的,所有服務(wù)器進程的PGA總和即為實總和即為實例的例的PGA的大小。的大小。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.2.1 SGApSGA 包含的內(nèi)存結(jié)構(gòu)有:n數(shù)據(jù)高速緩沖區(qū)(數(shù)據(jù)高速緩沖區(qū)(Database Buffer Cache)n共享池(共享池(Shared Pool)n重做日志

7、緩沖區(qū)(重做日志緩沖區(qū)(Redo Log Cache)n大型池(大型池(Large Pool)nJava池(池(Java Pool)n流池(流池(Streams Pool)n其他結(jié)構(gòu)(如固定其他結(jié)構(gòu)(如固定SGA、鎖管理等)、鎖管理等)Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程(1)數(shù)據(jù)高速緩沖區(qū))數(shù)據(jù)高速緩沖區(qū)p功能n存儲從數(shù)據(jù)文件中檢索出來的數(shù)據(jù)拷貝。應(yīng)存儲從數(shù)據(jù)文件中檢索出來的數(shù)據(jù)拷貝。應(yīng)用程序要訪問的數(shù)據(jù)必須從磁盤的數(shù)據(jù)文件用程序要訪問的數(shù)據(jù)必須從磁盤的數(shù)據(jù)文件讀到數(shù)據(jù)緩沖區(qū)中處理。讀到數(shù)據(jù)緩沖區(qū)中處理。n在數(shù)據(jù)緩沖區(qū)中被修改后的數(shù)據(jù)由數(shù)據(jù)寫入在數(shù)據(jù)緩沖區(qū)中被修改后的數(shù)據(jù)由數(shù)據(jù)寫入進程寫到硬盤

8、的數(shù)據(jù)文件中永久保存。進程寫到硬盤的數(shù)據(jù)文件中永久保存。n提高獲取和更新數(shù)據(jù)的性能。提高獲取和更新數(shù)據(jù)的性能。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p 數(shù)據(jù)高速緩沖區(qū)的工作過程 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p緩沖塊的類型n臟緩存塊(臟緩存塊(Dirty Buffers)p臟緩存塊中保存的是已經(jīng)被修改過的數(shù)據(jù)。當一條SQL語句對某個緩存塊中的數(shù)據(jù)進行修改后,這個緩存塊就被標記為臟緩存塊。它們最終將由DBWR進程寫入數(shù)據(jù)文件,以永久性地保存修改結(jié) n空閑緩存塊(空閑緩存塊(Free Buffers)p空閑緩存塊中不包含任何數(shù)據(jù),它們等待后臺進程或服務(wù)器進程向其中寫入數(shù)據(jù)。當Oracle從數(shù)據(jù)文件

9、中讀取數(shù)據(jù)時,將會尋找空閑緩存塊,以便將數(shù)據(jù)寫入其中 n命中緩存塊(命中緩存塊(Pinned Buffers)p正被使用,或者被顯式地聲明為保留的緩存塊。這些緩存塊始終保留在數(shù)據(jù)高速緩沖區(qū)中,不會被換出內(nèi)存。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p緩存塊的管理 n臟緩存塊列表:包含那些已經(jīng)被修改但還沒有寫入數(shù)臟緩存塊列表:包含那些已經(jīng)被修改但還沒有寫入數(shù)據(jù)文件的臟緩存塊。據(jù)文件的臟緩存塊。nLRU列表(列表(Least Recently Used):包含所有的):包含所有的空閑緩存塊、命中緩存塊和那些還沒有來得及移入到空閑緩存塊、命中緩存塊和那些還沒有來得及移入到臟緩存塊列表中的臟緩存塊。在該列

10、表中,最近被訪臟緩存塊列表中的臟緩存塊。在該列表中,最近被訪問的緩存塊被移動到列表的頭部,而其他緩存塊向列問的緩存塊被移動到列表的頭部,而其他緩存塊向列表尾部移動,最近最少被訪問的緩存塊最先被移出表尾部移動,最近最少被訪問的緩存塊最先被移出LRU列表,從而保證最頻繁使用的緩存塊始終保存在列表,從而保證最頻繁使用的緩存塊始終保存在內(nèi)存中。內(nèi)存中。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p數(shù)據(jù)高速緩沖區(qū)大小數(shù)據(jù)高速緩沖區(qū)大小 n數(shù)據(jù)高速緩沖區(qū)越大,用戶需要的數(shù)據(jù)在內(nèi)存中的可能性就越大,即緩存命中率越高,從而減少了Oracle訪問硬盤數(shù)據(jù)的次數(shù),提高了數(shù)據(jù)庫系統(tǒng)執(zhí)行的效率。然而,如果數(shù)據(jù)高速緩沖區(qū)的值太大

11、,Oracle就不得不在內(nèi)存中尋找更多的塊來定位所需要的數(shù)據(jù),反而降低了系統(tǒng)性能。顯然需要確定一個合理的數(shù)據(jù)高速緩沖區(qū)大小。 nDB_CACHE_SIZE(標準塊)Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程(2)重做日志緩沖區(qū))重做日志緩沖區(qū)p功能n重做日志緩沖區(qū)用于緩存用戶對數(shù)據(jù)庫進行修改操作重做日志緩沖區(qū)用于緩存用戶對數(shù)據(jù)庫進行修改操作時生成的重做記錄。時生成的重做記錄。 n為了提高工作效率,重做記錄并不是直接寫入重做日為了提高工作效率,重做記錄并不是直接寫入重做日志文件中,而是首先被服務(wù)器進程寫入重做日志緩沖志文件中,而是首先被服務(wù)器進程寫入重做日志緩沖區(qū)中,在一定條件下,再由日志寫入進程(區(qū)中

12、,在一定條件下,再由日志寫入進程(LGWR)把重做日志緩沖區(qū)的內(nèi)容寫入重做日志文件中做永久把重做日志緩沖區(qū)的內(nèi)容寫入重做日志文件中做永久性保存。在歸檔模式下,當重做日志切換時,由歸檔性保存。在歸檔模式下,當重做日志切換時,由歸檔進程(進程(ARCH)將重做日志文件的內(nèi)容寫入歸檔文件)將重做日志文件的內(nèi)容寫入歸檔文件中中 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p重做日志緩沖區(qū)的工作過程 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p重做日志緩沖區(qū)的大小nLOG_BUFFERn較大的重做日志緩沖區(qū),可以減少對重做日志文件寫較大的重做日志緩沖區(qū),可以減少對重做日志文件寫的次數(shù),適合長時間運行的、產(chǎn)生大量重做記錄的

13、事的次數(shù),適合長時間運行的、產(chǎn)生大量重做記錄的事務(wù)。務(wù)。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程()共享池()共享池p功能n共享池用于緩存最近執(zhí)行過的共享池用于緩存最近執(zhí)行過的SQL語句、語句、PL/SQL程程序和數(shù)據(jù)字典信息,是對序和數(shù)據(jù)字典信息,是對SQL語句、語句、PL/SQL程序進程序進行語法分析、編譯、執(zhí)行的區(qū)域。行語法分析、編譯、執(zhí)行的區(qū)域。p組成n庫緩存庫緩存p庫緩存用于緩存已經(jīng)解釋并執(zhí)行過的SQL語句和PL/SQL程序代碼,以提高SQL或PL/SQL程序的執(zhí)行效率。p包括SQL工作區(qū)和PL/SQL工作區(qū) n數(shù)據(jù)字典緩存數(shù)據(jù)字典緩存區(qū)區(qū)p數(shù)據(jù)字典緩存區(qū)保存最常用的數(shù)據(jù)字典信息Oracl

14、e 10g數(shù)據(jù)庫基礎(chǔ)教程p共享池大小 nSHARED_POOL_SIZE n合適的共享池大小,可使編譯過的程序代碼長駐內(nèi)存,合適的共享池大小,可使編譯過的程序代碼長駐內(nèi)存,大大降低重復(fù)執(zhí)行相同的大大降低重復(fù)執(zhí)行相同的SQL語句、語句、PL/SQL程序的系程序的系統(tǒng)開銷,從而提高數(shù)據(jù)庫的性能。統(tǒng)開銷,從而提高數(shù)據(jù)庫的性能。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程()大型池()大型池 p功能n大型池是一個可選的內(nèi)存配置項,主要為大型池是一個可選的內(nèi)存配置項,主要為Oracle多線多線程服務(wù)器、服務(wù)器程服務(wù)器、服務(wù)器I/O進程、數(shù)據(jù)庫備份與恢復(fù)操作、進程、數(shù)據(jù)庫備份與恢復(fù)操作、執(zhí)行具有大量排序操作的執(zhí)行

15、具有大量排序操作的SQL語句、執(zhí)行并行化的數(shù)語句、執(zhí)行并行化的數(shù)據(jù)庫操作等需要大量緩存的操作提供內(nèi)存空間。如果據(jù)庫操作等需要大量緩存的操作提供內(nèi)存空間。如果沒有在沒有在SGA區(qū)中創(chuàng)建大型池,上述操作所需要的緩存區(qū)中創(chuàng)建大型池,上述操作所需要的緩存空間將在共享池或空間將在共享池或PGA中分配,因而影響共享池或中分配,因而影響共享池或PGA的使用效率。的使用效率。p大型池大小nLARGE_POOL_SIZEOracle 10g數(shù)據(jù)庫基礎(chǔ)教程()()Java池池 p功能nJava提供對提供對Java程序設(shè)計的支持,用于存儲程序設(shè)計的支持,用于存儲Java代代碼、碼、Java語句的語法分析表、語句的語

16、法分析表、Java語句的執(zhí)行方案語句的執(zhí)行方案和進行和進行Java程序開發(fā)。程序開發(fā)。pJava池大小nJAVA_POOL_SIZEn通常不小于通常不小于20M,以便安裝,以便安裝Java虛擬機虛擬機 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程(6)流池)流池 p功能n流池是一個可選的內(nèi)存配置項,用于對流的支持。流池是一個可選的內(nèi)存配置項,用于對流的支持。p流池大小nSTREAMS_POOL_SIZE Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.2.2 SGA的管理的管理pSGA組件大小調(diào)整 nDB_CACHE_SIZEnLOG_BUFFERnSHARED_POOL_SIZEnLARGE_POOL_SIZE

17、nJava_POOL_SIZEn STRAMS_POOL_SIZEnSGA_MAX_SIZEp注意n除了除了SGA_MAX_SIZE不能修改外,其他幾個參數(shù)可不能修改外,其他幾個參數(shù)可以使用以使用ALTER SYSTEM語句進行動態(tài)調(diào)整。語句進行動態(tài)調(diào)整。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程pSGA自動管理 n在在Oracle 10g中,通過設(shè)置初始化參數(shù)中,通過設(shè)置初始化參數(shù)SGA_TARGET,可以實現(xiàn)對,可以實現(xiàn)對SGA中的數(shù)據(jù)高速緩沖中的數(shù)據(jù)高速緩沖區(qū)、共享池、大型池、區(qū)、共享池、大型池、Java池和流池的自動管理,即池和流池的自動管理,即這幾個組件的內(nèi)存調(diào)整不需要這幾個組件的內(nèi)存調(diào)整不

18、需要DBA來干預(yù),系統(tǒng)自動來干預(yù),系統(tǒng)自動進行調(diào)整。但是對于日志緩沖區(qū)、非標準塊的數(shù)據(jù)高進行調(diào)整。但是對于日志緩沖區(qū)、非標準塊的數(shù)據(jù)高速緩沖區(qū)、保留池、回收池等其他區(qū)域的調(diào)整還需要速緩沖區(qū)、保留池、回收池等其他區(qū)域的調(diào)整還需要DBA使用使用ALTER SYSTEM語句手動進行調(diào)整。語句手動進行調(diào)整。Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p設(shè)置SGA自動管理的方法n計算參數(shù)計算參數(shù)SGA_TARGET的大小的大小 pSELECT ( (SELECT SUM(value) FROM V$SGA) -p (SELECT CURRENT_SIZE FROM pV$SGA_DYNAMIC_FREE_MEMO

19、RY) /1024/1024 |MB SGA_TARGET FROM DUAL; n設(shè)置參數(shù)設(shè)置參數(shù)SGA_TARGETp通過ALTER SYSTEM語句設(shè)置參數(shù)SGA_TARGET的值,該值可以是(1)中計算出來的結(jié)果,也可以是當前SGA大小與SGA_MAX_SIZE之間的某個值。例如 n將將SGA中與自動管理相關(guān)的組件大小設(shè)置為中與自動管理相關(guān)的組件大小設(shè)置為0 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程nALTER SYSTEM SET SHARED_POOL_SIZE=0;nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER SYSTEM SET J

20、ava_POOL_SIZE=0;nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER SYSTEM SET STREAMS_POOL_SIZE=0;p如果要取消自動管理,只需將參數(shù)SGA_TARGET設(shè)置為0即可。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.2.3 PGAp功能nPGA 是為每一個與是為每一個與Oracle數(shù)據(jù)庫連接的用戶保留的內(nèi)存區(qū),主數(shù)據(jù)庫連接的用戶保留的內(nèi)存區(qū),主要存儲該連接使用的變量信息和與用戶進程交換的信息。是非共要存儲該連接使用的變量信息和與用戶進程交換的信息。是非共享的,只有服務(wù)進程本身才能訪問它自己的享的,只有服務(wù)進程本身

21、才能訪問它自己的PGA區(qū)區(qū)p組成n由排序區(qū)、會話區(qū)、游標區(qū)以及堆棧區(qū)組成由排序區(qū)、會話區(qū)、游標區(qū)以及堆棧區(qū)組成 n排序區(qū)主要用于存放排序操作所產(chǎn)生的臨時數(shù)據(jù),其大小由初始排序區(qū)主要用于存放排序操作所產(chǎn)生的臨時數(shù)據(jù),其大小由初始化參數(shù)化參數(shù)SORT_AREA_SIZE定義;會話區(qū)用于保存用戶會話所定義;會話區(qū)用于保存用戶會話所具有的權(quán)限、角色、性能統(tǒng)計信息;游標區(qū)用于存放執(zhí)行游標操具有的權(quán)限、角色、性能統(tǒng)計信息;游標區(qū)用于存放執(zhí)行游標操作時所產(chǎn)生的數(shù)據(jù);堆棧區(qū)用于保存會話過程中的綁定變量、會作時所產(chǎn)生的數(shù)據(jù);堆棧區(qū)用于保存會話過程中的綁定變量、會話變量等信息。話變量等信息。Oracle 10g數(shù)

22、據(jù)庫基礎(chǔ)教程Userprocess StackspaceSession informationsort area, cursor informationSGAShared SQL areasSGASessioninformation PGA Dedicated server Shared server ServerprocessShared SQL areasStackspacesort area, cursor informationOracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.2.4在在OEM中管理數(shù)據(jù)庫實例的內(nèi)存結(jié)構(gòu)中管理數(shù)據(jù)庫實例的內(nèi)存結(jié)構(gòu)Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.3 Oracle

23、后臺進程后臺進程pOracle進程概述pOracle后臺進程 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.3.1 Oracle進程概述進程概述p進程的概念n進程是操作系統(tǒng)中一個獨立的可以調(diào)度的活動,用于進程是操作系統(tǒng)中一個獨立的可以調(diào)度的活動,用于完成指定的任務(wù)。進程與程序的區(qū)別在于:完成指定的任務(wù)。進程與程序的區(qū)別在于:n進程是動態(tài)的概念,即動態(tài)創(chuàng)建,完成任務(wù)后立即消進程是動態(tài)的概念,即動態(tài)創(chuàng)建,完成任務(wù)后立即消亡;而程序是一個靜態(tài)實體。亡;而程序是一個靜態(tài)實體。n進程強調(diào)執(zhí)行過程,而程序僅僅是指令的有序集合。進程強調(diào)執(zhí)行過程,而程序僅僅是指令的有序集合。p進程的類型n用戶進程用戶進程n服務(wù)器進程

24、服務(wù)器進程n后臺進程后臺進程 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p用戶進程 n當用戶連接數(shù)據(jù)庫執(zhí)行一個應(yīng)用程序時,會創(chuàng)建一個用戶進程,來完成用戶所指定的任務(wù)。 p服務(wù)器進程 n服務(wù)器進程由Oracle自身創(chuàng)建,用于處理連接到數(shù)據(jù)庫實例的用戶進程所提出的請求。用戶進程只有通過服務(wù)器進程才能實現(xiàn)對數(shù)據(jù)庫的訪問和操作。n服務(wù)器進程分為專用服務(wù)器進程和共享服務(wù)器進程兩種。n服務(wù)器進程主要完成以下任務(wù):p解析并執(zhí)行用戶提交的解析并執(zhí)行用戶提交的SQL語句和語句和PL/SQL程序;程序;p在在SGA的數(shù)據(jù)高速緩沖區(qū)中搜索用戶進程所要訪問的數(shù)據(jù),如果數(shù)的數(shù)據(jù)高速緩沖區(qū)中搜索用戶進程所要訪問的數(shù)據(jù),如果數(shù)據(jù)不

25、在緩沖區(qū)中,則需要從硬盤數(shù)據(jù)文件中讀取所需的數(shù)據(jù),再將它據(jù)不在緩沖區(qū)中,則需要從硬盤數(shù)據(jù)文件中讀取所需的數(shù)據(jù),再將它們復(fù)制到緩沖區(qū)中;們復(fù)制到緩沖區(qū)中;p將用戶改變數(shù)據(jù)庫的操作信息寫入日志緩沖區(qū)中。將用戶改變數(shù)據(jù)庫的操作信息寫入日志緩沖區(qū)中。 p將查詢或執(zhí)行后的結(jié)果數(shù)據(jù)返回給用戶進程。將查詢或執(zhí)行后的結(jié)果數(shù)據(jù)返回給用戶進程。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p后臺進程后臺進程 n后臺進程作用后臺進程作用p為了保證為了保證Oracle數(shù)據(jù)庫在任意一個時刻可以處理多用戶的并數(shù)據(jù)庫在任意一個時刻可以處理多用戶的并發(fā)請求,進行復(fù)雜的數(shù)據(jù)操作,而且還要優(yōu)化系統(tǒng)性能,發(fā)請求,進行復(fù)雜的數(shù)據(jù)操作,而且還要

26、優(yōu)化系統(tǒng)性能,Oracle數(shù)據(jù)庫起用了一些相互獨立的附加進程,稱為后臺進數(shù)據(jù)庫起用了一些相互獨立的附加進程,稱為后臺進程。服務(wù)器進程在執(zhí)行用戶進程請求時,調(diào)用后臺進程來實現(xiàn)程。服務(wù)器進程在執(zhí)行用戶進程請求時,調(diào)用后臺進程來實現(xiàn)對數(shù)據(jù)庫的操作。對數(shù)據(jù)庫的操作。 n后臺進程主要完成以下任務(wù):后臺進程主要完成以下任務(wù):p在內(nèi)存與磁盤之間進行在內(nèi)存與磁盤之間進行I/O操作;操作;p監(jiān)視各個服務(wù)器進程狀態(tài);監(jiān)視各個服務(wù)器進程狀態(tài);p協(xié)調(diào)各個服務(wù)器進程的任務(wù);協(xié)調(diào)各個服務(wù)器進程的任務(wù);p維護系統(tǒng)性能和可靠性等。維護系統(tǒng)性能和可靠性等。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程7.3.2Oracle后臺進程后臺進

27、程pDBWR 數(shù)據(jù)庫寫入進程pLGWR 日志寫入進程pCKPT 檢查點進程pSMON 系統(tǒng)監(jiān)控進程pPMON 進程監(jiān)控進程pARCH 歸檔進程pRECO 恢復(fù)進程pLCKn 封鎖進程pDnnn 調(diào)度進程pSnnn 共享服務(wù)器進程Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程(1)DBWR(數(shù)據(jù)庫寫入進程)(數(shù)據(jù)庫寫入進程)n功能: 數(shù)據(jù)庫寫入進程負責把數(shù)據(jù)高速緩沖區(qū)中已經(jīng)被修改過的數(shù)據(jù)(“臟”緩存塊)成批寫入數(shù)據(jù)文件中永久保存,同時使數(shù)據(jù)高速緩沖區(qū)有更多的空閑緩存塊,保證服務(wù)器進程將所需要的數(shù)據(jù)從數(shù)據(jù)文件讀取到數(shù)據(jù)高速緩沖區(qū)中,提高緩存命中率。InstanceSGADatabaseBufferCacheD

28、BWnControl filesData files Redo log filesDatabaseOracle 10g數(shù)據(jù)庫基礎(chǔ)教程p啟動DBWR進程n執(zhí)行執(zhí)行INSERT、UPDATE等操作時等操作時 ,沒有足夠的空,沒有足夠的空閑塊閑塊n當檢查點發(fā)生時,將啟動當檢查點發(fā)生時,將啟動DBWR進程進程 n當數(shù)據(jù)緩存的當數(shù)據(jù)緩存的LRU列表的長度達到初始化列表的長度達到初始化 DB_BLOCK_WRITE_BATCH指定值的一半時指定值的一半時 n若發(fā)生超時(大約若發(fā)生超時(大約3秒未被啟動)秒未被啟動) Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程LGWR(日志寫入進程)(日志寫入進程)p功能n日志寫入

29、進程負責把日志寫入進程負責把重做日志緩沖區(qū)的數(shù)重做日志緩沖區(qū)的數(shù)據(jù)寫入重做日志文件據(jù)寫入重做日志文件中永久保存。中永久保存。n數(shù)據(jù)寫入進程在工作數(shù)據(jù)寫入進程在工作之前,需要了解日志之前,需要了解日志寫入進程是否已經(jīng)把寫入進程是否已經(jīng)把相關(guān)的日志緩沖區(qū)中相關(guān)的日志緩沖區(qū)中記載的數(shù)據(jù)寫入硬盤記載的數(shù)據(jù)寫入硬盤中,如果相關(guān)的日志中,如果相關(guān)的日志緩沖區(qū)中的記錄還沒緩沖區(qū)中的記錄還沒有被寫入,有被寫入,DBWR會會通知通知LGWR完成相應(yīng)完成相應(yīng)的工作,然后的工作,然后DBWR才開始寫入才開始寫入。InstanceSGADBWnRedo LogBufferControl filesData files

30、 Redo log filesLGWRDatabaseOracle 10g數(shù)據(jù)庫基礎(chǔ)教程p啟動LGWR進程n用戶通過用戶通過COMMIT語句提交當前事務(wù)語句提交當前事務(wù)n重做日志緩存被寫滿三分之一重做日志緩存被寫滿三分之一nDBWR進程開始將臟緩存塊寫入數(shù)據(jù)文件進程開始將臟緩存塊寫入數(shù)據(jù)文件n每隔每隔3秒,即發(fā)生一次超時,將啟動秒,即發(fā)生一次超時,將啟動LGWR p事務(wù)提交機制 n快速提交快速提交n組提交組提交 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程CKPT(檢查點進程)(檢查點進程)p檢查點概念 檢查點是一個事件,當該事件發(fā)生時(每隔一段時間發(fā)生),DBWR進程把數(shù)據(jù)高速緩沖區(qū)中臟緩存塊寫入數(shù)據(jù)

31、文件中,同時Oracle將對數(shù)據(jù)庫控制文件和數(shù)據(jù)文件的頭部的同步序號進行更新,以記錄下當前的數(shù)據(jù)庫結(jié)構(gòu)和狀態(tài),保證數(shù)據(jù)的同步。InstanceSGADWW0Redo LogBufferLGWRInstanceSGADBWnLGWRCKPTControl filesData files Redo log filesOracle 10g數(shù)據(jù)庫基礎(chǔ)教程pCKPT進程的作用n更新控制文件與數(shù)據(jù)文件的頭部,使其同步更新控制文件與數(shù)據(jù)文件的頭部,使其同步n觸發(fā)觸發(fā)DBWR進程,將臟緩存塊寫入數(shù)據(jù)文件進程,將臟緩存塊寫入數(shù)據(jù)文件p檢查點的級別 n數(shù)據(jù)庫檢查點:每一次日志切換時,執(zhí)行一個數(shù)據(jù)庫檢查點,數(shù)據(jù)庫檢

32、查點:每一次日志切換時,執(zhí)行一個數(shù)據(jù)庫檢查點,DBWR進程將數(shù)據(jù)高速緩沖區(qū)中的臟緩存塊寫入數(shù)據(jù)文件中;進程將數(shù)據(jù)高速緩沖區(qū)中的臟緩存塊寫入數(shù)據(jù)文件中;n表空間檢查點:當一個表空間設(shè)置為脫機狀態(tài)時,執(zhí)行一個表空表空間檢查點:當一個表空間設(shè)置為脫機狀態(tài)時,執(zhí)行一個表空間檢查點,間檢查點,DBWR進程把數(shù)據(jù)高速緩存中與該表空間相關(guān)的臟緩進程把數(shù)據(jù)高速緩存中與該表空間相關(guān)的臟緩存塊寫入數(shù)據(jù)文件中。存塊寫入數(shù)據(jù)文件中。n時間檢查點:可以設(shè)置以時間為基礎(chǔ)的檢查點,每隔一段時間執(zhí)時間檢查點:可以設(shè)置以時間為基礎(chǔ)的檢查點,每隔一段時間執(zhí)行一次檢查點。需要為檢查點設(shè)置一個合適的執(zhí)行間隔,間隔太行一次檢查點。需要

33、為檢查點設(shè)置一個合適的執(zhí)行間隔,間隔太短,將會產(chǎn)生過多的硬盤短,將會產(chǎn)生過多的硬盤I/O操作;間隔太長,數(shù)據(jù)庫的恢復(fù)將操作;間隔太長,數(shù)據(jù)庫的恢復(fù)將耗費太多時間。耗費太多時間。 Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程p檢查點事件的觸發(fā)n每一個日志切換時每一個日志切換時n當實例以如下方式關(guān)閉時當實例以如下方式關(guān)閉時pNORMAL,TRANSACTION,IMMEDIATE n當使用當使用 ALTER TABLESPACE OFFLINE NORMAL|READ ONLY|BEGIN BACKUP ,作,作用于某個數(shù)據(jù)文件上的檢查點發(fā)生時用于某個數(shù)據(jù)文件上的檢查點發(fā)生時.n設(shè)置以時間為基礎(chǔ)的檢查點事件

34、設(shè)置以時間為基礎(chǔ)的檢查點事件n當數(shù)據(jù)庫管理員需要手工操作時當數(shù)據(jù)庫管理員需要手工操作時pALTER SYSTEM CHECKPOINTOracle 10g數(shù)據(jù)庫基礎(chǔ)教程p與檢查點的相關(guān)初始化參數(shù) nLOG_CHECKPOINT_INTERVALp用來指定重做日志文件每寫多少操作系統(tǒng)塊發(fā)生一次檢查點事件p例如重做日志文件1M,系統(tǒng)操作塊為1K:設(shè)置此參數(shù)為500,則重做日志文件寫入500K時,檢查點事件發(fā)生nLOG_CHECKPOINT_TIMEOUTp用來指定每隔多長時間發(fā)生一次檢查點p如1800,表示每隔1800秒,如果為0,表示此參數(shù)無效EnLOG_CHECKPOINT_TO_ALERTp

35、用于設(shè)置是否將檢查點信息記錄到警告日志中數(shù)Oracle 10g數(shù)據(jù)庫基礎(chǔ)教程SMON(系統(tǒng)監(jiān)控進程)(系統(tǒng)監(jiān)控進程)p功能n在實例啟動時負責對在實例啟動時負責對數(shù)據(jù)庫進行恢復(fù);數(shù)據(jù)庫進行恢復(fù);n回收不再使用的臨時回收不再使用的臨時空間。空間。n將各個表空間的空閑將各個表空間的空閑碎片合并(表空間的碎片合并(表空間的存儲參數(shù)存儲參數(shù)PCTINCREASE不不為為0時)。時)。InstanceSGASMONControl filesData files Redo log filesInstanceSGASMONDatabaseOracle 10g數(shù)據(jù)庫基礎(chǔ)教程PMON(進程監(jiān)控進程)(進程監(jiān)控進程)p功能n負責恢復(fù)失敗的用戶進程負責恢復(fù)失敗的用戶進程或服務(wù)器進程,并且釋放或服務(wù)器進程,并且釋放進程所占用的資源;進程所占用的資源;n清除非正常中斷的用戶進清除非正常中斷的用戶進程留下的孤兒會話,回退程留下的孤兒會話,回退未提交的事務(wù),釋放會話未提交的事務(wù),釋放會話所占用的鎖、所占用的鎖、SGA、PGA等資源;等資源;n監(jiān)控調(diào)度進程和服務(wù)器進監(jiān)控調(diào)度進程和服務(wù)器進程的狀態(tài),如果它們失敗,程的狀態(tài),如果它們失敗,則嘗試重新啟動它們,并則嘗試重新啟動它們,并釋放它們所占用的各種資釋放它們所占用的各種資源。源。Ins

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論