關於Oracle的技術問答

來源:互聯網
上載者:User

關於Oracle的技術問答

今天和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

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

相關文章

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.