Oracle系統(tǒng)結(jié)構(gòu)中Oracle 實(shí)例的概述
我們今天主要和大家分享的是Oracle系統(tǒng)結(jié)構(gòu),即Oracle 實(shí)例,包括內(nèi)存結(jié)構(gòu)和后臺(tái)進(jìn)程的相關(guān)內(nèi)容的描述,如果你對(duì)Oracle系統(tǒng)結(jié)構(gòu)即Oracle 實(shí)例相關(guān)的實(shí)際操作有興趣的話(huà),你就可以對(duì)以下的文章點(diǎn)擊觀看了。
1、內(nèi)存結(jié)構(gòu):
(1)Oracle系統(tǒng)結(jié)構(gòu)全局區(qū):System Global Area(SGA) 是一塊巨大的共享內(nèi)存區(qū)域,他被看做是Oracle 數(shù)據(jù)庫(kù)的一個(gè)大緩沖池,這里的數(shù)據(jù)可以被Oracle的各個(gè)進(jìn)程共用。其大小可以通過(guò)如下語(yǔ)句查看:
- select * from v$sga;
(2)共享池(Shared pool)
包括SQL語(yǔ)句緩沖(Library Cache)和數(shù)據(jù)字典緩沖區(qū)(Data Dictionary Cache)
(3)塊緩沖區(qū)高速緩存(Database Buffer Cache)
(4)重做日志緩沖區(qū)(Redo log buffer)
(5)Java程序緩沖區(qū)(Java Pool)
Java 的程序區(qū),Oracle 8I 以后,Oracle 在內(nèi)核中加入了對(duì)Java的支持。該程序緩沖區(qū)就是為Java 程序保留的。如果不用Java程序沒(méi)有必要改變?cè)摼彌_區(qū)的默認(rèn)大小。
(6)大池(Large Pool)
大池的得名不是因?yàn)榇螅且驗(yàn)樗脕?lái)分配大塊的內(nèi)存,處理比共享池更大的內(nèi)存,在8.0開(kāi)始引入。
2、后臺(tái)進(jìn)程(Background process)
(1)DBWR(數(shù)據(jù)文件寫(xiě)入進(jìn)程):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存寫(xiě)入數(shù)據(jù)文件
(2)LGWR(日志文件寫(xiě)入進(jìn)程):將重做日志緩沖區(qū)中的更改寫(xiě)入在線(xiàn)重做日志文件
(3)SMON(系統(tǒng)監(jiān)護(hù)進(jìn)程):檢查數(shù)據(jù)庫(kù)的一致性如有必要還會(huì)在數(shù)據(jù)庫(kù)打開(kāi)時(shí)啟動(dòng)數(shù)據(jù)庫(kù)的恢復(fù)
(4)PMON(用戶(hù)進(jìn)程監(jiān)護(hù)進(jìn)程):負(fù)責(zé)在一個(gè)Oracle 進(jìn)程失敗時(shí)清理資源
(5)CKPT(檢查點(diǎn)進(jìn)程,同步數(shù)據(jù)文件, 日志文件,控制文件):
負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改***地記錄在數(shù)據(jù)庫(kù)中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫(kù)狀態(tài)信息。該進(jìn)程在檢查點(diǎn)出現(xiàn)時(shí),對(duì)全部數(shù)據(jù)文件的標(biāo)題進(jìn)行修改,指示該檢查點(diǎn)。在通常的情況下,該任務(wù)由LGWR執(zhí)行。然而,如果檢查點(diǎn)明顯地降低Oracle系統(tǒng)結(jié)構(gòu)性能時(shí),可使CKPT進(jìn)程運(yùn)行,將原來(lái)由LGWR進(jìn)程執(zhí)行的檢查點(diǎn)的工作分離出來(lái),
由CKPT進(jìn)程實(shí)現(xiàn)。對(duì)于許多應(yīng)用情況,CKPT進(jìn)程是不必要的。只有當(dāng)數(shù)據(jù)庫(kù)有許多數(shù)據(jù)文件,LGWR在檢查點(diǎn)時(shí)明顯地降低性能才使CKPT運(yùn)行。CKPT進(jìn)程不將塊寫(xiě)入磁盤(pán),該工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 參數(shù)控制CKPT進(jìn)程的使能或使不能。缺省時(shí)為FALSE,即為使不能。
(6)歸檔進(jìn)程:在每次日志切換時(shí)把已滿(mǎn)的日志組進(jìn)行備份或歸檔
(7)服務(wù)進(jìn)程:用戶(hù)進(jìn)程服務(wù)。
(8)用戶(hù)進(jìn)程:在客戶(hù)端,負(fù)責(zé)將用戶(hù)的SQL語(yǔ)句傳遞給服務(wù)進(jìn)程,并從服務(wù)器段拿回查詢(xún)數(shù)據(jù)。
二、Oracle數(shù)據(jù)庫(kù)的組成——物理操作Oracle系統(tǒng)結(jié)構(gòu)文件的集合。
主要包括以下幾種。
1、控制文件(參數(shù)文件init.ora記錄了控制文件的位置)
2、數(shù)據(jù)文件(數(shù)據(jù)文件的詳細(xì)信息記載在控制文件中)
可以通過(guò)如下方式查看數(shù)據(jù)文件
- select name from v$datafile;
i.Oracle 系統(tǒng)結(jié)構(gòu)數(shù)據(jù)文件(system_01.dbf)
ii. 回滾段文件(rbs_01.dbf)
iii. 臨時(shí)數(shù)據(jù)文件(temp_01.dbf)
iv. 用戶(hù)數(shù)據(jù)文件(/applsys_data_01.dbf ,applsys_indx_01.dbf)
3、重做日志文件(聯(lián)機(jī)重做日志)
i. 增加日志組
ii. 增大日志文件成員大小
通過(guò)v$log可以查看日志組,v$logfile可以查看具體的成員文件。
(1)查看數(shù)據(jù)文件: SQL> select * from v$datafile;
(2)查看控制文件: SQL> select * from v$controlfile;
(3)查看日志文件: SQL> select * from v$logfile;
4、歸檔日志文件
5、初始化參數(shù)文件
6、其他文件
i . 密碼文件
用于Oracle 的具有sysdba權(quán)限用戶(hù)的認(rèn)證.
ii. 日志文件
報(bào)警日志文件(alert.log或alrt.ora)
后臺(tái)或用戶(hù)跟蹤文件
以上的相關(guān)內(nèi)容就是對(duì)Oracle系統(tǒng)結(jié)構(gòu)的部分內(nèi)容的介紹,望你能有所收獲。
【編輯推薦】