專利名稱:用于在計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中物化查詢表日志的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng),并且更明確地說(shuō),涉及用于在計(jì)算機(jī)數(shù)據(jù)庫(kù)中物化查詢表(MQT)日志的裝置和方法。
背景技術(shù):
數(shù)據(jù)庫(kù)系統(tǒng)以允許用戶搜索和取回在數(shù)據(jù)庫(kù)中的特定信息的方式,允許計(jì)算機(jī)存儲(chǔ)大量信息。信息典型地存儲(chǔ)在數(shù)據(jù)庫(kù)表中。表包含數(shù)據(jù)的列和行。在表中的數(shù)據(jù)與在對(duì)應(yīng)列和行中的其他數(shù)據(jù)相關(guān)或有關(guān)。數(shù)據(jù)的關(guān)系存儲(chǔ)在索引中。
從數(shù)據(jù)庫(kù)取回信息典型地是使用查詢進(jìn)行的。數(shù)據(jù)庫(kù)查詢典型地包括用邏輯操作符互相聯(lián)系的一個(gè)或多個(gè)謂語(yǔ)表達(dá)式。針對(duì)滿足查詢的記錄搜索數(shù)據(jù)庫(kù),并且作為查詢結(jié)果返回那些記錄。在數(shù)據(jù)庫(kù)系統(tǒng)中,通常是頻繁地發(fā)出相同或密切相關(guān)的查詢。當(dāng)數(shù)據(jù)庫(kù)包含非常大量的數(shù)據(jù)時(shí),對(duì)于數(shù)據(jù)庫(kù)的某些查詢可能占用不可接受的長(zhǎng)的時(shí)間來(lái)執(zhí)行。
已經(jīng)成為通常做法的是,把常常重復(fù)的查詢的結(jié)果保持在數(shù)據(jù)庫(kù)表中。通過(guò)保持查詢的結(jié)果,產(chǎn)生結(jié)果所要求的高成本連接(join)操作不必每當(dāng)發(fā)出查詢時(shí)進(jìn)行。而是,數(shù)據(jù)庫(kù)服務(wù)器通過(guò)簡(jiǎn)單地取回預(yù)存儲(chǔ)的數(shù)據(jù)而響應(yīng)查詢。這些存儲(chǔ)的結(jié)果有時(shí)稱作物化視圖或物化查詢表(MQT)。MQT的目的是提供數(shù)據(jù)的集合,上述數(shù)據(jù)可滿足很多隨后查詢,而不用重復(fù)對(duì)于數(shù)據(jù)庫(kù)的完全訪問(wèn)。
計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)也可以使用高可用性(HA)或數(shù)據(jù)庫(kù)復(fù)制技術(shù)。高可用性是指不顧用于升級(jí)的計(jì)劃不可用或由硬件或軟件故障引起的非計(jì)劃不可用的可用性。這種技術(shù)通過(guò)跨過(guò)多個(gè)服務(wù)器的數(shù)據(jù)分段和復(fù)制實(shí)現(xiàn)高數(shù)據(jù)可用性。這種技術(shù)典型地依賴于發(fā)送和接收日志條目,以保持跨過(guò)服務(wù)器的復(fù)制數(shù)據(jù)的數(shù)據(jù)一致性。
通過(guò)把日志條目從源系統(tǒng)發(fā)送到目標(biāo)系統(tǒng),HA系統(tǒng)允許在目標(biāo)系統(tǒng)上復(fù)制MQT以及基本表,MQT是建立在該基本表上的。HA系統(tǒng)也允許系統(tǒng)管理者在目標(biāo)系統(tǒng)處不復(fù)制MQT。在這種情況下,目標(biāo)系統(tǒng)以正常方式使用基本表數(shù)據(jù)產(chǎn)生MQT。使用日志條目在目標(biāo)系統(tǒng)處復(fù)制MQT是有利的,但時(shí)常這樣做可能使系統(tǒng)資源緊張。
沒(méi)有一種在HA系統(tǒng)中更好利用MQT的方式,計(jì)算機(jī)產(chǎn)業(yè)將繼續(xù)遭受低效率和差的數(shù)據(jù)庫(kù)性能。
發(fā)明內(nèi)容
按照優(yōu)選實(shí)施例,一種裝置和方法,在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)中以更高效方式利用MQT,以改進(jìn)數(shù)據(jù)庫(kù)性能和效用。在優(yōu)選實(shí)施例中,MQT控制文件指示用于特定表的日志條目是否將傳播到駐留在其他計(jì)算機(jī)服務(wù)器上的復(fù)制數(shù)據(jù)庫(kù)。在其他實(shí)施列中,MQT控制文件包括用來(lái)控制何時(shí)傳播接通和斷開(kāi)的度量。這允許系統(tǒng)管理者建立確定何時(shí)使用傳播和何時(shí)斷開(kāi)傳播的參數(shù)。這通過(guò)在特定時(shí)刻,如當(dāng)系統(tǒng)忙于由系統(tǒng)管理者建立的度量所確定的關(guān)鍵任務(wù)時(shí),節(jié)省系統(tǒng)資源而允許性能的最大化。
通過(guò)如在附圖中所表明的本發(fā)明優(yōu)選實(shí)施例的如下更具體描述,本發(fā)明的以上和其他特征和優(yōu)點(diǎn)將變得明顯。
下文將結(jié)合附圖,描述本發(fā)明的優(yōu)選實(shí)施例,其中相同的標(biāo)號(hào)指示相同的部件,并且圖1是按照優(yōu)選實(shí)施例的計(jì)算機(jī)系統(tǒng)裝置;圖2是根據(jù)優(yōu)選實(shí)施例的HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng);圖3是用于現(xiàn)有技術(shù)HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)的示例屏幕顯示;圖4是用于根據(jù)現(xiàn)有技術(shù)的HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)的屏幕顯示;圖5是用于根據(jù)現(xiàn)有技術(shù)的HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)的屏幕顯示;
圖6是用于根據(jù)優(yōu)選實(shí)施例的HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)的屏幕顯示;圖7是表,表明了用于根據(jù)優(yōu)選實(shí)施例的HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)的MQT控制文件的內(nèi)容;圖8是根據(jù)優(yōu)選實(shí)施例的方法的示例流程圖;圖9是根據(jù)優(yōu)選實(shí)施例的方法的示例流程圖;及圖10是根據(jù)優(yōu)選實(shí)施例的方法的示例流程圖。
具體實(shí)施例方式
概述本發(fā)明涉及在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)中更高效地利用MQT以改進(jìn)數(shù)據(jù)庫(kù)性能和效用的裝置和方法。對(duì)于不熟悉數(shù)據(jù)庫(kù)或查詢的那些人,這個(gè)概述章節(jié)提供幫助理解本發(fā)明的背景信息。
已知數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)查詢?cè)诂F(xiàn)有技術(shù)中已知有多種不同類型的數(shù)據(jù)庫(kù)。最普通的稱作關(guān)系數(shù)據(jù)庫(kù)(RDB),關(guān)系數(shù)據(jù)庫(kù)以表組織數(shù)據(jù),該表具有代表在數(shù)據(jù)庫(kù)中的各個(gè)條目或記錄的行、和定義什么存儲(chǔ)在每個(gè)條目或記錄中的列。
更廣義地看,在數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)容器中,其中每個(gè)容器包含記錄,并且在每個(gè)記錄內(nèi)的數(shù)據(jù)組織成一個(gè)或多個(gè)字段。在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,如上述那樣,數(shù)據(jù)容器稱作表,記錄稱作行,及字段稱作列。在面向?qū)ο蟮臄?shù)據(jù)庫(kù)中,數(shù)據(jù)容器稱作對(duì)象類,記錄稱作對(duì)象,及字段稱作屬性。其他數(shù)據(jù)庫(kù)體系結(jié)構(gòu)可能使用其他術(shù)語(yǔ)。盡管不旨在限于關(guān)系數(shù)據(jù)庫(kù),但為了解釋目的,這里使用的例子和術(shù)語(yǔ)將是典型地與關(guān)系數(shù)據(jù)庫(kù)相關(guān)的。因而,術(shù)語(yǔ)“表”、“行”及“列”這里用來(lái)分別指數(shù)據(jù)容器、記錄、及字段,并且類似地應(yīng)用于其他類型的數(shù)據(jù)庫(kù)容器。
從數(shù)據(jù)庫(kù)取回信息典型地使用查詢進(jìn)行。數(shù)據(jù)庫(kù)查詢是由數(shù)據(jù)庫(kù)管理器評(píng)估的表達(dá)式。表達(dá)式可以包含用來(lái)從數(shù)據(jù)庫(kù)取回?cái)?shù)據(jù)的一個(gè)或多個(gè)謂語(yǔ)表達(dá)式。例如,假定有用于公司的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)包括雇員的表,在表中的列代表雇員的姓名、地址、電話號(hào)碼、性別、及薪水。對(duì)于以這樣的格式存儲(chǔ)的數(shù)據(jù),可用公式表示取回具有高于$40,000薪水的所有女雇員的記錄的查詢。類似地,可用公式表示取回具有特定區(qū)號(hào)或電話號(hào)碼前綴的所有雇員的記錄的查詢。定義查詢的一種流行方式使用結(jié)構(gòu)化查詢語(yǔ)言(SQL)。SQL定義用來(lái)產(chǎn)生和處理查詢的句法,該句法獨(dú)立于數(shù)據(jù)庫(kù)的實(shí)際結(jié)構(gòu)和格式。
在數(shù)據(jù)庫(kù)系統(tǒng)中,通常是頻繁地發(fā)出相同或密切相關(guān)的查詢。為了響應(yīng)這樣的查詢,數(shù)據(jù)庫(kù)服務(wù)器典型地必須進(jìn)行多個(gè)join操作,因?yàn)閿?shù)據(jù)庫(kù)記錄包含響應(yīng)查詢所需要的信息。當(dāng)數(shù)據(jù)庫(kù)包含非常大量的數(shù)據(jù)時(shí),對(duì)于數(shù)據(jù)庫(kù)的某些查詢可能占用不可接受的長(zhǎng)的時(shí)間來(lái)執(zhí)行。當(dāng)查詢(它采取SQL數(shù)據(jù)庫(kù)語(yǔ)言的“SELECT”語(yǔ)句的形式)要求在大量數(shù)據(jù)庫(kù)表中的join操作時(shí),執(zhí)行查詢的成本可能特別顯著。
物化查詢表已經(jīng)成為通常做法的是,把常常重復(fù)的查詢的結(jié)果保持在數(shù)據(jù)庫(kù)表或一些其他永久數(shù)據(jù)庫(kù)對(duì)象中。通過(guò)保持查詢的結(jié)果,產(chǎn)生結(jié)果所要求的高成本join操作不必每當(dāng)發(fā)出查詢時(shí)進(jìn)行。而是,數(shù)據(jù)庫(kù)服務(wù)器通過(guò)簡(jiǎn)單地取回預(yù)存儲(chǔ)的數(shù)據(jù)而響應(yīng)查詢。這些存儲(chǔ)的結(jié)果有時(shí)稱作物化視圖或物化查詢表(MQT)。MQT初始可以是給定查詢的計(jì)算結(jié)果。MQT的目的是提供數(shù)據(jù)集合,上述數(shù)據(jù)可滿足多個(gè)隨后的查詢,而不用重復(fù)對(duì)于數(shù)據(jù)庫(kù)的完全訪問(wèn)。
典型地,查詢表定義是數(shù)據(jù)庫(kù)查詢的形式,其在這里稱作物化查詢。物化查詢被處理,并且結(jié)果作為MQT而存儲(chǔ)。結(jié)果可以是行的形式,這些行可以是來(lái)自單個(gè)基本表的行或通過(guò)連接在基本表中的行而創(chuàng)建的行。物化查詢表消除了每當(dāng)執(zhí)行查詢時(shí)與收集和導(dǎo)出數(shù)據(jù)相關(guān)的開(kāi)銷。通過(guò)稱作查詢重寫(xiě)的過(guò)程,查詢可被優(yōu)化以識(shí)別和使用可回答查詢的現(xiàn)存物化查詢表。典型地,查詢重寫(xiě)優(yōu)化對(duì)于提交查詢的應(yīng)用是透明的。就是說(shuō),重寫(xiě)操作自動(dòng)地發(fā)生,并且不要求應(yīng)用知道物化查詢表的存在,以及在原始查詢中特定物化查詢表已經(jīng)被替代。
HA系統(tǒng)使用日志管理系統(tǒng)從源系統(tǒng)到目標(biāo)系統(tǒng)復(fù)制數(shù)據(jù)庫(kù)表,上述日志管理系統(tǒng)發(fā)送日志條目,以保持復(fù)制數(shù)據(jù)庫(kù)對(duì)于源數(shù)據(jù)庫(kù)最新。日志管理用來(lái)記錄在計(jì)算機(jī)系統(tǒng)上對(duì)象的活動(dòng)。日志管理系統(tǒng)創(chuàng)建叫做日志的對(duì)象。日志記錄以日志條目的形式規(guī)定的對(duì)象的活動(dòng)。日志把日志條目寫(xiě)在叫做日志接收器的另一個(gè)對(duì)象中。日志接收器使用日志條目在目標(biāo)系統(tǒng)上復(fù)制對(duì)象。
MQT有時(shí)與它們的基本表一起復(fù)制到在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中的另一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上。HA系統(tǒng)也允許系統(tǒng)管理者在目標(biāo)系統(tǒng)處不復(fù)制MQT。在這種情況下,目標(biāo)系統(tǒng)以正常方式使用基本表數(shù)據(jù)產(chǎn)生MQT。使用日志條目在目標(biāo)系統(tǒng)處復(fù)制MQT是有利的,但時(shí)常這樣做可能使系統(tǒng)資源緊張。
詳細(xì)描述優(yōu)選實(shí)施例在這里提供一種在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)中高效地利用MQT的裝置和方法。本發(fā)明允許數(shù)據(jù)庫(kù)管理器建立用于在目標(biāo)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)服務(wù)器中MQT的復(fù)制的自動(dòng)控制參數(shù)?,F(xiàn)在參照?qǐng)D1,計(jì)算機(jī)系統(tǒng)100是按照本發(fā)明優(yōu)選實(shí)施例的裝置的一種適當(dāng)實(shí)現(xiàn)。計(jì)算機(jī)系統(tǒng)100是IBM eServer iSeries計(jì)算機(jī)系統(tǒng)。然而,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明的機(jī)制和裝置同樣地適用于任何計(jì)算機(jī)系統(tǒng),而不管計(jì)算機(jī)系統(tǒng)是否是復(fù)雜的多用戶計(jì)算裝置、單用戶工作站、或嵌入式控制系統(tǒng)。如圖1中所示,計(jì)算機(jī)系統(tǒng)100包括處理器110、主存儲(chǔ)器120、海量存儲(chǔ)接口135、顯示器接口140、及網(wǎng)絡(luò)接口150。這些系統(tǒng)部件通過(guò)系統(tǒng)總線160的使用而互連。海量存儲(chǔ)接口135用來(lái)把海量存儲(chǔ)裝置(如直接訪問(wèn)存儲(chǔ)裝置155)連接到計(jì)算機(jī)系統(tǒng)100上。直接訪問(wèn)存儲(chǔ)裝置155的一種特定類型是可讀和可寫(xiě)CD RW驅(qū)動(dòng)器,該驅(qū)動(dòng)器可以把數(shù)據(jù)存儲(chǔ)到CD RW 195并且從其讀取數(shù)據(jù)。
按照優(yōu)選實(shí)施例的主存儲(chǔ)器120包含數(shù)據(jù)121、操作系統(tǒng)122、及數(shù)據(jù)庫(kù)123。數(shù)據(jù)121代表用作到在計(jì)算機(jī)系統(tǒng)100中的任何程序的輸入或來(lái)自其的輸出的任何數(shù)據(jù)。操作系統(tǒng)122是在產(chǎn)業(yè)中已知的多任務(wù)操作系統(tǒng),如i5/OS;然而,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明的精神和范圍不限于任何一種操作系統(tǒng)。數(shù)據(jù)庫(kù)123是任何適當(dāng)?shù)臄?shù)據(jù)庫(kù),而不管是當(dāng)前已知的還是將來(lái)開(kāi)發(fā)的。數(shù)據(jù)庫(kù)123包括一個(gè)或多個(gè)基本表(未表示)。存儲(chǔ)器120包括下面進(jìn)一步描述的數(shù)據(jù)庫(kù)傳播器124。在優(yōu)選實(shí)施例中,數(shù)據(jù)庫(kù)傳播器是數(shù)據(jù)庫(kù)123的部分。存儲(chǔ)器120還包括一個(gè)或多個(gè)數(shù)據(jù)庫(kù)查詢125、和數(shù)據(jù)庫(kù)查詢優(yōu)化器126。數(shù)據(jù)庫(kù)查詢125是與數(shù)據(jù)庫(kù)123相兼容的格式的查詢。該格式允許取回在數(shù)據(jù)庫(kù)123中存儲(chǔ)的、滿足數(shù)據(jù)庫(kù)查詢125的信息。數(shù)據(jù)庫(kù)查詢優(yōu)化器126優(yōu)化查詢125,并且產(chǎn)生由在數(shù)據(jù)庫(kù)123中的數(shù)據(jù)庫(kù)管理器(未表示)用來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的訪問(wèn)計(jì)劃。數(shù)據(jù)庫(kù)查詢優(yōu)化器126包括由查詢優(yōu)化器126按照優(yōu)選實(shí)施例更新的物化查詢表(MQT)127。查詢優(yōu)化器126還包括具有一個(gè)或多個(gè)傳播度量129的MQT控制文件128,如下面進(jìn)一步描述的。計(jì)算機(jī)系統(tǒng)100也包括日志接收器130,該日志接收器存儲(chǔ)由數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)傳播器使用的日志條目131。數(shù)據(jù)庫(kù)使用日志條目更新或回滾在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。傳播器將使用日志條目把數(shù)據(jù)傳播到其他目標(biāo)計(jì)算機(jī)或服務(wù)器,如下面進(jìn)一步描述的。
計(jì)算機(jī)系統(tǒng)100利用熟知的虛擬尋址機(jī)制,所述虛擬尋址機(jī)制允許計(jì)算機(jī)系統(tǒng)100的程序表現(xiàn)得就像它們僅訪問(wèn)巨大、單一存儲(chǔ)實(shí)體的,而不是訪問(wèn)諸如主存儲(chǔ)器120和DASD裝置155之類的多個(gè)、較小存儲(chǔ)實(shí)體。因此,盡管數(shù)據(jù)121、操作系統(tǒng)122、數(shù)據(jù)庫(kù)123、數(shù)據(jù)庫(kù)查詢125、數(shù)據(jù)庫(kù)查詢優(yōu)化器126、及日志接收器130表示成駐留在主存儲(chǔ)器120中,但本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,這些項(xiàng)不必都同時(shí)完全包含在主存儲(chǔ)器120中。也應(yīng)該注意,術(shù)語(yǔ)存儲(chǔ)器這里用來(lái)一般指計(jì)算機(jī)系統(tǒng)100的整個(gè)虛擬存儲(chǔ)器,并且可以包括連接到計(jì)算機(jī)系統(tǒng)100上的其他計(jì)算機(jī)系統(tǒng)的虛擬存儲(chǔ)器。
處理器110可以由一個(gè)或多個(gè)微處理器和/或集成電路構(gòu)造。處理器110執(zhí)行在主存儲(chǔ)器120中存儲(chǔ)的程序指令。主存儲(chǔ)器120存儲(chǔ)處理器110可以訪問(wèn)的程序和數(shù)據(jù)。當(dāng)計(jì)算機(jī)系統(tǒng)100啟動(dòng)時(shí),處理器110初始執(zhí)行組成操作系統(tǒng)122的程序指令。操作系統(tǒng)122是管理計(jì)算機(jī)系統(tǒng)100的資源的復(fù)雜程序。這些資源的一些是處理器110、主存儲(chǔ)器120、海量存儲(chǔ)接口135、顯示器接口140、網(wǎng)絡(luò)接口150及系統(tǒng)總線160。
盡管計(jì)算機(jī)系統(tǒng)100表示成僅包含單個(gè)處理器和單根系統(tǒng)總線,但本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,使用具有多個(gè)處理器和/或多根總線的計(jì)算機(jī)系統(tǒng)可以實(shí)施本發(fā)明。另外,在優(yōu)選實(shí)施例中使用的接口每個(gè)包括分離的、完全編程的微處理器,這些微處理器用來(lái)從處理器110卸載(offload)計(jì)算密集處理。然而,本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明同樣適用于簡(jiǎn)單使用I/O適配器完成類似功能的計(jì)算機(jī)系統(tǒng)。
顯示器接口140用來(lái)直接把一個(gè)或多個(gè)顯示器165連接到計(jì)算機(jī)系統(tǒng)100上??梢允欠侵悄?即,啞)終端或完全可編程工作站的這些顯示器165用來(lái)允許系統(tǒng)管理者和用戶與計(jì)算機(jī)系統(tǒng)100通信。然而注意,盡管顯示器接口140被提供成支持與一個(gè)或多個(gè)顯示器165通信,但計(jì)算機(jī)系統(tǒng)100不必要求顯示器165,因?yàn)榻?jīng)網(wǎng)絡(luò)接口150可以發(fā)生所有需要的與用戶的交互和其他過(guò)程。
網(wǎng)絡(luò)接口150用來(lái)跨過(guò)網(wǎng)絡(luò)170把其他計(jì)算機(jī)系統(tǒng)和/或工作站(例如,在圖1中的175)連接到計(jì)算機(jī)系統(tǒng)100上。不管計(jì)算機(jī)系統(tǒng)100如何連接到其他計(jì)算機(jī)系統(tǒng)和/或工作站上,不管網(wǎng)絡(luò)170是否使用當(dāng)今模擬和/或數(shù)字技術(shù)或經(jīng)將來(lái)的某種聯(lián)網(wǎng)機(jī)制構(gòu)成,本發(fā)明都同樣適用。另外,多種不同的網(wǎng)絡(luò)協(xié)議可用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)。這些協(xié)議是允許計(jì)算機(jī)跨過(guò)網(wǎng)絡(luò)170通信的專用計(jì)算機(jī)程序。TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是適當(dāng)網(wǎng)絡(luò)協(xié)議的例子。
這里,重要的是注意,盡管在全功能計(jì)算機(jī)系統(tǒng)的上下文中已經(jīng)描述并且將繼續(xù)描述本發(fā)明,但本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明能夠作為以各種形式的程序產(chǎn)品而分布,并且本發(fā)明同樣適用而與用來(lái)實(shí)際實(shí)現(xiàn)分布的具體類型的信號(hào)承載介質(zhì)無(wú)關(guān)。適當(dāng)信號(hào)承載介質(zhì)的例子包括可記錄型介質(zhì),如軟盤和CDRW(例如圖1的195);和傳輸類型介質(zhì),如數(shù)字和模擬通信鏈路。注意,優(yōu)選信號(hào)承載介質(zhì)是有形的。
圖2表明根據(jù)優(yōu)選實(shí)施例的HA數(shù)據(jù)庫(kù)系統(tǒng)200。HA數(shù)據(jù)庫(kù)系統(tǒng)200具有稱作客戶服務(wù)器100(A)的第一計(jì)算機(jī)服務(wù)器??蛻舴?wù)器100(A)與表明為目標(biāo)服務(wù)器100(B)和目標(biāo)服務(wù)器100(C)的一個(gè)或多個(gè)目標(biāo)系統(tǒng)通信。客戶服務(wù)器100(A)和目標(biāo)服務(wù)器100(B)、100(C)通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)210互連。計(jì)算機(jī)服務(wù)器的每一個(gè),客戶和目標(biāo)計(jì)算機(jī)都可包括在圖1中所表示的計(jì)算機(jī)系統(tǒng)100。當(dāng)然,對(duì)于本領(lǐng)域的技術(shù)人員很顯然,可以有另外客戶服務(wù)器和目標(biāo)服務(wù)器連接到計(jì)算機(jī)網(wǎng)絡(luò)210。
再參照?qǐng)D2,在表明的HA數(shù)據(jù)庫(kù)系統(tǒng)200中,客戶和目標(biāo)服務(wù)器100(A)、100(B)、100(C)的每一個(gè)包括數(shù)據(jù)庫(kù)傳播器124。數(shù)據(jù)庫(kù)傳播器124與數(shù)據(jù)庫(kù)協(xié)作以把日志條目傳播到目標(biāo)服務(wù)器而在目標(biāo)位置處復(fù)制數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)傳播在現(xiàn)有技術(shù)中是已知的,并且描述的數(shù)據(jù)庫(kù)傳播器124以類似方式工作但具有這里描述的另外特征。在HA數(shù)據(jù)庫(kù)系統(tǒng)200中的客戶和目標(biāo)服務(wù)器100(A)、100(B)、100(C)的每一個(gè)還包括日志接收器130。日志接收器在現(xiàn)有技術(shù)中也是已知的,并且用來(lái)存儲(chǔ)和處理在客戶服務(wù)器100(A)和目標(biāo)服務(wù)器100(B)、100(C)中的日志條目。數(shù)據(jù)庫(kù)使用日志條目更新或回滾在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。日志接收器130的特征除下面進(jìn)一步描述的附加特征之外類似于現(xiàn)有技術(shù)。
圖3代表操作根據(jù)現(xiàn)有技術(shù)的HA數(shù)據(jù)庫(kù)系統(tǒng)的計(jì)算機(jī)的顯示300。顯示300表示用于說(shuō)明的和與下面描述的優(yōu)選實(shí)施例相對(duì)比的示例數(shù)據(jù)。顯示300代表對(duì)于系統(tǒng)管理者顯示用于與日志QSQJRN相關(guān)的日志接收器QSQJRN0001的日志接收器屬性的HA計(jì)算機(jī)系統(tǒng)100(A)。接收器屬性包括各種信息,這里僅簡(jiǎn)要地解釋其中一些,因?yàn)槠湓诒绢I(lǐng)域是已知的并且對(duì)于本發(fā)明不重要。接收器屬性的上部塊310包括對(duì)于日志何時(shí)接收器附加和脫開(kāi)的時(shí)間信息。接收器屬性顯示的上部塊310也表示何時(shí)接收器最后保存、大小和相關(guān)庫(kù)、及文本行。接收器屬性的下部塊320包括輔助存儲(chǔ)池、狀態(tài)、條目數(shù)量、最小化固定長(zhǎng)度、接收器最大選項(xiàng)、最大條目特定數(shù)據(jù)長(zhǎng)度、最大化零值指示符、第一序列號(hào)、及最后序列號(hào)。
圖4表明操作根據(jù)現(xiàn)有技術(shù)的HA數(shù)據(jù)庫(kù)系統(tǒng)的計(jì)算機(jī)的另一顯示400。在圖4中,顯示400代表在顯示由系統(tǒng)管理者啟動(dòng)的瞬時(shí)對(duì)于系統(tǒng)管理者顯示在圖3中表示的日志接收器QSQJRN中駐留的日志條目的HA計(jì)算機(jī)系統(tǒng)100(A)。顯示400表示由序列號(hào)碼410列出的日志接收器中駐留的日志條目。顯示400包括作為序列號(hào)碼14至序列號(hào)碼18列出的五個(gè)日志條目。除用于每個(gè)日志條目的序列號(hào)碼410之外,顯示400包括代碼412、條目類型414、條目對(duì)象416、條目駐留在其中的庫(kù)418、啟動(dòng)日志條目的工作420、及日志條目進(jìn)入日志接收器中的時(shí)間422。在表明的例子中,代碼R是指日志條目是用于記錄級(jí)別操作。日志類型PT是指日志條目是放入(插入)操作。
圖5表明操作根據(jù)現(xiàn)有技術(shù)的HA數(shù)據(jù)庫(kù)系統(tǒng)的計(jì)算機(jī)畫(huà)面的另一顯示500。在圖5中,顯示500代表對(duì)于系統(tǒng)管理者顯示在圖3中表示的日志接收器QSQJRN中的單個(gè)日志條目的HA計(jì)算機(jī)系統(tǒng)100(A)。顯示500包括在圖4中作為序列號(hào)碼16表示的日志條目的內(nèi)容。對(duì)于本發(fā)明特別感興趣的是指示日志條目是否用于MQT的MQT條目510。這個(gè)條目與在下面描述的日志接收器中的添加條目和在下面圖7中表示的MQT控制文件一道由本發(fā)明使用。
圖6表明操作根據(jù)優(yōu)選實(shí)施例的HA數(shù)據(jù)庫(kù)系統(tǒng)的計(jì)算機(jī)畫(huà)面的顯示600。顯示600類似于在圖3中表示的現(xiàn)有技術(shù)顯示。顯示600表示對(duì)于系統(tǒng)管理者顯示用于與日志QSQJRN相關(guān)的日志接收器QSQJRN0001的日志接收器屬性的HA計(jì)算機(jī)系統(tǒng)。表明的接收器屬性包括以上對(duì)于圖3描述的相同信息,并且也包括根據(jù)優(yōu)選實(shí)施例的進(jìn)一步信息。接收器屬性的上部塊610包括以上在圖3中關(guān)于310描述的相同信息。接收器屬性的下部塊620除根據(jù)優(yōu)選實(shí)施例的MQT傳播屬性630、632之外包括以上描述的信息。
再參照?qǐng)D6,MQT傳播屬性630、632添加到現(xiàn)有技術(shù)接收器屬性上,以允許接收器自動(dòng)地控制在目標(biāo)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)服務(wù)器中MQT的傳播。這些屬性可使用這種顯示畫(huà)面或借助于叫做修改日志接收器屬性(Modify Journal Receiver Attribute)的類似顯示畫(huà)面由系統(tǒng)管理者修改。第一傳播屬性630指示允許從如圖2中所示客戶服務(wù)器100(A)到一個(gè)或多個(gè)目標(biāo)計(jì)算機(jī)100(B)、100(C)的所有MQT的傳播。第二傳播屬性632指示基于文件是否傳播MQT。這種屬性是指,如下面參照?qǐng)D7描述的那樣,如果設(shè)置用于對(duì)應(yīng)MQT的傳播文件標(biāo)志720,則將傳播MQT。在優(yōu)選實(shí)施例中,數(shù)據(jù)庫(kù)傳播器軟件的任務(wù)是檢查傳播MQT屬性630和基于文件傳播MQT屬性632的狀態(tài)。如果這些屬性都是“是”,那么如下面描述的那樣,在MQT控制文件128中的每個(gè)表根據(jù)在MQT控制文件128中建立的任何度量被處理,以接通或斷開(kāi)傳播。
圖7表示信息表,該信息表代表根據(jù)優(yōu)選實(shí)施例的MQT控制文件128。MQT控制文件128優(yōu)選地由數(shù)據(jù)庫(kù)傳播器124存儲(chǔ)。MQT控制文件128包括用于在MQT控制文件128中列出的每個(gè)MQT 710的數(shù)據(jù)條目。在表明的圖7的例子中,用于每個(gè)MQT 710的數(shù)據(jù)是在MQT控制文件128中的一行參數(shù)。在MQT控制文件128中的第一參數(shù)是傳播文件標(biāo)志720。這個(gè)標(biāo)志指示關(guān)于系統(tǒng)是否應(yīng)該把文件傳播或日志到目標(biāo)系統(tǒng)的是或否。在優(yōu)選實(shí)施例中,在MQT控制文件中對(duì)于每個(gè)目標(biāo)系統(tǒng)有傳播文件標(biāo)志720。在表明的圖2的例子中,有目標(biāo)計(jì)算機(jī)B和目標(biāo)計(jì)算機(jī)C,所以如所示在MQT控制文件128中有對(duì)于計(jì)算機(jī)B和計(jì)算機(jī)C的對(duì)應(yīng)傳播文件標(biāo)志720。
再參照?qǐng)D7,MQT控制文件參數(shù)也包括多個(gè)度量730、740、750,這些度量由系統(tǒng)管理者預(yù)置,以控制在目標(biāo)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)服務(wù)器中MQT的傳播。表明的度量不是可包括在要求保護(hù)的本發(fā)明的范圍內(nèi)的度量的窮盡。第一度量是CPU度量730。這個(gè)度量可指示用于客戶(A)和目標(biāo)計(jì)算機(jī)(B、C)的CPU利用百分比或某些其他CPU參數(shù)。下一個(gè)度量是I/O度量740。這個(gè)度量檢查產(chǎn)生關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的整體性能的限制因素的某個(gè)I/O端口或任務(wù)的利用。下個(gè)度量是客戶定義度量750。這個(gè)度量允許最終用戶或客戶定義特別感興趣的度量,以定制特定用戶系統(tǒng)要求的性能。
在優(yōu)選實(shí)施例中,在HA數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)庫(kù)傳播器124的任務(wù)定期地基于度量730、740、750設(shè)置傳播文件標(biāo)志720。計(jì)算機(jī)任務(wù)可以使用任何已知或?qū)?lái)技術(shù),以使用在MQT控制文件中的度量檢查HA系統(tǒng)的或在HA系統(tǒng)內(nèi)的任何計(jì)算機(jī)的性能,并且基于與系統(tǒng)性能相比較的這些度量,然后自動(dòng)地設(shè)置傳播文件標(biāo)志720。在設(shè)置傳播文件標(biāo)志720之后,在客戶服務(wù)器100(A)上的數(shù)據(jù)庫(kù)傳播器124必須把同步消息發(fā)送到在目標(biāo)服務(wù)器100(B)、100(C)上的數(shù)據(jù)庫(kù)傳播器,以保持?jǐn)?shù)據(jù)完整性。如果傳播文件被斷開(kāi),則目標(biāo)服務(wù)器然后必須開(kāi)始使用基本表信息以創(chuàng)建MQT,因?yàn)镸QT不再傳播。如果同步消息指示MQT正在傳播,則目標(biāo)服務(wù)器可開(kāi)始使用傳播的數(shù)據(jù)以保持MQT。
現(xiàn)在參照?qǐng)D8,流程圖表示根據(jù)優(yōu)選實(shí)施例的用來(lái)在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中高效使用MQT的方法800。方法800呈現(xiàn)為由以上描述為數(shù)據(jù)庫(kù)傳播器124的計(jì)算機(jī)軟件程序執(zhí)行的一系列步驟。表明的方法被定期地運(yùn)行或否則被啟動(dòng),以處理在源計(jì)算機(jī)系統(tǒng)上的待處理日志條目。數(shù)據(jù)庫(kù)傳播器124確定是否有更多日志條目要處理(步驟810)。如果有日志條目要處理(步驟810=是),那么數(shù)據(jù)庫(kù)傳播器獲得日志條目(步驟820)。如果日志條目不與MQT相對(duì)應(yīng)(步驟830=否),那么數(shù)據(jù)庫(kù)傳播器進(jìn)入處理?xiàng)l目(步驟840)。在處理?xiàng)l目時(shí),數(shù)據(jù)庫(kù)傳播器與在目標(biāo)系統(tǒng)上操作的數(shù)據(jù)庫(kù)傳播器通信,以把數(shù)據(jù)庫(kù)復(fù)制在目標(biāo)計(jì)算機(jī)系統(tǒng)上。如果日志條目與MQT相對(duì)應(yīng)(步驟830=是),那么數(shù)據(jù)庫(kù)傳播器進(jìn)入通過(guò)檢查MQT控制文件確定對(duì)于對(duì)應(yīng)MQT是否接通傳播文件(步驟850)。如果對(duì)于當(dāng)前MQT接通傳播文件(步驟850=是),那么數(shù)據(jù)庫(kù)傳播器進(jìn)入處理?xiàng)l目(步驟840)。如果對(duì)于當(dāng)前日志條目的MQT斷開(kāi)傳播文件(步驟850=否),那么數(shù)據(jù)庫(kù)傳播器跳過(guò)該日志條目(步驟860),并且返回到步驟810。如果沒(méi)有更多日志條目(步驟810=否),那么方法800完成。
現(xiàn)在參照?qǐng)D9,流程圖表示根據(jù)優(yōu)選實(shí)施例的用來(lái)監(jiān)視在源計(jì)算機(jī)系統(tǒng)上的傳播度量并且把同步消息發(fā)送到目標(biāo)計(jì)算機(jī)系統(tǒng)的方法900。當(dāng)基于文件傳播MQT標(biāo)志632如上述那樣設(shè)置為“是”時(shí),方法900的步驟定期地如由源計(jì)算機(jī)上的定時(shí)中斷執(zhí)行。方法900呈現(xiàn)為由以上描述為數(shù)據(jù)庫(kù)傳播器124的計(jì)算機(jī)軟件程序執(zhí)行的一系列步驟。描述的步驟也可視作由執(zhí)行數(shù)據(jù)庫(kù)操作的數(shù)據(jù)庫(kù)引擎執(zhí)行,其中數(shù)據(jù)庫(kù)傳播器是該數(shù)據(jù)庫(kù)引擎的部分。方法900對(duì)于在MQT配置文件中的每個(gè)表執(zhí)行一系列步驟(步驟910)。方法900從MQT配置文件獲得條目(步驟920)。依據(jù)度量的類型而處理度量,以確定源計(jì)算機(jī)應(yīng)該接通傳播還是斷開(kāi)傳播(步驟930)。如果度量的處理確定應(yīng)該斷開(kāi)傳播(步驟940=是),那么同步消息被發(fā)送到服務(wù)器以轉(zhuǎn)發(fā)到目標(biāo)計(jì)算機(jī)(步驟950),并且方法針對(duì)在MQT配置文件中的下一個(gè)MQT返回(步驟910)。如果度量的處理確定應(yīng)該接通傳播(步驟960=是),那么同步消息發(fā)送到服務(wù)器以轉(zhuǎn)發(fā)到目標(biāo)計(jì)算機(jī)(步驟970),并且方法針對(duì)在MQT配置文件中的下一個(gè)MQT返回(步驟910)。當(dāng)已經(jīng)處理在MQT配置文件中的每個(gè)MQT時(shí)(步驟910),那么方法完成。
現(xiàn)在參照?qǐng)D10,流程圖表示根據(jù)優(yōu)選實(shí)施例的用來(lái)監(jiān)視在目標(biāo)計(jì)算機(jī)系統(tǒng)上的同步消息以指令數(shù)據(jù)庫(kù)系統(tǒng)何時(shí)更新MQT的方法1000。方法1000呈現(xiàn)為由以上描述為數(shù)據(jù)庫(kù)傳播器124的計(jì)算機(jī)軟件程序執(zhí)行并且在目標(biāo)計(jì)算機(jī)系統(tǒng)上執(zhí)行的一系列步驟。每當(dāng)接收到同步消息時(shí),方法1000執(zhí)行一系列步驟(步驟1010)。方法1000讀取接收的同步消息(步驟1020)。如果同步消息指示斷開(kāi)傳播(步驟1030=是),那么指令數(shù)據(jù)庫(kù)以傳統(tǒng)方式使用基本表更新對(duì)應(yīng)MQT(步驟1040),并且方法返回以等待下一個(gè)同步消息(步驟1010)。如果同步消息指示接通傳播(步驟1050=是),那么指令數(shù)據(jù)庫(kù)停止使用基本表更新對(duì)應(yīng)MQT(步驟1060),并且方法針對(duì)下一個(gè)同步消息返回(步驟1010)。每當(dāng)接收同步消息時(shí)方法如描述的那樣典型地以連續(xù)周期運(yùn)行(步驟1010)。
參照優(yōu)選實(shí)施例所描述的本發(fā)明提供對(duì)于現(xiàn)有技術(shù)的顯著改進(jìn)。描述的裝置和方法提供在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)中MQT的高效傳播。本發(fā)明提供一種改進(jìn)系統(tǒng)性能、并且減小在HA計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)庫(kù)訪問(wèn)的過(guò)度延遲的方式。
本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在本發(fā)明的范圍內(nèi)多種變更是可能的。因而,盡管本發(fā)明已經(jīng)參照其優(yōu)選實(shí)施例具體地表示和描述,但本領(lǐng)域的技術(shù)人員將理解,其中可以進(jìn)行形式和細(xì)節(jié)的這樣和那樣的變化,而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種裝置,包括至少一個(gè)處理器;存儲(chǔ)器,連接到至少一個(gè)處理器上;數(shù)據(jù)庫(kù),駐留在存儲(chǔ)器中,具有在至少一個(gè)基本表中的數(shù)據(jù);及數(shù)據(jù)庫(kù)傳播器,駐留在存儲(chǔ)器中,基于預(yù)置參數(shù)自動(dòng)地調(diào)節(jié)物化查詢表(MQT)的日志。
2.根據(jù)權(quán)利要求1所述的裝置,其中數(shù)據(jù)庫(kù)系統(tǒng)包括MQT控制文件,該MQT控制文件具有用于多個(gè)MQT的標(biāo)志,以指示對(duì)于對(duì)應(yīng)MQT,文件是否傳播到目標(biāo)計(jì)算機(jī)。
3.根據(jù)權(quán)利要求2所述的裝置,其中預(yù)置參數(shù)包括用于一個(gè)或多個(gè)目標(biāo)計(jì)算機(jī)的一個(gè)或多個(gè)度量,以指示何時(shí)指示文件待傳播的標(biāo)志應(yīng)該設(shè)置成傳播或不傳播。
4.根據(jù)權(quán)利要求3所述的裝置,其中一個(gè)或多個(gè)度量包括從如下選擇的度量CPU度量、I/O度量、及客戶定義度量。
5.根據(jù)權(quán)利要求1所述的裝置,其中數(shù)據(jù)庫(kù)日志系統(tǒng)包括在日志接收器屬性中的一個(gè)或多個(gè)控制標(biāo)志,所述控制標(biāo)志基于在文件中包含的一個(gè)或多個(gè)度量指示是否傳播MQT。
6.根據(jù)權(quán)利要求2所述的裝置,其中數(shù)據(jù)庫(kù)日志系統(tǒng)包括在日志接收器屬性中的一個(gè)或多個(gè)控制標(biāo)志,所述控制標(biāo)志基于在文件中包含的一個(gè)或多個(gè)度量指示是否傳播MQT。
7.一種用來(lái)利用在數(shù)據(jù)庫(kù)日志系統(tǒng)中的物化查詢表(MQT)的方法,該方法包括步驟對(duì)于在日志接收器中的每個(gè)日志條目,確定條目是否用于MQT;如果條目不是用于MQT則處理它;如果條目用于MQT,并且在MQT控制文件中設(shè)置了傳播文件標(biāo)志則處理它;及如果條目用于MQT,并且沒(méi)有設(shè)置傳播文件標(biāo)志則跳過(guò)它。
8.根據(jù)權(quán)利要求7所述的方法,其中MQT控制文件包括用于一個(gè)或多個(gè)目標(biāo)計(jì)算機(jī)的一個(gè)或多個(gè)度量,以指示何時(shí)指示文件待傳播的標(biāo)志應(yīng)該設(shè)置成傳播或不設(shè)置成傳播。
9.根據(jù)權(quán)利要求8所述的方法,其中一個(gè)或多個(gè)度量包括從如下選擇的度量CPU度量、I/O度量、及客戶定義度量。
10.根據(jù)權(quán)利要求7所述的方法,其中數(shù)據(jù)庫(kù)日志系統(tǒng)包括在日志接收器屬性中的一個(gè)或多個(gè)控制標(biāo)志,所述控制標(biāo)志基于在文件中包含的一個(gè)或多個(gè)度量指示是否傳播MQT。
11.根據(jù)權(quán)利要求7所述的方法,還包括步驟處理對(duì)于在MQT控制文件中的每個(gè)條目的度量;如果度量的處理指示計(jì)算機(jī)系統(tǒng)不滿足度量,則斷開(kāi)傳播;如果度量的處理指示計(jì)算機(jī)系統(tǒng)滿足度量,則接通傳播;及把同步消息發(fā)送到對(duì)應(yīng)目標(biāo)服務(wù)器,以接通或斷開(kāi)傳播。
12.根據(jù)權(quán)利要求11所述的方法,在目標(biāo)服務(wù)器上處理同步消息還包括步驟定期地讀取同步消息;如果在同步消息中接通傳播,則指令數(shù)據(jù)庫(kù)用日志條目更新MQT;及如果在同步消息中斷開(kāi)傳播,則指令數(shù)據(jù)庫(kù)停止用日志條目更新MQT。
全文摘要
一種裝置和方法在高可用性計(jì)算機(jī)數(shù)據(jù)庫(kù)中以更高效的方式利用MQT,以改進(jìn)數(shù)據(jù)庫(kù)性能和效用。在優(yōu)選實(shí)施例中,MQT控制文件指示用于特定表的日志條目是否傳播到駐留在其他計(jì)算機(jī)服務(wù)器上的復(fù)制數(shù)據(jù)庫(kù)。在其他實(shí)施列中,MQT控制文件包括用來(lái)控制何時(shí)傳播接通和斷開(kāi)的度量。
文檔編號(hào)G06F17/30GK1959676SQ20061014319
公開(kāi)日2007年5月9日 申請(qǐng)日期2006年11月2日 優(yōu)先權(quán)日2005年11月3日
發(fā)明者約翰·馬修·桑托薩奧索, 埃里克·勞倫斯·巴斯內(nèi)斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司