Oracle進(jìn)程結(jié)構(gòu)簡(jiǎn)介
Oracle進(jìn)程結(jié)構(gòu)對(duì)于很多剛剛接觸Oracle數(shù)據(jù)庫(kù)的新人來(lái)說(shuō)還是比較陌生的概念,下面就為你詳細(xì)介紹Oracle進(jìn)程結(jié)構(gòu)方面的知識(shí),供您參考。
進(jìn)程是操作系統(tǒng)中的一種機(jī)制,它可執(zhí)行一系列的操作步。在有些操作系統(tǒng)中使用作業(yè)(JOB)或任務(wù)(TASK)的術(shù)語(yǔ)。一個(gè)進(jìn)程通常有它自己的專(zhuān)用存儲(chǔ)區(qū)。ORACLE進(jìn)程的體系結(jié)構(gòu)設(shè)計(jì)使性能***。
ORACLE實(shí)例有兩種類(lèi)型:?jiǎn)芜M(jìn)程實(shí)例和多進(jìn)程實(shí)例。
單進(jìn)程O(píng)RACLE(又稱(chēng)單用ORACLE)是一種數(shù)據(jù)庫(kù)系統(tǒng),一個(gè)進(jìn)程執(zhí)行全部ORACLE代碼。由于ORACLE部分和客戶應(yīng)用程序不能分別以進(jìn)程執(zhí)行,所以O(shè)RACLE的代碼和用戶的數(shù)據(jù)庫(kù)應(yīng)用是單個(gè)進(jìn)程執(zhí)行。
在單進(jìn)程環(huán)境下的ORACLE 實(shí)例,僅允許一個(gè)用戶可存取。例如在MS-DOS上運(yùn)行ORACLE 。
多進(jìn)程O(píng)RACLE實(shí)例(又稱(chēng)多用戶ORACLE)使用多個(gè)進(jìn)程來(lái)執(zhí)行ORACLE的不同部分 ,對(duì)于每一個(gè)連接的用戶都有一個(gè)進(jìn)程。
在多進(jìn)程系統(tǒng)中,進(jìn)程分為兩類(lèi):用戶進(jìn)程和ORACLE進(jìn)程。當(dāng)一用戶運(yùn)行一應(yīng)用程序,如PRO*C程序或一個(gè)ORACLE工具(如SQL*PLUS),為用戶運(yùn)行的應(yīng)用建立一個(gè)用戶進(jìn)程。ORACLE進(jìn)程又分為兩類(lèi):服務(wù)器進(jìn)程和后臺(tái)進(jìn)程。服務(wù)器進(jìn)程用于處理連接到該實(shí)例的用戶進(jìn)程的請(qǐng)求。當(dāng)應(yīng)用和ORACELE是在同一臺(tái)機(jī)器上運(yùn)行,而不再通過(guò)網(wǎng)絡(luò),一般將用戶進(jìn)程和它相應(yīng)的服務(wù)器進(jìn)程組合成單個(gè)的進(jìn)程,可降低系統(tǒng)開(kāi)銷(xiāo)。然而,當(dāng)應(yīng)用和ORACLE運(yùn)行在不同的機(jī)器上時(shí),用戶進(jìn)程經(jīng)過(guò)一個(gè)分離服務(wù)器進(jìn)程與ORACLE通信。它可執(zhí)行下列任務(wù):
對(duì)應(yīng)用所發(fā)出的SQL語(yǔ)句進(jìn)行語(yǔ)法分析和執(zhí)行。
從磁盤(pán)(數(shù)據(jù)文件)中讀入必要的數(shù)據(jù)塊到SGA的共享數(shù)據(jù)庫(kù)緩沖區(qū)(該塊不在緩沖區(qū)時(shí))。
將結(jié)果返回給應(yīng)用程序處理。
系統(tǒng)為了使性能***和協(xié)調(diào)多個(gè)用戶,在多進(jìn)程系統(tǒng)中使用一些附加進(jìn)程,稱(chēng)為后臺(tái)進(jìn)程。在許多操作系統(tǒng)中,后臺(tái)進(jìn)程是在實(shí)例啟動(dòng)時(shí)自動(dòng)地建立。一個(gè)ORACLE實(shí)例可以有許多后臺(tái)進(jìn)程,但它們不是一直存在。
【編輯推薦】