張晗 遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院
Oracle RAC數(shù)據(jù)庫緩存優(yōu)化方法研究
張晗 遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院
數(shù)據(jù)庫系統(tǒng)的主要功能是進行數(shù)據(jù)的存儲,數(shù)據(jù)庫系統(tǒng)作為應(yīng)用系統(tǒng)以及信息系統(tǒng)以的重要核心。隨著業(yè)務(wù)量以及數(shù)據(jù)量的快速增長,需要引入數(shù)據(jù)庫相關(guān)技術(shù)從而解決系統(tǒng)連續(xù)運行的問題。但是將高可用性集群技術(shù),引入到數(shù)據(jù)庫系統(tǒng)中具有很高的研究價值。基于現(xiàn)有的理論技術(shù),本文研究了Oracle RAC數(shù)據(jù)庫的緩存優(yōu)化方法。根據(jù)研究影響數(shù)據(jù)庫性能的因素,得出了Oracle RAC數(shù)據(jù)庫的數(shù)據(jù)庫緩存優(yōu)化和傳統(tǒng)的存在異同。另外本文介紹了Oracle RAC數(shù)據(jù)庫的相關(guān)緩存內(nèi)容。
0racIe RAC 性能優(yōu)化 緩存
Oracle RAC是Oracle公司設(shè)計的,主要是針對解決數(shù)據(jù)庫中的一些問題。本文根據(jù)當(dāng)并發(fā)訪問量比較大的情況下,0racle RAC數(shù)據(jù)庫會出現(xiàn)高速緩存沖突的現(xiàn)象出現(xiàn),分析闡述了Oracle RAC數(shù)據(jù)庫相關(guān)緩存優(yōu)化的方法,從而使得數(shù)據(jù)庫的性能可以得到一定程度的提高。在數(shù)據(jù)庫行業(yè)中Oracle公司扮演著十分重要的角色,Oracle公司是全球據(jù)庫廠商中的老大。
從數(shù)據(jù)庫的相關(guān)技術(shù)誕生,已經(jīng)取得了很大的發(fā)展,現(xiàn)在數(shù)據(jù)庫技術(shù)的相關(guān)研究應(yīng)用涉及到很多的方面。現(xiàn)今的社會是一個信息時代,數(shù)據(jù)庫技術(shù)所充當(dāng)?shù)慕巧菓?yīng)用系統(tǒng)和計算機系統(tǒng)的核心與基礎(chǔ)。在存儲數(shù)據(jù)的過程中,數(shù)據(jù)庫起到了很大的作用,此外數(shù)據(jù)庫在實現(xiàn)數(shù)據(jù)處理以及數(shù)據(jù)共享方面也存在很重要的作用。目前在數(shù)據(jù)庫服務(wù)器方面,人們對性能以及可靠性方面有了更高的需求。因為計算機在硬件領(lǐng)域方面也取得突飛猛進的發(fā)展,目前現(xiàn)今的技術(shù)給數(shù)據(jù)庫服務(wù)器提供了很好的硬件平臺。
Oracle RAC是Oracle公司推行的,主要目的是用來解決高可用數(shù)據(jù)庫,這是一種并行服務(wù)器形式,和其他的解決方案相比,Oracle RAC在可靠性以及可用性方面都占據(jù)著很大的優(yōu)勢。Oracle RAC的含義指的是Oracle真正應(yīng)用集群,其中的真正應(yīng)用的意思是RAC可以支持全部的商業(yè)應(yīng)用程序。RAC集群能夠完成數(shù)據(jù)庫被多機共享的目的,因此應(yīng)用的高可用性起到了保證的作用。另外能夠?qū)崿F(xiàn)負載均衡以及并行處理的功能,此外還可以恢復(fù)無斷點以及恢復(fù)容錯。當(dāng)RAC集群里面的某個節(jié)點出現(xiàn)故障的時候,Oracle就會把應(yīng)用向其他的節(jié)點進行轉(zhuǎn)讓。如果對處理能力提出了更高的要求的話,新的節(jié)點就能夠容易地添加到集群。
傳統(tǒng)意義上的操作系統(tǒng)的性能、內(nèi)存配置、服務(wù)器硬件的性能、數(shù)據(jù)庫的設(shè)計都對數(shù)據(jù)庫的性能產(chǎn)生了影響,這種軟件產(chǎn)品容易實現(xiàn)優(yōu)化。同時Oracle RAC數(shù)據(jù)庫和傳統(tǒng)的單實例Oracle數(shù)據(jù)庫是存在不同之處的,管理RAC數(shù)據(jù)庫的時候比較繁瑣,另外優(yōu)化的方法也存在很大的區(qū)別。總而言之,優(yōu)化Oracle RAC數(shù)據(jù)庫以及調(diào)整性能有著重大的研究意義,作為優(yōu)化以及性能優(yōu)化中的一部分,也是很重要的。
Oracle RAC來自O(shè)racle 8i中OPS,其是Oracle Parallel Serve O的縮寫,開始設(shè)計OPS的目的是為了實現(xiàn)應(yīng)用和系統(tǒng)高可用性。隨著Oracle 9i進入到人們的視線中,Oracle的集群產(chǎn)品才出現(xiàn)了。RAC改進了傳統(tǒng)的OPS,尤其是改進了節(jié)點的管理以及節(jié)點的通信,這對OPS中會出現(xiàn)的pin操作產(chǎn)生了影響。當(dāng)節(jié)點中有故障出現(xiàn)的時候,IP地址就會轉(zhuǎn)到別處的節(jié)點上,進而可以確保應(yīng)用可以馬上轉(zhuǎn)移別處的節(jié)點中。從Oracle 10g開始的RAC在可靠性以及穩(wěn)定性方面都比較高。
3.1 調(diào)整性能及優(yōu)化
調(diào)整性能的這項活動是通過系統(tǒng)參數(shù)的修改、應(yīng)用程序的優(yōu)化、以及系統(tǒng)配置的改變從而實現(xiàn)系統(tǒng)性能的改變。調(diào)整性能具體的包含了配置硬件、關(guān)系型數(shù)據(jù)庫以及操作系統(tǒng)等方面,同時包括了優(yōu)化以及分析組件的應(yīng)用。優(yōu)化性能的含義為通過對組件進行適當(dāng)?shù)卣{(diào)整從而達到性能改善的目的,進而增加數(shù)據(jù)庫吞吐量,減少數(shù)據(jù)的響應(yīng)時間。優(yōu)化數(shù)據(jù)庫性能需要遵循:通過少量的磁盤訪問從而得到必要的數(shù)據(jù)。從一定程度上而言,調(diào)整性能以及優(yōu)化性能的這個過程是循環(huán)的,由于要實現(xiàn)優(yōu)化性能的目的,一般情況下要對性能進行適當(dāng)?shù)卣{(diào)整,接著再進行結(jié)果的優(yōu)化,通過多次的嘗試,最終獲得令人滿意的效果。數(shù)據(jù)庫系統(tǒng)生命周期主要包括了3個過程,分別是數(shù)據(jù)設(shè)計、開發(fā)以及實現(xiàn)成品。當(dāng)處于設(shè)計階段的時候完成優(yōu)化數(shù)據(jù)庫性能所投入的資金成本是最低的,同時所得到的收益是最大化的。
3.2 優(yōu)化目標
系統(tǒng)性能與系統(tǒng)的所處的環(huán)境有著直接的聯(lián)系,同時還與服務(wù)器、體系結(jié)構(gòu)和并發(fā)活動的實際情況有著聯(lián)系。性能衡量的研究對判定數(shù)據(jù)庫系統(tǒng)性能的標準有影響。影響Oracle數(shù)據(jù)庫系統(tǒng)的性評價的因素包括了數(shù)據(jù)庫命中率、系統(tǒng)吞吐量、磁盤I/O量以及使用內(nèi)存等,優(yōu)化OracleRAC緩存性能的目的總結(jié)如下:
3.2.1 系統(tǒng)吞吐量的提高
吞吐量的含義為單位時間中數(shù)據(jù)庫所可以執(zhí)完成的SQL語句的數(shù)量,單位是tps,指每秒所具有的事務(wù)量。系統(tǒng)吞吐量的提高有兩種方式實現(xiàn):總響應(yīng)時間減少和服務(wù)時間減少。
3.2.2 響應(yīng)時間減少
響應(yīng)時間含義為從SQL語句提交的開始,用戶得到第一行結(jié)果集所花費的時間,單位是s或ms。響應(yīng)時間有兩種:用戶等待時間和CPU時間,CPU時間指的是系統(tǒng)服務(wù)的時間。換言之,得到理想的用戶響應(yīng)時間的方法有兩種:
首先是將系統(tǒng)服務(wù)時間減少,也就是數(shù)據(jù)庫吞吐量的提高。其次是用戶等待時間的減少,也就是指盡量避免當(dāng)用戶同時訪問一個數(shù)據(jù)庫資源時候,所出現(xiàn)的沖突。
3.2.3 數(shù)據(jù)庫命中率的提高
Oracle用戶進程中國獲取數(shù)據(jù)來源于緩沖區(qū)高速緩存。衡量緩沖區(qū)高速緩存命中率的標準取決于內(nèi)存可以是否可以滿足用戶獲取數(shù)據(jù)需求。因為讀取高速緩存中的數(shù)據(jù)開銷相比于磁盤而言要小得多。所以通常情況下命中率也比較高。
4.1 調(diào)整緩存分配
優(yōu)化數(shù)據(jù)庫緩沖區(qū)高速緩存以及SGA組件共享池,可以先了解Oracle數(shù)據(jù)庫的內(nèi)存,同時緩存區(qū)域中關(guān)于SGA的值要提前設(shè)置。
從Oracle 9i起,Oracle緩存區(qū)域的PGA的管理就已經(jīng)實現(xiàn)了自動管理,將WORKARE—SIZES—POLICY參數(shù)調(diào)整為AUTO。從而確保了緩的性能實現(xiàn)高效、合理的目的,最終數(shù)據(jù)庫系統(tǒng)性能得到提高,PGA AGGREGAT TARGET影響著其大小。
相對于PGA,SGA要繁瑣些。在9i中,可以通過設(shè)置SGA的控制參數(shù)從而控制SGA組件的大小,在進行OracleSGA控制參數(shù)的設(shè)置過程中,數(shù)據(jù)庫可以不用關(guān)閉。進而能夠獨立監(jiān)控SGA中的數(shù)據(jù)庫活動情況,同時按照目前的Oracle數(shù)據(jù)庫需求,將區(qū)域進行改變,可以通過設(shè)置ALTER SYSTEM以及ALTER DATABASE命令實現(xiàn),完成SGA緩存區(qū)域調(diào)整。即使相比較于以往的靜態(tài)設(shè)置參數(shù),在操作上便捷了許多,但是依然還要通過DBA來對這些設(shè)置進行修改以及觀察。在Oracle 10g中,Oracle可以實現(xiàn)ASMM的功能,內(nèi)存自動共享管理可以實現(xiàn)Oracle按照系統(tǒng)的需求從而進行區(qū)域的增加或者減小,自動分配內(nèi)存的區(qū)域,這個發(fā)分配的過程沒有人工的參與,這對于DBA而言十分便捷,可以說這個成就是劃時代的成就。根據(jù)將SGA TARGET參數(shù)進行初始化,SGA的大部分內(nèi)存可以通過Oracle自動管理分配。作為一種動態(tài)參數(shù),SGA TARGET的設(shè)置要小于SGA MAX SIZE參數(shù)。但是,有的SGA組件是能夠完成自動調(diào)整的,能夠?qū)?nèi)存進行自動的分配,其中的內(nèi)存具體包含了Shared Pool、Buffer Cache、Large Pool以及Java Pool等,在自動管理Oracle內(nèi)存中應(yīng)用AMM,自動管理的范圍擴展到了PGA和SGA。MEMORY TARGET參數(shù)設(shè)置好后,將AMM啟動,Oracle就會對PGA以及SGA合理分配以及合理使用,從而方便DBA的管理工作。
結(jié)語:隨著數(shù)據(jù)庫規(guī)模的逐漸擴大,數(shù)據(jù)庫可用性的要求也逐漸的提高,未來數(shù)據(jù)庫領(lǐng)域?qū)⑹荗racle RAC數(shù)據(jù)庫的市場。同時對于處理多種電子事務(wù)以及網(wǎng)格計算中都取得了廣泛的運用。相比于傳統(tǒng)意義上的單實例數(shù)據(jù)庫,Oracle RAC數(shù)據(jù)庫在可靠性以及可用性方面都有著巨大的優(yōu)勢,Oracle RAC數(shù)據(jù)庫具有繁瑣的管理,同時優(yōu)化的方法也是多種多樣。總而言之,優(yōu)化以及調(diào)整Oracle RAC數(shù)據(jù)庫的性能對數(shù)據(jù)庫有著很重要的意義,本文主要是介紹了緩存性能調(diào)整以及優(yōu)化研究,介紹了數(shù)據(jù)庫優(yōu)化的三點目標,以及緩存優(yōu)化架構(gòu)等內(nèi)容。
[1]劉小斌.基于Solaris的Oracle RAC數(shù)據(jù)庫緩存優(yōu)化方法研究[J].信息系統(tǒng)工程, 2014(3):146-146
[2]Mingyue Jiang,Tsong Yueh Chen,Fei-Ching Kuo,Dave Towey,Zuohua Ding. A Metamorphic Testing Approach for Supporting Program Repair Without the Need for a Test Oracle[J]. The Journal of Systems & Software,2016
[3]George Barmpalias,Nan Fang,Andrew Lewis-Pye. Optimal asymptotic bounds on the oracle use in computations from Chaitin's Omega[J]. Journal of Computer and System Sciences,2016
[4]Chi Tim Ng,Seungyoung Oh,Youngjo Lee. Going beyond oracle property: Selection consistency and uniqueness of local solution of the generalized linear model[J]. Statistical Methodology,2016

