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