新聞中心
Oracle數(shù)據(jù)庫的兩種連接方式:專用服務(wù)器連接 和 共享服務(wù)器連接
按需設(shè)計網(wǎng)站可以根據(jù)自己的需求進行定制,成都網(wǎng)站制作、成都做網(wǎng)站構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司成都網(wǎng)站制作、成都做網(wǎng)站的運用實際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實際意義
一、Oracle數(shù)據(jù)庫組成:
oracle server 是由:實例和數(shù)據(jù)庫組成;
oracle數(shù)據(jù)庫由:數(shù)據(jù)文件 重做日志文件 臨時文件 控制文件 參數(shù)文件 密碼文件等組成 (其中最重要的就是數(shù)據(jù)文件和重做日志文件)
oracle實例是由:系統(tǒng)全局區(qū)SGA的共享內(nèi)存塊以及大量后臺進程構(gòu)成。
SGA包括:數(shù)據(jù)庫緩沖區(qū)緩存、日志緩沖區(qū)、共享池、還有(大池、Java池、流池)
后臺進程:DBWR(數(shù)據(jù)庫寫進程);LGWR(日志寫進程);CKPT(檢查點);SMON(系統(tǒng)監(jiān)控進程);PMON(進程監(jiān)控);ARCH(歸檔進程);RECO恢復(fù);LCKN封鎖;等
PGA:用戶會話還需要服務(wù)器端的內(nèi)存,此內(nèi)存不共享,也稱為程序全局區(qū)PGA,每個會話都有自己的PGA。
-----從Oracle12C起,全局臨時表所產(chǎn)生的undo可以存放在臨時表空間中。
《控制文件》
控制文件是一個相當小的文件(極端情況下能增長到64MB),它儲存了數(shù)據(jù)庫需要的一些文件的位置,還記錄了一些其他信息,如:檢查點的有關(guān)信息,數(shù)據(jù)庫名、數(shù)據(jù)庫創(chuàng)建是時間戳、歸檔重做日志的歷史以及RMAN信息等。
《重做日志》
重做日志分為在線重做日志redo和歸檔重做日志。
online Redo log files--在線重做日志,又稱聯(lián)機重做日志,指Oracle以SQL腳本的形式實時記錄數(shù)據(jù)庫的數(shù)據(jù)更新,換句話說,實時保存已執(zhí)行的SQL腳本到在線日志文件中(按特定的格式)。
注意:在線重做日志最重要的目標就是在實例失敗后我們能夠恢復(fù)已經(jīng)提交的事務(wù);
Archive Redo log files--歸檔重做日志,簡稱歸檔日志,指當條件滿足時,Oracle將在線重做日志以文件形式保存到硬盤(持久化)。
SGA和PGA
PGA是用戶進程區(qū),也可以這么理解,如果并發(fā)500 那么就需要分配500M的PGA
PGA是進程專用的內(nèi)存區(qū)
《重做緩沖區(qū)》
---實際上,LGWR進程會在以下任何一種情況發(fā)生時把緩沖區(qū)數(shù)據(jù)刷新輸出到磁盤:
1、每3秒一次
2、發(fā)生提交或回滾請求時
3、要求LGWR切換日志文件時
4、重做緩沖區(qū)用滿三分之一,或者緩存重做日志數(shù)據(jù)達到1MB時;
數(shù)據(jù)需要寫到在線重做日志時,在它們被寫到磁盤之前,需要在重做緩沖區(qū)中臨時緩存這些數(shù)據(jù);
重做日志緩沖區(qū)的默認大小是由log_buffer參數(shù)控制;
《塊緩沖區(qū)緩存block buffer cache》
Oracle將數(shù)據(jù)庫塊寫到磁盤之前,或從磁盤上讀取數(shù)據(jù)庫塊之后,就會把這些數(shù)據(jù)庫塊存儲在塊緩沖區(qū)緩存中;
塊緩沖區(qū)緩存不能太小,要不然 我們的查詢就會永遠也執(zhí)行不完。也不能太大,因為又會搶占其他進程的資源;
數(shù)據(jù)庫中只有一種塊大小:2KB 4KB 8KB 16KB 32KB中的一種;如果要修改數(shù)據(jù)庫塊,在安裝數(shù)據(jù)庫的時候 在init.ora文件中指定:db_block_size=16384 即可,16384是16K
《共享池shared pool》
共享池就是Oracle緩存一些程序數(shù)據(jù)的地方,在解析一個查詢時,解析得到的結(jié)果就緩存在那里。在完成解析整個查詢的任務(wù)之前,Oracle會搜索共享池,看看這個工作是否完成;
共享池的特點是有大量小的內(nèi)存塊,一般為4KB或更小。我們的目標是使用小塊的內(nèi)存來避免碎片問題,如果大小各不同 很可能出現(xiàn)碎片問題。
《大池large pool》
大池是用于被大塊內(nèi)存的分配,而共享池無法處理這么大的內(nèi)存塊。
《JAVA池》
JAVA池目的是支持在數(shù)據(jù)庫中運行JAVA,如果用JAVA編寫一個存儲過程,Oracle會在處理代碼時使用Java池的內(nèi)存。
《流池》
流池被用來緩沖隊列消息,而且流池對于:goldengate streams等很重要,這些場景必須要有流池;
---SGA自動管理時,statistics_level參數(shù)必須被設(shè)置為typical或者all,因為如果統(tǒng)計信息收集功能沒有啟用,數(shù)據(jù)庫就沒有相關(guān)的歷史記錄來判斷各個組件所需的內(nèi)存大小。
二、Oracle數(shù)據(jù)庫進程
一個Oracle實例主要有3類進程:服務(wù)器進程 后臺進程 從屬進程
---通過v$bgprocess視圖可以查看數(shù)據(jù)庫所有可能的后臺進程
select paddr,name,description from v$bgprocess order by paddr desc;
通過查詢v$process中pname不為空的記錄,來查看系統(tǒng)中正在運行的后臺進程;
注意:后臺進程也分為兩類:一類是有特定任務(wù)的進程,另一種是能夠執(zhí)行各種其他任務(wù)的進程(如工具進程)
---在12C中查看啟動的后臺進程:
select paddr,name,description from v$bgprocess where paddr <>'00' order by paddr desc;
(在12C中將啟動大約22個后臺進程,而在11GR2中 只有17個后臺進程)
1、PMON進程監(jiān)視器
進程監(jiān)視器(process monitor)負責在連接出現(xiàn)異常終止后進行清理工作。(例如:一個專用服務(wù)器失敗或者出于某種原因被結(jié)束掉,就要由PMON進程負責善后并釋放資源。PMON會回滾未提交的工作,釋放鎖,并釋放之前為失敗進程分配的SGA資源)
注意:在Oracle12C之前,PMON還負責處理注冊監(jiān)聽的任務(wù),從Oracle12C開始 改由專門的監(jiān)聽注冊后臺進程來注冊實例和服務(wù)到監(jiān)聽器
2、LREG監(jiān)聽注冊進程
從Oracle12C開始,LREG進程負責將數(shù)據(jù)庫實例和服務(wù)注冊到監(jiān)聽器中;
3、SMON系統(tǒng)監(jiān)視器
SMON進程用來做所有系統(tǒng)級的任務(wù)。SMON所做的工作包括如下幾種:
①:清理臨時表空間:(并不是說完全不需要手動清理的)
②:合并空閑表空間:(只有在使用數(shù)據(jù)字典的表空間適用)
③:針對原來不可用的文件恢復(fù)活動的事務(wù):
④:執(zhí)行RAC中失敗節(jié)點的實例恢復(fù):
⑤:清理OBJ$:(OBJ$是一個底層的數(shù)據(jù)字典,數(shù)據(jù)庫中幾乎每個對象(表 索引 觸發(fā)器 視圖等)都在其中對應(yīng)一個條目,很多時候,有些條目表示的可能是已經(jīng)刪除的對象,或者表示not there不在哪里的對象)
⑥:管理撤銷段:SMON會負責實施撤銷段的自動上下線以及收縮撤銷段;
⑦:回滾段離線:
4、RECO分布式數(shù)據(jù)庫恢復(fù)
reco有一個非常核心的任務(wù):由于兩階段提交(2pc)期間的崩潰或鏈接丟失等原因,有些事務(wù)可能會保持在準備狀態(tài),這個進程就是要恢復(fù)這些事務(wù);
5、CKPT檢查點進程
實施檢查點主要是DBWn進程的工作,CKPT僅僅是協(xié)助實際運行檢查點的進程,來更新數(shù)據(jù)文件的文件頭;
6、DBWn數(shù)據(jù)庫塊寫入器
數(shù)據(jù)庫塊寫入器是負責將臟塊寫入磁盤的后臺進程;
DBWn的性能至關(guān)重要,如果它寫出塊的速度不夠快,不能很快的釋放緩沖區(qū),就會看到free buffer waits和write complete waits這兩個等待事件的數(shù)量和等待事件在增加;其實我們可以配置多個DBWn進程,實際上在Oracle11G可以配置36個,在Oracle12C則多達100個;
select name,description from v$bgprocess where description like 'db writer process%'; ----來查看數(shù)據(jù)庫有幾個DBWn進程
7、LGWR日志寫入器:
LGWR進程負責將SGA中重做日志緩沖區(qū)的內(nèi)容刷新輸出到磁盤;
8、ARCn歸檔進程
該進程的任務(wù)是:當LGWR將一個在線重做日志文件填滿時,就將其復(fù)制到另一個位置,此后這些歸檔的重做日志文件就可以用于完成介質(zhì)恢復(fù);
9、DIAG診斷進程
該進程在以前的版本中專用語RAC環(huán)境中,從Oracle11G開始 利用ADR(高級診斷庫),它會負責監(jiān)視實列的整體狀況,而且會捕獲處理實列失敗時的所需信息;
10、FBDA閃回數(shù)據(jù)歸檔進程
11、DBRM數(shù)據(jù)庫資源管理器進程
DBRM進程會去實施那些為一個數(shù)據(jù)庫實例配置的資源計劃;
12.還有一些其他進程:
LMON 鎖監(jiān)視器
LMD 鎖管理器守護
LMSn 鎖管理器服務(wù)器
LCK0 鎖進程
網(wǎng)站名稱:Oracle必知基礎(chǔ)總結(jié)
分享路徑:http://ef60e0e.cn/article/pidjos.html