程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle 11g數據庫如何實現自我調整功能

Oracle 11g數據庫如何實現自我調整功能

編輯:關於Oracle數據庫

  如何讓數據庫能夠實現自我調整,減輕數據庫管理員的工作量,是甲骨文公司一直追求的目標。畢竟其數據庫的復雜程度遠遠超出同類數據庫; 而且,其數據庫的維護成本也比其他數據庫要高出不少。所以,甲骨文公司追求Oracle數據庫的自我調整與優化,降低Oracle數據庫的維護成本,也是可以理解的。

  自我調整SGA與自我調整檢查點,雖然是Oracle數據庫10G版本中的新增功能,但是,在11G的版本中,才真正發揮到極致,被數據庫管理員充分肯定並積極采納。下面筆者結合實際的工作經驗,帶領大家一起看看,這兩個新特性,是如何幫助企業降低維護成本,提高數據庫的管理效率的。

  一、 自我調整檢查點。

  在以前的文章中,筆者談到過,Oracle數據庫中有存儲緩沖區,其包括三部分內容,一種叫做髒緩沖存儲區。這個緩沖存儲區中存儲的是已經被修改的數據。一般情況下,這個數據不會馬上被寫入到數據文件中去。除非空閒緩沖快用完了,這個數據才會被寫入數據文件。但是,如此的話,也會遇到一個問題,若空閒緩沖區剛用完的時候,其他用戶也在頻繁的對數據庫進行讀寫操作,在這個繁忙的時刻,再往數據庫文件中寫入更改後的數據,那麼,很明顯,會極大的影響數據庫的性能。

  所以,作為數據庫管理員,我們的設想是能否在I/Q操作比較空的時候,就把髒緩沖中的數據寫入到數據庫中去呢?這若是靠數據庫管理員手工管理肯定不現實,我們數據庫有這個自動判斷的功能。甲骨文好像聽到了我們眾多數據庫管理員的呼聲,在10G版本的數據庫中新增了這個功能,並在11G版本中進行了完善,這就是自我調整檢查點的自我調整功能。

  檢查點是將內存中修改的數據與數據庫中的數據文件同步的手段。Oracle數據庫定期將檢查點之間修改的數據寫入數據文件,這種做法的要求之一是需要服務器有足夠的可用內存,以提高為即將進行的操作尋找空閒內存的執行性能。

  所以,這個檢查點的設置,跟很多參數有關,如服務器的內存等等。雖然在以前的版本中,數據庫管理員可以通過設置相關的初始化參數,來指定預期的崩潰恢復時間。但是,實際上,由於這個設置復雜,影響因素眾多,所以,很少有數據庫管理員會去調整這個參數,而都是采用其默認的設置。

  筆者在使用Oracle 11G數據庫中,印象最深的是數據庫可以自我調整檢查點。雖然在10G中也已經提出了這個功能,但是用的總是不怎麼順心。在11G中作了一定的改善,從而使得這個新功能得到了大家的認同。使用數據庫的自動檢查點調整,數據庫就會自動判斷數據庫的繁忙程度,具體的說是判斷I/Q 操作的繁忙程度,數據庫會自動在其比較空閒的時候,把髒緩沖期中的內容寫入到數據文件中,從而降低對數據庫吞吐量所產生的影響,提高數據庫的操作性能。

  其實,這個檢查點的自我調整功能就好像是一個交通警察,當道路繁忙的時候,下班高峰期時,一些打掃衛生的清潔車就不能進入車道; 只有到道路比較空閒的時候,清潔車才能進入車道打掃衛生。從而把清潔車對於車道的正常運行的影響降低到最低。

  當然,這個改善可能用戶一下子還察覺不出來。但是,我們通過數據庫日志進行前後的對比,就會發現,兩者的差異是很大的。利用了數據庫檢查點自我調整功能後,數據庫的查詢性能,特別是查詢大量數據的性能,得到了比較顯著的改善。

  不過,話說回來,數據庫的自我調整功能雖然是一個不錯的“交通警察”,但是當車真的很多的時候,最好的“交通警察”,也是無能為力。此時,就需要對硬件上的改善,如增加服務器的內存等等。畢竟像數據檢查點等自我調整功能只能夠改善硬件的利用能力,而不能從本質上提升硬件的容量。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved