• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      分布式關(guān)系型數(shù)據(jù)庫(kù)恢復(fù)點(diǎn)目標(biāo)測(cè)試方法

      2020-06-21 15:10:52呂韜田峰李征宇張雪

      呂韜 田峰 李征宇 張雪

      摘? ?要: 分布式關(guān)系型數(shù)據(jù)庫(kù)具有廣泛應(yīng)用和技術(shù)探究空間,其質(zhì)量指標(biāo)關(guān)乎信息系統(tǒng)穩(wěn)定運(yùn)行、業(yè)務(wù)連續(xù)性等,其中恢復(fù)點(diǎn)目標(biāo)(RPO)是衡量分布式關(guān)系型數(shù)據(jù)庫(kù)可靠性的核心指標(biāo)。討論了分布式關(guān)系型數(shù)據(jù)庫(kù)RPO的內(nèi)涵和外延,印證了分布式關(guān)系型數(shù)據(jù)庫(kù)理論上可以保證RPO等于0,擁有對(duì)數(shù)據(jù)完整性的完全保障能力。針對(duì)RPO指標(biāo),提出了一種基于場(chǎng)景的測(cè)試方法,以寫(xiě)入數(shù)據(jù)庫(kù)的事務(wù)數(shù)量與數(shù)據(jù)庫(kù)中記錄數(shù)的差值表征數(shù)據(jù)丟失情況。搭建測(cè)試環(huán)境,應(yīng)用LoadRunner測(cè)試工具,以平均響應(yīng)時(shí)間、每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)、Tomcat日志等為依據(jù),測(cè)試得到三款分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品的RPO指標(biāo),實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)容災(zāi)能力的評(píng)價(jià)。

      關(guān)鍵詞: 分布式關(guān)系型數(shù)據(jù)庫(kù);恢復(fù)點(diǎn)目標(biāo)(RPO);容災(zāi)能力; LoadRunner;平均響應(yīng)時(shí)間

      引言

      信息技術(shù)、互聯(lián)網(wǎng)技術(shù)的深度應(yīng)用,以及大數(shù)據(jù)挖掘、智能化發(fā)展,促使信息系統(tǒng)不斷擴(kuò)展規(guī)模,要求信息系統(tǒng)向高性能、易擴(kuò)展、泛兼容的技術(shù)方向演進(jìn),其中安全存儲(chǔ)、可靠傳輸、精準(zhǔn)應(yīng)用信息資源是信息系統(tǒng)中的關(guān)鍵技術(shù)。信息資源的可用性、完整性、有效性是關(guān)鍵指標(biāo),存儲(chǔ)信息資源的數(shù)據(jù)庫(kù)作為支撐信息系統(tǒng)穩(wěn)定運(yùn)行的基礎(chǔ)軟件,技術(shù)體系不斷革新,從集中式向分布式架構(gòu)演進(jìn)成為重要技術(shù)趨勢(shì)[1]。

      相對(duì)傳統(tǒng)的大型集中式關(guān)系型數(shù)據(jù)庫(kù),分布式關(guān)系型數(shù)據(jù)庫(kù)具有成本低、部署靈活、性能高等優(yōu)勢(shì),可以支撐當(dāng)前互聯(lián)網(wǎng)應(yīng)用的大規(guī)模、高并發(fā)、多模式業(yè)務(wù)類(lèi)型,也是當(dāng)前金融領(lǐng)域信息化升級(jí)的重要技術(shù)方向[2]。2019年10月,螞蟻金服科技研發(fā)的分布式關(guān)系型數(shù)據(jù)庫(kù)OceanBase成功登頂TPC-C[3],反映出我國(guó)分布式關(guān)系型數(shù)據(jù)庫(kù)技術(shù)逐步成熟,正在被越來(lái)越多的行業(yè)所認(rèn)可并投入實(shí)際應(yīng)用。

      科學(xué)、客觀、準(zhǔn)確地評(píng)價(jià)一款分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品的質(zhì)量是保證信息資源安全、信息系統(tǒng)可靠的 重要課題。除了功能、性能、安全等質(zhì)量屬性外,一些關(guān)鍵行業(yè)的信息系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的可靠性提出了更高的要求:一方面需要數(shù)據(jù)庫(kù)廠商通過(guò)日志、副本等技術(shù)保障可靠性;另一方面也需要客觀評(píng)價(jià)可靠性的指標(biāo)和方法??紤]到分布式關(guān)系型數(shù)據(jù)庫(kù)一般具有多副本實(shí)時(shí)備份的技術(shù)特點(diǎn),恢復(fù)點(diǎn)目標(biāo)(Recovery Point Object,RPO)指標(biāo)成為衡量其可靠性的核心指標(biāo)[4]。為此,本文結(jié)合分布式關(guān)系型數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn),提出一種基于場(chǎng)景的分布式關(guān)系型數(shù)據(jù)庫(kù)恢復(fù)點(diǎn)目標(biāo)的測(cè)試方法,以實(shí)現(xiàn)對(duì)分布式關(guān)系型數(shù)據(jù)庫(kù)可靠性的測(cè)評(píng),并在工程實(shí)踐中進(jìn)行驗(yàn)證,以反映測(cè)試方法的正確性和合理性。

      1? 分布式關(guān)系型數(shù)據(jù)庫(kù)與RPO

      分布式關(guān)系型數(shù)據(jù)庫(kù)作為基礎(chǔ)軟件產(chǎn)品,符合軟件產(chǎn)品的所有質(zhì)量特性。一般軟件產(chǎn)品的質(zhì)量特性包括功能、效率、可靠性、安全性、兼容性、可擴(kuò)展性等,對(duì)于特定的軟件產(chǎn)品,需要結(jié)合軟件本身的技術(shù)特點(diǎn),在質(zhì)量特性的框架下進(jìn)行設(shè)計(jì),并細(xì)化測(cè)試指標(biāo),明確測(cè)試方法,最終達(dá)到評(píng)價(jià)軟件產(chǎn)品的目的。

      1.1? 分布式關(guān)系型數(shù)據(jù)庫(kù)

      一般來(lái)說(shuō),分布式關(guān)系型數(shù)據(jù)庫(kù)是用計(jì)算機(jī)網(wǎng)絡(luò)將物理上分散的多個(gè)數(shù)據(jù)庫(kù)單元連接起來(lái),并采用關(guān)系模型加以組織的一個(gè)邏輯上統(tǒng)一的數(shù)據(jù)庫(kù)[5]。分布式關(guān)系型數(shù)據(jù)庫(kù)具有物理分布性、邏輯整體性和站點(diǎn)自治性的特點(diǎn),從其所具有的能力上可以歸納為:

      (1)管理、調(diào)度、處理分布式事務(wù);

      (2)支持跨數(shù)據(jù)中心的橫向擴(kuò)展;

      (3)具備高可用能力,具備進(jìn)行實(shí)時(shí)備份及恢復(fù)的容災(zāi)能力。

      從以上的技術(shù)特點(diǎn)可以看出,相對(duì)于傳統(tǒng)的集中式關(guān)系型數(shù)據(jù)庫(kù),分布式關(guān)系型數(shù)據(jù)庫(kù)的擴(kuò)展性和容災(zāi)能力更強(qiáng),尤其是當(dāng)一個(gè)或多個(gè)節(jié)點(diǎn)遇到故障時(shí),分布式關(guān)系型數(shù)據(jù)庫(kù)能夠持續(xù)運(yùn)行并迅速拉起備份節(jié)點(diǎn),承擔(dān)故障節(jié)點(diǎn)的工作[6-7]。

      1.2? RPO的內(nèi)涵與外延

      RPO的作用是災(zāi)難發(fā)生后,令容災(zāi)系統(tǒng)把數(shù)據(jù)恢復(fù)到災(zāi)難發(fā)生前時(shí)間點(diǎn)的數(shù)據(jù),故RPO是衡量災(zāi)難發(fā)生后會(huì)丟失多少生產(chǎn)數(shù)據(jù)的指標(biāo),具體表示為從災(zāi)難發(fā)生到最近一次備份的時(shí)間度量。本質(zhì)上,RPO指標(biāo)主要反映了業(yè)務(wù)連續(xù)性管理體系下備用數(shù)據(jù)的有效性,系統(tǒng)RPO越小,表示系統(tǒng)對(duì)數(shù)據(jù)完整性的保障能力越強(qiáng),即故障發(fā)生后可能損失的數(shù)據(jù)就越少。

      對(duì)于傳統(tǒng)的集中式關(guān)系型數(shù)據(jù)庫(kù),由于其數(shù)據(jù)存儲(chǔ)機(jī)制為主節(jié)點(diǎn)執(zhí)行寫(xiě)操作,因此一旦其主節(jié)點(diǎn)遇到故障,數(shù)據(jù)就存在丟失的可能性,且故障恢復(fù)時(shí)間受到軟硬件、機(jī)房基礎(chǔ)設(shè)施等多種因素影響,RPO指標(biāo)較高;即使是引入了熱備份等相關(guān)機(jī)制的現(xiàn)代的集中式數(shù)據(jù)庫(kù),雖然當(dāng)主節(jié)點(diǎn)遇到故障時(shí)系統(tǒng)能夠快速切換到備份節(jié)點(diǎn),但其“多讀單寫(xiě)”的機(jī)制仍然無(wú)法完全保證其RPO等于0。

      對(duì)于分布式關(guān)系型數(shù)據(jù)庫(kù),為了實(shí)現(xiàn)真正的多讀多寫(xiě),一般通過(guò)中間件或同步協(xié)議保障多個(gè)數(shù)據(jù)庫(kù)副本之間的數(shù)據(jù)一致性,從數(shù)據(jù)處理機(jī)制上實(shí)現(xiàn)實(shí)時(shí)的備份,理論上可以保證RPO等于0。因此對(duì)分布式關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行RPO測(cè)試驗(yàn)證成為一個(gè)新的課題[8-9]。

      2? 分布式關(guān)系型數(shù)據(jù)庫(kù)RPO測(cè)試方法設(shè)計(jì)

      結(jié)合分布式關(guān)系型數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn),我們創(chuàng)新地將RPO引入數(shù)據(jù)庫(kù)質(zhì)量測(cè)試,作為可靠性的測(cè)試指標(biāo)之一,用以驗(yàn)證分布式關(guān)系型數(shù)據(jù)庫(kù)的容災(zāi)能力,對(duì)當(dāng)前分布式關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用較多且對(duì)業(yè)務(wù)連續(xù)性要求較高的電子商務(wù)、金融行業(yè)具有重要的參考價(jià)值。

      對(duì)分布式關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行RPO測(cè)試的主要思路是,在被測(cè)數(shù)據(jù)庫(kù)執(zhí)行一個(gè)連續(xù)事務(wù)的過(guò)程中,人為制造故障場(chǎng)景,如切斷一個(gè)或多個(gè)節(jié)點(diǎn),在故障發(fā)生后,觀察被測(cè)數(shù)據(jù)庫(kù)是否仍可穩(wěn)定連續(xù)運(yùn)行,并且在故障發(fā)生的時(shí)間段統(tǒng)計(jì)所有數(shù)據(jù)是否丟失,計(jì)算其RPO。

      RPO的測(cè)試方法設(shè)計(jì)如下:

      (1)通過(guò)客戶(hù)端持續(xù)對(duì)分布式關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)節(jié)點(diǎn)進(jìn)行寫(xiě)操作,在客戶(hù)端記錄寫(xiě)操作成功的次數(shù),在數(shù)據(jù)庫(kù)端記錄每條插入數(shù)據(jù)的時(shí)間;

      (2)斷開(kāi)該節(jié)點(diǎn)的網(wǎng)絡(luò),判斷數(shù)據(jù)庫(kù)是否穩(wěn)定運(yùn)行不退出,以及寫(xiě)操作能否迅速恢復(fù),記錄斷網(wǎng)時(shí)間;

      (3)待被測(cè)數(shù)據(jù)庫(kù)穩(wěn)定后,終止測(cè)試;

      (4)對(duì)比寫(xiě)操作成功次數(shù)與數(shù)據(jù)庫(kù)中的記錄數(shù)是否一致,并計(jì)算分析斷網(wǎng)之后插入數(shù)據(jù)的時(shí)間間隔。

      RPO的判定方法如下:

      按照GB/T 20889-2007《信息安全技術(shù) 信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范》[10]的要求,RPO約為0或者等于0的情況對(duì)應(yīng)的容災(zāi)等級(jí)為第5級(jí)、第6級(jí),換算成可靠性的要求,其系統(tǒng)可用性應(yīng)為99.99%及以上。因此,在測(cè)試完成后,應(yīng)計(jì)算丟失記錄數(shù)與總成功插入記錄的比值,若丟失記錄數(shù)的比值小于0.01%,則認(rèn)為被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO約為0;若比值小于0.001%,則認(rèn)為被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO等于0。

      3? RPO測(cè)試過(guò)程

      分布式關(guān)系型數(shù)據(jù)庫(kù)的測(cè)試過(guò)程主要分為三個(gè)部分:一是按照被測(cè)數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn)及實(shí)際業(yè)務(wù)場(chǎng)景需求搭建測(cè)試環(huán)境,準(zhǔn)備能夠準(zhǔn)確量化RPO指標(biāo)的測(cè)試工具;二是根據(jù)RPO測(cè)試指標(biāo)制定測(cè)試步驟,明確測(cè)試的次序和每步需要記錄的測(cè)試數(shù)據(jù);三是對(duì)所有的測(cè)試結(jié)果進(jìn)行分析,評(píng)價(jià)被測(cè)產(chǎn)品的RPO能力。

      3.1? 測(cè)試環(huán)境搭建

      按照分布式關(guān)系型數(shù)據(jù)庫(kù)的技術(shù)特點(diǎn),在硬件設(shè)備上一般需要準(zhǔn)備6臺(tái)服務(wù)器及配套的交換機(jī),用于部署被測(cè)數(shù)據(jù)庫(kù),此外服務(wù)器還可復(fù)用部署測(cè)試相關(guān)的系統(tǒng),需要一臺(tái)桌面終端。

      測(cè)試工具建議選擇LoadRunner,此工具的作用一是模擬實(shí)際用戶(hù),對(duì)Web應(yīng)用系統(tǒng)進(jìn)行持續(xù)訪問(wèn),從而對(duì)被測(cè)數(shù)據(jù)庫(kù)進(jìn)行持續(xù)的寫(xiě)操作;二是監(jiān)測(cè)在故障發(fā)生時(shí)數(shù)據(jù)庫(kù)的性能表現(xiàn)。

      此外,為了模擬實(shí)際業(yè)務(wù)場(chǎng)景,還需開(kāi)發(fā)一個(gè)小型的Web應(yīng)用系統(tǒng),此系統(tǒng)的作用一是對(duì)被測(cè)產(chǎn)品進(jìn)行連續(xù)寫(xiě)操作,二是在故障發(fā)生時(shí),通過(guò)監(jiān)測(cè)此系統(tǒng)的運(yùn)行狀態(tài)來(lái)判斷數(shù)據(jù)庫(kù)是否連續(xù)運(yùn)行。

      綜上,測(cè)試環(huán)境的軟硬件構(gòu)成如圖1所示。

      測(cè)試環(huán)境在搭建時(shí),需要被測(cè)數(shù)據(jù)庫(kù)的廠商按照數(shù)據(jù)庫(kù)的特點(diǎn)進(jìn)行節(jié)點(diǎn)分配,測(cè)試環(huán)境的標(biāo)準(zhǔn)拓?fù)鋱D如圖1所示。

      3.2? 測(cè)試實(shí)施步驟

      測(cè)試流程圖如圖2所示,以下對(duì)各個(gè)步驟進(jìn)行介紹。

      3.2.1? 測(cè)試環(huán)境部署與確認(rèn)

      按照?qǐng)D1所示的測(cè)試環(huán)境拓?fù)鋱D搭建分布式關(guān)系型數(shù)據(jù)庫(kù)測(cè)試環(huán)境。搭建完成后,試運(yùn)行被測(cè)數(shù)據(jù)庫(kù),確保數(shù)據(jù)庫(kù)系統(tǒng)正常運(yùn)行。

      3.2.2? Web應(yīng)用部署與確認(rèn)

      選擇一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器部署Web應(yīng)用系統(tǒng),部署完成后,確保Web應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)連接成功且可對(duì)被測(cè)數(shù)據(jù)庫(kù)進(jìn)行操作。在被測(cè)數(shù)據(jù)庫(kù)中,構(gòu)造數(shù)據(jù)庫(kù)表單,要求表單最后一列為時(shí)間戳;在Web應(yīng)用系統(tǒng)中,構(gòu)建一條SQL語(yǔ)句,對(duì)被測(cè)數(shù)據(jù)庫(kù)進(jìn)行操作,SQL語(yǔ)句為插入操作,且插入的最后一列為插入數(shù)據(jù)時(shí)的時(shí)間戳。

      3.2.3? 測(cè)試工具部署及調(diào)試

      在桌面終端部署LoadRunner工具,錄制腳本并調(diào)試,直至成功,確保可以對(duì)Web應(yīng)用程序進(jìn)行壓力測(cè)試。

      3.2.4? 使用測(cè)試工具執(zhí)行壓力測(cè)試

      通過(guò)LoadRunner實(shí)現(xiàn)100用戶(hù)并發(fā)對(duì)創(chuàng)建表單的插入操作(壓力測(cè)試執(zhí)行前,務(wù)必清除已創(chuàng)建表單中所有數(shù)據(jù))。參數(shù)設(shè)置:thinktime=0;運(yùn)行時(shí)長(zhǎng)20 min。執(zhí)行壓力測(cè)試,并觀察測(cè)試工具Transactions(事務(wù)總數(shù))的Total Passed與Total Failed數(shù)值,若Total Failed出現(xiàn)非0數(shù)據(jù),則停止壓力測(cè)試,并返回至章節(jié)3.2.3,重新對(duì)測(cè)試工具和Web應(yīng)用進(jìn)行部署調(diào)試。

      3.2.5? 故障模擬

      在測(cè)試中平穩(wěn)運(yùn)行5 min后,手動(dòng)關(guān)閉其中一個(gè)計(jì)算節(jié)點(diǎn),模擬該節(jié)點(diǎn)運(yùn)行發(fā)生故障并退出。執(zhí)行斷網(wǎng)操作后,觀察LoadRunner工具響應(yīng)時(shí)間曲線圖,若Hits per Second數(shù)值降至零,且Total Failed出現(xiàn)非0數(shù)據(jù)、Total Passed數(shù)值停止增長(zhǎng)、數(shù)據(jù)庫(kù)單一節(jié)點(diǎn)故障引起數(shù)據(jù)庫(kù)不可用,則說(shuō)明該分布式關(guān)系型數(shù)據(jù)庫(kù)的配置不正確,返回章節(jié)3.2.1對(duì)分布式測(cè)試環(huán)境重新進(jìn)行部署與確認(rèn)。執(zhí)行斷網(wǎng)操作后,待Hits per Second數(shù)值降低并穩(wěn)定后,繼續(xù)保持壓力,20 min壓力測(cè)試完成后,記錄測(cè)試數(shù)據(jù)。

      3.2.6? 記錄分析測(cè)試結(jié)果

      測(cè)試完成后,記錄LoadRunner的事務(wù)通過(guò)數(shù)、未通過(guò)數(shù),Web應(yīng)用系統(tǒng)的成功連接數(shù),被測(cè)數(shù)據(jù)庫(kù)表單中的記錄數(shù)等數(shù)據(jù)。

      3.3? 測(cè)試結(jié)果記錄及處理

      首先,測(cè)試工具LoadRunner通過(guò)的Transactions數(shù)量,該測(cè)試結(jié)果是對(duì)事務(wù)進(jìn)行綜合分析的結(jié)果,是性能分析的第一步。其一,通過(guò)分析測(cè)試時(shí)間內(nèi)用戶(hù)事務(wù)的成功與失敗情況,可以直接判斷出系統(tǒng)是否運(yùn)行正常,若Transactions的Total Failed數(shù)值持續(xù)增長(zhǎng),則判定客戶(hù)端通過(guò)Web應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)失敗,需中斷測(cè)試工作;其二,運(yùn)行正常的情況下,在測(cè)試完成后,通過(guò)記錄Transactions的Total Passed數(shù)值,記錄測(cè)試工具端客戶(hù)端成功發(fā)送數(shù)據(jù)庫(kù)的事務(wù)數(shù)量X1。

      其次,記錄Web應(yīng)用通過(guò)的Transactions數(shù)量X2,該數(shù)值可直觀反映出客戶(hù)端成功執(zhí)行SQL語(yǔ)句并成功寫(xiě)入數(shù)據(jù)庫(kù)的事務(wù)數(shù)量。

      再次,登錄數(shù)據(jù)庫(kù)端通過(guò)SQL語(yǔ)句查詢(xún)數(shù)據(jù)庫(kù)表所有記錄數(shù)X3,X3數(shù)值為本次測(cè)試過(guò)程中實(shí)際成功寫(xiě)入數(shù)據(jù)庫(kù)的事務(wù)數(shù)量。

      最后,根據(jù)以上測(cè)試數(shù),對(duì)測(cè)試結(jié)果進(jìn)行計(jì)算分析:

      (1)若X1=X3,則客戶(hù)端成功發(fā)送數(shù)據(jù)庫(kù)的事務(wù)數(shù)量等于成功寫(xiě)入數(shù)據(jù)庫(kù)端的事務(wù)數(shù)量,整個(gè)測(cè)試過(guò)程中未發(fā)生數(shù)據(jù)丟失,測(cè)試過(guò)程中RPO等于0。

      (2)若X1>X3,則客戶(hù)端成功發(fā)送數(shù)據(jù)庫(kù)的事務(wù)數(shù)量大于成功寫(xiě)入數(shù)據(jù)庫(kù)端的事務(wù)數(shù)量,為了保證測(cè)試的嚴(yán)謹(jǐn)性,需查看Web應(yīng)用通過(guò)的Transactions數(shù)量X2。

      ① 若X2≤X3,說(shuō)明成功寫(xiě)入數(shù)據(jù)庫(kù)端的事務(wù)數(shù)量大于或等于Web應(yīng)用成功發(fā)送的數(shù)據(jù)量,測(cè)試過(guò)程中未發(fā)生數(shù)據(jù)丟失,測(cè)試過(guò)程中RPO等于0(注:在并發(fā)壓力測(cè)試過(guò)程中,因網(wǎng)絡(luò)延遲、響應(yīng)超時(shí)等原因?qū)е聰?shù)據(jù)庫(kù)寫(xiě)入成功的響應(yīng)結(jié)果未反饋Web服務(wù)器端)。

      ② 若X2>X3,則Web應(yīng)用成功發(fā)送的數(shù)據(jù)量大于成功寫(xiě)入數(shù)據(jù)庫(kù)端的事務(wù)數(shù)量,測(cè)試過(guò)程中發(fā)生的數(shù)據(jù)丟失情況需要按照以下公式進(jìn)行計(jì)算:

      X4=(X2-X3)/X2 (1)

      a. 若X4≥0.01%,則認(rèn)為被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO不等于0,在執(zhí)行故障模擬的過(guò)程中出現(xiàn)事務(wù)丟失,且丟失數(shù)據(jù)量大于每秒寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)。計(jì)算事務(wù)丟失數(shù)據(jù)量,查看數(shù)據(jù)庫(kù)事務(wù)日志中事務(wù)連續(xù)寫(xiě)入時(shí)間記錄,分析數(shù)據(jù)庫(kù)記錄時(shí)間戳不連續(xù)的時(shí)間間隔。

      b. 若0.001%≤X4<0.01%,則認(rèn)為被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO約等于0。

      c. 若X4<0.001%,則認(rèn)為被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO等于0。

      4? 測(cè)試結(jié)果及分析

      為了驗(yàn)證提出的基于場(chǎng)景的分布式關(guān)系型數(shù)據(jù)庫(kù)恢復(fù)點(diǎn)目標(biāo)的測(cè)試方法,搭建實(shí)驗(yàn)測(cè)試環(huán)境,對(duì)A、B、C三款分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品進(jìn)行RPO測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行分析。

      4.1? A款數(shù)據(jù)庫(kù)測(cè)試結(jié)果及分析

      按照測(cè)試要求搭建A款數(shù)據(jù)庫(kù)測(cè)試環(huán)境,部署測(cè)試工具,測(cè)試結(jié)果如下:

      (1)測(cè)試過(guò)程中平均響應(yīng)時(shí)間Average Response Time(單位:s)。從圖3可以看出,模擬單節(jié)點(diǎn)故障后,切換過(guò)程中響應(yīng)時(shí)間有明顯的提升;切換完成后,整個(gè)響應(yīng)時(shí)間趨于穩(wěn)定,數(shù)據(jù)庫(kù)連接正常。

      (2)測(cè)試過(guò)程中每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)(Hits per Second)。從圖4可以看出,當(dāng)模擬單節(jié)點(diǎn)故障后,每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)出現(xiàn)較大浮動(dòng)的下降;運(yùn)行4 min后,每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)趨于穩(wěn)定且恢復(fù)至故障前水平。整個(gè)過(guò)程中,數(shù)據(jù)庫(kù)連接正常。

      (3)LoadRunner測(cè)試工具記錄的通過(guò)Transactions數(shù)量。如圖5所示,X1=7 860 902,該數(shù)值為客戶(hù)端發(fā)送至Web應(yīng)用并成功響應(yīng)的Transactions數(shù)量。

      (4)測(cè)試結(jié)束后在數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)句

      select count (1) form t_gh;

      查看數(shù)據(jù)庫(kù)該表中的記錄數(shù),得到X3=7 814 974,如圖6所示。

      (5)對(duì)比差值X1-X3=45 928,即數(shù)據(jù)庫(kù)端丟失數(shù)據(jù)條數(shù)為45 928,計(jì)算數(shù)據(jù)丟失比,得

      X4=(7 860 902-7 814 974)/7 860 902=0.584%

      (2)

      X4>0.01%,表明被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO不等于0。

      (6)通過(guò)查看數(shù)據(jù)庫(kù)寫(xiě)入日志記錄發(fā)現(xiàn),數(shù)據(jù)庫(kù)記錄時(shí)間戳不連續(xù)的時(shí)間間隔為80 s,日志部分截圖如圖7所示。因此,被測(cè)的分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品RPO為80 s。

      4.2? B款數(shù)據(jù)庫(kù)測(cè)試結(jié)果及分析

      按照測(cè)試要求搭建B款數(shù)據(jù)庫(kù)測(cè)試環(huán)境,部署測(cè)試工具,測(cè)試結(jié)果如下:

      (1)測(cè)試過(guò)程中Average Response Time。從圖8可以看出,模擬單節(jié)點(diǎn)故障后,切換過(guò)程中響應(yīng)時(shí)間有明顯的提升;切換完成后,整個(gè)響應(yīng)時(shí)間趨于穩(wěn)定,數(shù)據(jù)庫(kù)連接正常。

      (2)測(cè)試過(guò)程中每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)。從圖9可以看出,模擬單節(jié)點(diǎn)故障后,每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)出現(xiàn)較大幅度的下降;運(yùn)行2 min后,每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)趨于穩(wěn)定,且恢復(fù)至故障前水平。整個(gè)過(guò)程中,數(shù)據(jù)庫(kù)連接正常。

      (3)LoadRunner測(cè)試工具記錄的通過(guò)Transactions數(shù)量。如圖10所示,X1的數(shù)值為17 070 507,測(cè)試過(guò)程中Transactions的Total Failed數(shù)值為0 ,未出現(xiàn)報(bào)錯(cuò)。

      (4)查看Tomcat日志記錄不通過(guò)Transactions數(shù)量為100(如圖11所示),實(shí)際通過(guò)的Transactions數(shù)量X2=17 070 407。

      (5)測(cè)試結(jié)束后,在數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)句

      select count (1) form t_gh;

      查看數(shù)據(jù)庫(kù)該表中的記錄數(shù),得到X3=17 070 408,如圖12所示。

      (6)通過(guò)以上測(cè)試數(shù)據(jù)可以看出,X1>X3,X2

      4.3? C款數(shù)據(jù)庫(kù)測(cè)試結(jié)果及分析

      (1)測(cè)試過(guò)程中Average Response Time。從圖13中可以看出,模擬單節(jié)點(diǎn)故障后,響應(yīng)時(shí)間較故障前提升4倍;切換完成后,整個(gè)響應(yīng)時(shí)間趨于穩(wěn)定,數(shù)據(jù)庫(kù)連接正常。

      (2)測(cè)試過(guò)程中每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)。從圖14可以看出,當(dāng)模擬單節(jié)點(diǎn)故障后,每秒虛擬用戶(hù)HTTP請(qǐng)求數(shù)出現(xiàn)較大幅度的下降,整體性能下降,但整個(gè)過(guò)程中數(shù)據(jù)庫(kù)未出現(xiàn)中斷,連接正常。

      (3)LoadRunner測(cè)試工具記錄的通過(guò)Transactions數(shù)量。如圖15所示,X1的數(shù)值為4 867 970,測(cè)試過(guò)程中Transactions的Total Failed數(shù)值為0 ,未出現(xiàn)報(bào)錯(cuò)。

      (4)查看Tomcat日志記錄通過(guò)Transactions數(shù)量X2為4 867 936,如圖16所示。

      (5)測(cè)試結(jié)束后,在數(shù)據(jù)庫(kù)通過(guò)SQL語(yǔ)句

      select count (1) form t_gh;

      查看數(shù)據(jù)庫(kù)該表中的記錄數(shù)X3為4 867 958。

      (6)通過(guò)以上測(cè)試數(shù)據(jù)可以看出,X1>X3,X2

      5? 結(jié)束語(yǔ)

      本文提出了一種基于場(chǎng)景的分布式關(guān)系型數(shù)據(jù)庫(kù)恢復(fù)點(diǎn)目標(biāo)的測(cè)試方法,將RPO測(cè)試指標(biāo)引入分布式關(guān)系型數(shù)據(jù)庫(kù)質(zhì)量測(cè)試,能夠?qū)Ρ粶y(cè)數(shù)據(jù)庫(kù)的容災(zāi)能力進(jìn)行評(píng)價(jià),且通過(guò)實(shí)際的工程實(shí)踐證明了方法的可行性與正確性,對(duì)數(shù)據(jù)庫(kù)的應(yīng)用方具有很高的參考價(jià)值,也為后續(xù)數(shù)據(jù)庫(kù)相關(guān)產(chǎn)品的測(cè)試評(píng)價(jià)提供了思路與方法。

      致謝

      感謝中國(guó)軟件評(píng)測(cè)中心的領(lǐng)導(dǎo)和同事,在本文寫(xiě)作過(guò)程中,他們提供了許多無(wú)私的幫助,使得這篇文章得以順利完成。感謝審稿專(zhuān)家在百忙之中審閱我們的文章,您們的意見(jiàn)為提高我們文章的質(zhì)量帶來(lái)了很大幫助。歡迎讀者批評(píng)和指正。

      參考文獻(xiàn)

      [1] 王昆, 高可用分布式任務(wù)調(diào)度與執(zhí)行系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2019.

      [2] 中國(guó)人民銀行. 中國(guó)金融業(yè)信息技術(shù)“十三五”發(fā)展規(guī)劃[OL]. http://www.pbc.gov.cn/zhengwugongkai/127924/128038/128109/3333998/index.html. 2017-06-27.

      [3] 螞蟻金服科技. 螞蟻金服自研數(shù)據(jù)庫(kù)OceanBase如何登 頂TPC-C[OL]. https://segmentfault.com/a/1190000020597597. 2019-10-05

      [4] 陳宏, 郭素芹, 羅順輝, 等. 信息系統(tǒng)災(zāi)難備份策略及關(guān)鍵技術(shù)研究[J]. 電力信息化, 2011, 9(10):8-13.

      [5] 邵側(cè)英. 分布式數(shù)據(jù)庫(kù)系統(tǒng)及其應(yīng)用: 第2版[M]. 北京: 科學(xué)出版社, 2005.

      [6] 葉驕龍. 面向數(shù)據(jù)庫(kù)的CDP容災(zāi)系統(tǒng)關(guān)鍵技術(shù)研究[D]. 杭州: 杭州電子科技大學(xué),2015

      [7] 王君軍. 分布式異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)的網(wǎng)絡(luò)容災(zāi)技術(shù)研究[D]. 長(zhǎng)春: 長(zhǎng)春理工大學(xué), 2011.

      [8] 朱濤, 郭進(jìn)偉, 周歡, 等. 分布式數(shù)據(jù)庫(kù)中一致性與可用性的關(guān)系[J]. 軟件學(xué)報(bào), 2018, 29(1): 131-149

      [9] 張宇. 分布式數(shù)據(jù)庫(kù)一致性和可用性方法優(yōu)化方案研究[D]. 成都: 成都理工大學(xué), 2014.

      [10] 信息安全技術(shù) 信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范: GB/T 20889-2007[S]. 北京: 中國(guó)標(biāo)準(zhǔn)出版社, 2007.

      瓦房店市| 健康| 喀喇沁旗| 攀枝花市| 庆城县| 山阴县| 福泉市| 封丘县| 郯城县| 济宁市| 渭南市| 达拉特旗| 湘潭县| 阿鲁科尔沁旗| 若尔盖县| 文昌市| 平陆县| 庆安县| 广州市| 化德县| 云和县| 新丰县| 巍山| 融水| 江城| 大同市| 元氏县| 大兴区| 崇礼县| 崇文区| 保亭| 来凤县| 罗定市| 勐海县| 普定县| 苍梧县| 清苑县| 乌苏市| 云阳县| 保亭| 搜索|