ORACLE學習二

來源:互聯網
上載者:User

標籤:有關   manage   cpu   記憶體結構   根據   進階   個數   大小   選項   

記憶體地區和後台進程

共用池

共用池是最複雜的SGA結構,它有許多子結構,我們來看看常見的幾個共用池組件:

  1.庫緩衝:庫緩衝這塊記憶體地區會按已分析的格式緩衝最近執行的代碼,這樣,同樣的sql代碼多次執行的時候,就不用重複地去進行程式碼分析,可以很大程度上提高系統效能。

  2.資料字典緩衝:儲存oracle中的對象定義(表,視圖,同義字,索引等資料庫物件),這樣在分析sql代碼的時候,就不用頻繁去磁碟上讀取資料字典中的資料了

  3.PL/SQL區:緩衝預存程序、函數、觸發器等資料庫物件,這些對象都儲存在資料字典中,通過將其緩衝到記憶體中,可以在重複調用的時候提高效能。

大池:大池是個可選的記憶體地區,前面我們提到專有伺服器串連和共用伺服器串連,如果資料庫採用了共用伺服器串連模式,則要使用到大池;RMAN(Oracle的進階備份恢複工具)備份資料也需要大池。

JAVA池

Oracle 的很多選項使用java寫的,Java池用作執行個體化Java對象所需的堆空間

  流池

  從重做日誌中提取變更記錄的進程 和 應用變更記錄的進程會用到流池(如執行個體不正常關閉,譬如斷電導致執行個體關閉,在重啟時,Oracle會自動執行執行個體恢複過程,在此過程需要提取重做日誌記錄和應用重做日誌兩個動作)

以上列舉了Oracle常見的記憶體結構,要注意的是,上面列舉的記憶體地區,除了日誌緩衝區是固定的,不能動態調整也不能進行自動管理外,其他記憶體地區都可以進行動態調整,也可以進行自動管理。

 

在說說Oracle 的幾個後台進程(DBWn和LGWR較重要,前面已做了瞭解,在此不再贅述)

SMON(System Monitor):安裝和開啟資料庫,執行個體恢複也是由此進程完成的

PMON(Process Monitor):進程監視器,主要監視伺服器進程。前面提到過,專有伺服器體系模式下,使用者進程和伺服器處理序是一對一的關係,如果某個會話發生異常,PMON會銷毀對應的伺服器處理序,復原未提交的事務,並回收會話專有的PGA記憶體地區。

CKPT(Checkpoint Process):CKPT負責發起檢查點訊號,手動設定檢查點的文法:

 

1 SQL>alter system checkpoint;

  檢查點可強制DBWn寫入髒緩衝區,當資料庫崩潰後,由於大量髒緩衝區未寫入資料檔案,在重新啟動時,需要由SMON進行執行個體恢複,執行個體恢複需要提取和應用重做日誌記錄,提取的位置就是從上次檢查點發起的位置開始的(檢查點之前的資料已經被強制寫入到資料檔案中去了),這個位置稱為RBA(redo byte address),CKPT會不斷將這個位置更新到控制檔案中去(以確定執行個體恢複需要從哪兒開始提取日誌記錄)。

MMON(Manageability Monitor)

  資料庫的自我監視和自我調整的支援進程。執行個體在運行中,會收集大量有關執行個體活動和效能的統計資料,這些資料會收集到SGA中,MMON定期從SGA中捕獲這些統計資料,並將其寫入到資料字典中,便於後續對這些快照進行分析。(預設情況,MMON每隔一個小時收集一次快照)

ARCn(Archiver

  歸檔進程,這個進程是可選的,如果資料庫配置為歸檔模式,這個進程就是必須的。所謂歸檔,就是將重做記錄檔永久儲存(生產庫一般都會配置為歸檔模式)到歸檔記錄檔中。歸檔記錄檔和重做記錄檔作用是一樣的,只不過重做記錄檔會不短被重寫,而歸檔記錄檔則保留了關於資料更改的完整的記錄。

至此,Oracle基礎的記憶體結構和進程結構我們已大概瞭解,來看下完成的進程和記憶體的互動情況,可以根據前面的理解將整個互動流程串聯一下。

四、Oracle儲存結構

針對Oracle儲存結構將分別從實體儲存體結構和邏輯儲存結構兩個維度來進行闡述。

實體儲存體結構

 

    

所謂外部檔案,意味著這些檔案從嚴格意義上來講並不屬於Oracle資料庫的一部分。

控制檔案:

  控制檔案雖小,但作用重大,它包含指向資料庫其餘部分的指標(包括重做記錄檔,資料檔案,歸檔記錄檔等的位置),儲存重要的序號和時間戳記,儲存RMAN備份的詳細資料。控制檔案一旦受損,那執行個體會立馬終止,一般對資料檔案的保護採用多工機制,就是冗餘多份在不同物理位置。

重做記錄檔

  重做記錄檔的作用在講解記憶體和進程結構的時候有提到過,重做日誌按時間順序儲存應用於資料庫的一連串的變更向量(包含聯機重做記錄檔和歸檔記錄檔)。由SMON在資料庫啟動時自動執行的執行個體恢複 和 磁碟損壞所要求的提取備份恢複都會應用到重做日誌進行相應的資料恢複

  重做記錄檔也建議進行多工,一個資料庫至少要有兩組重做記錄檔。一組供LGWR進行寫入,記錄檔是固定大小,業務高峰期會很快寫滿,寫滿之後會切換到第二組上,在配置為歸檔模式的資料庫中,這時由歸檔進程(ARCn)開始將第一組的內容進行歸檔備份,如此迴圈地進行寫入和歸檔。需要注意的是,在歸檔進程還未對當前組的日誌歸檔完畢前,是不允許LGWR對其進行重寫的。

資料檔案

  資料檔案儲存著實際的資料,DBWn會將資料庫緩衝區中的內容寫入到這類檔案中去,資料檔案的大小和數量是不受限制的。Oracle從10g開始,建立一個資料庫至少需要兩個資料檔案,一個用於SYSTEM資料表空間,該資料表空間用來儲存資料字典;一個用於SYSAUX資料表空間,這個資料表空間用來儲存一些資料字典的輔助資料。

  資料檔案由一個個的Oracle塊組成,這是Oracle的I/O基礎單元,與作業系統塊是不同的概念,Oracle塊要比作業系統塊大,這當然有處於效能的一些考慮,但我們考慮這樣一種情況,當使用者使用作業系統命令進行資料檔案的備份的時候(假設1個Oracle塊=8個作業系統塊),已經複製了4個作業系統塊,然後CPU被DBWn搶佔了,DBWn又重新對這個Oracle塊進行了更新,這時,當複製命令又得到了CPU時間去複製剩餘的4個塊的時候,就造成了整個Oracle塊的資料不一致,所以,這也是在執行這種備份(使用者自行備份)的時候,需要做一些額外處理,比如將資料表空間置為備份模式的原因。當然,使用RMAN是不存在這樣的問題的,RMAN的備份機制是肯定可以得到資料一致的塊的。(這塊內容作瞭解即可)

  對於資料檔案的保護,一般可進行定期備份,或者使用RAID也可以。

執行個體參數檔案

  這個檔案儲存體了資料庫所需的一些參數設定,比如各個記憶體地區的大小,可允許的最大進程數,最大會話數,控制檔案的位置,資料庫的名稱等等,參數檔案也是執行個體啟動時首先要載入的檔案。

口令檔案

  一般稱為外部口令檔案。一般的使用者名稱和口令是存放在資料字典中,不會存放在這個檔案中。在一些特殊情境下,比如執行個體還未啟動,這時,我可能需要以管理員的身份登入系統去執行一些恢複或者啟動操作,然而此時,資料字典由於執行個體還沒啟動是不存在的,這時就需要外部口令檔案進行使用者身份的驗證。

歸檔記錄檔

  ARCn將聯機重做記錄檔會備份歸檔到這類檔案中去,歸檔記錄檔保留了資料更改的完整曆史資訊。

邏輯儲存結構

Oracle將其物理結構從邏輯儲存結構中抽象出來,物理機構是系統管理員能看到的,邏輯結構則是使用者所能感知到的。比較典型的邏輯結構就是 "段"和"資料表空間"。

   段:

  段就是包含所有資料的邏輯結構,比較典型的段就是"表",稱為表段,還有索引段,撤銷段等等。

   資料表空間

    資料表空間從邏輯上是多個段的結合,在物理上是多個資料檔案的集合,相當於在段和資料檔案的對應中加入了一個中介層來解決這種多對多的關係。

  在早期的一些資料庫設計中,段和資料檔案是一對一的關係,一個段一個資料檔案,這種設計有很多弊端,首先,段的數量是不固定的,有可能一個系統中上千張表,那就得需要上千個資料檔案,系統管理員要管理這麼多檔案肯定會抓狂的;還有一種情況就是某些曆史表可能特別大,大到底層系統對單個檔案的限制,用一個資料檔案去承載的話肯定是不行的。資料表空間則完美解決了這樣的問題。

  還有一些邏輯結構如區間和Oracle塊(Oracle塊前面有提到過,區間則為塊的集合),下面通過一張圖對Oracle的儲存結構進行整體的宏觀的認識,進一步加深些理解

 

   

 

ORACLE學習二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.