關於Oracle的技術問答

leixue0906發表於2015-03-25
今天和Oracle的一個資深前輩聊了下,聊了不少技術的問題,他也來了興致,隨機提了幾個問題來問我,發現看似簡單的問題還是有不少的乾貨,很多東西似懂非懂其實還是沒有深入理解,限於篇幅,整理了一部分的問題,有些問題回答的對,但是感覺理解還是不夠清晰深入。
log buffer
   log buffer的作用
         logbuffer的作用主要有兩部分,生成重做記錄,另一部分就是把重做記錄寫入重做日誌檔案。
   commit操作的時候,是否會重新整理log buffer?
       其實每一個commit就會觸發一次改動向量,完成了一次事務的更新。
PGA
  pga的作用
        pga的全稱是program global area,它是一個記憶體區域,該區域中包含了於某個特定伺服器程式 相關的資料和控制資訊。對於每個session來說,其執行的sql語句鎖傳入的繫結變數會儲存在pga中,需要執行比較複雜的sql語句時,排序和hash join連線這類的session所佔用的記憶體空間也來自於PGA.
 程式之間是否會共享PGA?
         pga所佔用的記憶體區域只能被其所屬的程式訪問,而不能被其它程式訪問,所以pga中也不需要latch這樣的記憶體結構來保護其中的資訊。
buffer cache
    buffer cache中的演算法
   buffer cache中用到的演算法有hash演算法和LRU演算法。
   當前臺程式發出一個select或者dml語句的時候,oracle會根據執行計劃找到符合條件的資料塊,然後會根據請求資料塊的地址以及資料塊的型別作為引數,運用hash演算法找到資料塊所處的hash bucket,即確定資料塊是在那個hash chain上。
   LRU演算法即最近最少使用的buffer header連結串列,LRU連結串列串聯起來的buffer header都執行可用資料塊,buffer按照被使用的先後順序掛在LRUlianbiao shang ,先使用的buffer掛在LRU連結串列的後面,後被使用的buffer則掛在LRU連結串列的前面。

    buffer cache中資料塊的狀態
    髒資料塊,空閒資料塊,乾淨資料塊,釘住的資料塊。對於空閒資料塊和乾淨資料塊,都統稱為可用資料塊。因為其中的內容可以被新的資料內容覆蓋。
      
shared pool
  資料字典的資訊儲存在哪裡?
  資料字典的資訊儲存在shared pool中的dictionary cache中。dictionary cache中存放了執行sql語句的過程中,所參照的資料字典的資訊,包含sql語句所涉及的表名,表列,許可權資訊等,dictionary cache中的資訊都是以資料行的形式存放的。所以也可以叫做row cache.

CKPT   
  程式CKPT在哪裡找到對應的資訊。
  CKPT即檢查點為止(checkpoint position),檢查點的位置記錄在控制檔案中,在檢查點佇列上串起來的都是髒資料塊所對應的buffer header,每次dbwr寫髒資料塊的時候,也是從檢查點佇列上掃描髒資料塊,然後將髒資料塊寫入資料檔案的。

資料恢復  
  資料恢復時的前滾與回滾的過程
    如果資料庫例項非正常關閉,則檢查點end scn號為空,在資料恢復的時候,會從控制檔案中取得檢查點的位置,然後smon會到聯機日誌檔案中找到對應的檢查點位置,應用所有的重做條目,從而在buffer cache裡又恢復了例項奔潰前那個時間點的狀態,這個過叫做前滾。
  如果前滾完畢之後,smon程式會立即開啟資料庫,但是這個時候資料庫中還含有哪些處於中間狀態的,沒有提交也沒有回滾的資料庫,也就是髒資料塊,因為沒有被提交,所以需要被回滾,開啟資料庫以後,smon會在後臺做回滾的操作。   

rman
   rman配置修改備份檔案路徑的方法
  可以透過em,grid control中的圖形介面來修改rman中的備份檔案的路徑,或者使用config命令方式來設定。

調優
自己sql調優常用的幾個包是?
  dbms_sqltune,dbms_sql_advisor

透過這些也發現自己對資料庫有了一定的認識,但是還是需要不斷的深化。可能自己碰到好多問題的時候都是囫圇吞棗,一問得細節一點就卡殼。人就是這樣的過程中不斷的提升自我,也從側面反映出自己近期有點鬆懈,沒有能夠投入更加高效的精力來,努力努力,有則改進,無則加冕,生活本屬不易,不能得過且過。:)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26845409/viewspace-1472605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章