專(zhuān)利名稱(chēng)::分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù),尤其涉及一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)。
背景技術(shù):
:隨著計(jì)算機(jī)網(wǎng)絡(luò)的快速發(fā)展,出現(xiàn)了具有大量用戶(hù)的網(wǎng)絡(luò)應(yīng)用,這些網(wǎng)絡(luò)應(yīng)用需要存儲(chǔ)大量的用戶(hù)數(shù)據(jù)以及相關(guān)數(shù)據(jù)。先前的單臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器的數(shù)據(jù)存儲(chǔ)方式已經(jīng)不能滿(mǎn)足當(dāng)前網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)存儲(chǔ)要求。目前數(shù)據(jù)庫(kù)在使用中普遍采用主-從架構(gòu)(一般來(lái)說(shuō),主數(shù)據(jù)庫(kù)有一個(gè),從數(shù)據(jù)庫(kù)有多個(gè)),從數(shù)據(jù)庫(kù)只承擔(dān)讀操作,所有的寫(xiě)操作都由主數(shù)據(jù)庫(kù)來(lái)執(zhí)行。為了保證數(shù)據(jù)的一致性,從數(shù)據(jù)庫(kù)會(huì)不斷地從主數(shù)據(jù)庫(kù)同步最新寫(xiě)入的數(shù)據(jù)到從數(shù)據(jù)庫(kù)上。應(yīng)用程序員需要根據(jù)數(shù)據(jù)庫(kù)操作的讀寫(xiě)類(lèi)型,分別將數(shù)據(jù)庫(kù)操作語(yǔ)句發(fā)往主數(shù)據(jù)庫(kù)或從數(shù)據(jù)庫(kù),增加了應(yīng)用程序員的負(fù)擔(dān),提高了開(kāi)發(fā)成本。另外,從主數(shù)據(jù)庫(kù)到從數(shù)據(jù)庫(kù)的數(shù)據(jù)同步不是完全實(shí)時(shí)的,而是存在著一定的延遲時(shí)間,這就帶來(lái)了問(wèn)題。設(shè)想以下情況應(yīng)用程序向數(shù)據(jù)庫(kù)寫(xiě)一條數(shù)據(jù),如上所述,該數(shù)據(jù)會(huì)被寫(xiě)入到主數(shù)據(jù)庫(kù)中,然后馬上又要讀出該數(shù)據(jù),讀操作由從數(shù)據(jù)庫(kù)執(zhí)行,但此時(shí)從數(shù)據(jù)庫(kù)尚未來(lái)得及把該數(shù)據(jù)由主數(shù)據(jù)庫(kù)同步到本地,讀操作的執(zhí)行結(jié)果必然是未找到該數(shù)據(jù)或是讀到了該數(shù)據(jù)的舊版本,這就造成了錯(cuò)誤發(fā)生。除此之外,如果某臺(tái)數(shù)據(jù)庫(kù)服務(wù)器發(fā)生故障,而程序仍然向不可用的機(jī)器導(dǎo)入請(qǐng)求,就會(huì)發(fā)生錯(cuò)誤,此時(shí)只能通過(guò)修改程序來(lái)解決,維護(hù)成本很高。
發(fā)明內(nèi)容鑒于上述問(wèn)題,提出了本發(fā)明,以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)。依據(jù)本發(fā)明的一個(gè)方面,提供了一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng),包括分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備;一個(gè)或者多個(gè)應(yīng)用程序服務(wù)器,適于向該設(shè)備發(fā)送對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;以及主數(shù)據(jù)庫(kù)服務(wù)器以及一個(gè)或者多個(gè)從數(shù)據(jù)庫(kù)服務(wù)器,適于響應(yīng)于該設(shè)備的檢查,向該設(shè)備返回其狀態(tài),并且接收該設(shè)備分配的操作請(qǐng)求;其中,所述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備包括網(wǎng)絡(luò)接口,適于接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;操作請(qǐng)求解析器,適于解析該操作請(qǐng)求,以檢測(cè)該操作請(qǐng)求中的類(lèi)型注釋?zhuān)_定與該類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器;以及操作請(qǐng)求分配器,適于將該操作請(qǐng)求分配給所確定的數(shù)據(jù)庫(kù)服務(wù)器??蛇x地,在根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備中,當(dāng)該操作請(qǐng)求解析器未檢測(cè)到該操作請(qǐng)求中的類(lèi)型注釋時(shí),解析該操作請(qǐng)求,以判斷該操作請(qǐng)求的類(lèi)型,確定與該操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器;并且該操作請(qǐng)求分配器將該操作請(qǐng)求分配給所確定的與該操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器??蛇x地,在根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備中,該操作請(qǐng)求的類(lèi)型包括寫(xiě)操作和讀操作??蛇x地,在根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備中,該數(shù)據(jù)庫(kù)服務(wù)器包括主數(shù)據(jù)庫(kù)服務(wù)器和從數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于讀操作的數(shù)據(jù)庫(kù)服務(wù)器是從數(shù)據(jù)庫(kù)服務(wù)器??蛇x地,所述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備還包括數(shù)據(jù)庫(kù)檢查器,適于檢查該數(shù)據(jù)庫(kù)服務(wù)器;并且該操作請(qǐng)求分配器根據(jù)檢查結(jié)果將該操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。本發(fā)明提供了上述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)。根據(jù)本發(fā)明的實(shí)施例,可以解析接收到的對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求,以檢測(cè)操作請(qǐng)求中的類(lèi)型注釋?zhuān)⒏鶕?jù)類(lèi)型注釋?zhuān)_定相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器,并向其分配該操作請(qǐng)求。這樣,應(yīng)用開(kāi)發(fā)人員通過(guò)利用例如在諸如SQL語(yǔ)句之類(lèi)的操作請(qǐng)求中本來(lái)沒(méi)有意義的注釋語(yǔ)句,就可以確定要將操作請(qǐng)求分配給具體數(shù)據(jù)庫(kù)服務(wù)器,從而極大地提高了應(yīng)用開(kāi)發(fā)的靈活性。對(duì)于實(shí)時(shí)性要求較高的讀操作,只需要簡(jiǎn)單地在操作請(qǐng)求中添加表示主數(shù)據(jù)庫(kù)類(lèi)型的類(lèi)型注釋?zhuān)湍茏詣?dòng)地將該操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器,避免發(fā)生找不到所請(qǐng)求的數(shù)據(jù)或者讀取到該數(shù)據(jù)的舊版本的問(wèn)題。另外,根據(jù)本發(fā)明的實(shí)施例,在確定了要將操作請(qǐng)求分配到的數(shù)據(jù)庫(kù)服務(wù)器之后,還可以檢查該數(shù)據(jù)庫(kù)服務(wù)器,并根據(jù)檢查結(jié)果將該操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。這樣,在數(shù)據(jù)庫(kù)服務(wù)器集群中的某一臺(tái)或者多臺(tái)數(shù)據(jù)庫(kù)服務(wù)器發(fā)生故障時(shí),可以自動(dòng)檢測(cè)到該故障,不再把操作請(qǐng)求分配給存在故障的數(shù)據(jù)庫(kù)服務(wù)器。其中,在主數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障的情況下,寫(xiě)操作無(wú)法執(zhí)行,但讀操作不受影響;而在從數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障的情況下,可以轉(zhuǎn)而將讀操作分配給主數(shù)據(jù)庫(kù)服務(wù)器,從而讀寫(xiě)操作均不受影響。這一過(guò)程對(duì)于應(yīng)用程序完全透明,應(yīng)用程序員不在不需要對(duì)應(yīng)用程序作出任何修改,降低了應(yīng)用程序的維護(hù)成本。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I是根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法的流程圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法各步驟的流程圖;以及圖3是根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備以及系統(tǒng)的框圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖I示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法100的流5程圖。根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)庫(kù)例如可以是MySQL數(shù)據(jù)庫(kù)。在下文中,以MySQL數(shù)據(jù)庫(kù)為例,對(duì)本發(fā)明的原理進(jìn)行描述,然而,這只是為了示例的目的,本發(fā)明的范圍并不限于此,本發(fā)明的原理同樣適用于其它類(lèi)型的數(shù)據(jù)庫(kù)。如圖I所示,根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法100始于步驟S101,其中,接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求。該對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求例如來(lái)自于一個(gè)或者多個(gè)應(yīng)用服務(wù)器。圖2示意性地圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法各步驟的流程圖,下面將結(jié)合圖2對(duì)本發(fā)明的原理進(jìn)行詳細(xì)的描述。參見(jiàn)圖2,首先,從應(yīng)用服務(wù)器接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求,如果沒(méi)有接收到,則繼續(xù)等待;如果已經(jīng)接收到,則進(jìn)入下一步驟,即圖I所示的步驟S103。在步驟S103中,解析該操作請(qǐng)求,從而檢測(cè)操作請(qǐng)求中的類(lèi)型注釋。根據(jù)本發(fā)明的實(shí)施例,該操作請(qǐng)求可以包括數(shù)據(jù)庫(kù)程序語(yǔ)言語(yǔ)句,該數(shù)據(jù)庫(kù)程序語(yǔ)言可以是SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢(xún)語(yǔ)言),即,該操作請(qǐng)求包括SQL語(yǔ)句。然而,SQL語(yǔ)言和SQL語(yǔ)句僅為示例,用于幫助讀者理解本發(fā)明的原理,本發(fā)明的范圍并不限于此,而是同樣適用于其它適當(dāng)?shù)臄?shù)據(jù)庫(kù)程序語(yǔ)言和相對(duì)應(yīng)的語(yǔ)句。在解析操作請(qǐng)求時(shí),例如可以檢測(cè)SQL語(yǔ)句的開(kāi)頭是否包含類(lèi)型注釋?zhuān)词欠癜纭?*master*/”的主數(shù)據(jù)庫(kù)類(lèi)型注釋。如果包含,即檢測(cè)到操作請(qǐng)求中的類(lèi)型注釋?zhuān)瑒t可以進(jìn)入如圖I所示的步驟S105。在步驟S105中,確定與該檢測(cè)到的類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器??蛇x地,在此之前,如圖2所示,可以將該類(lèi)型注釋從操作請(qǐng)求中刪除。根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)庫(kù)服務(wù)器可以包括主數(shù)據(jù)庫(kù)服務(wù)器和從數(shù)據(jù)庫(kù)服務(wù)器。在步驟S105中,檢測(cè)該類(lèi)型注釋是否表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,如果是,即,例如類(lèi)型注釋為“/*master*/”,則可以確定與該類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器為主數(shù)據(jù)庫(kù)服務(wù)器。這樣,在隨后的步驟S107中,就可以將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器。然而,如果在步驟S103中,通過(guò)解析操作請(qǐng)求,未檢測(cè)到類(lèi)型注釋時(shí),就可以執(zhí)行步驟S103’,即,進(jìn)一步解析操作請(qǐng)求,來(lái)判斷操作請(qǐng)求的類(lèi)型。根據(jù)本發(fā)明的實(shí)施例,操作請(qǐng)求的類(lèi)型包括寫(xiě)操作和讀操作。在步驟S103’中,可以根據(jù)SQL語(yǔ)句中的關(guān)鍵字,來(lái)判斷操作請(qǐng)求的類(lèi)型。例如,可以檢測(cè)SQL語(yǔ)句中的第一個(gè)單詞,如果該單詞為例如INSERT、UPDATE、REPLACE等表示寫(xiě)操作的單詞,則判斷操作請(qǐng)求的類(lèi)型為寫(xiě)操作;而如果該單詞為不表示寫(xiě)操作的其它單詞,則判斷操作請(qǐng)求的類(lèi)型為讀操作。然后,執(zhí)行步驟S105’,確定與操作請(qǐng)求類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。根據(jù)本發(fā)明的實(shí)施例,對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于讀操作的數(shù)據(jù)庫(kù)服務(wù)器是從數(shù)據(jù)庫(kù)服務(wù)器??蛇x地,而在上述步驟S105中,如果檢測(cè)到注釋類(lèi)型不表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,則如圖2所示,也可以考慮執(zhí)行步驟S103’和步驟S105’,即解析操作請(qǐng)求,判斷操作請(qǐng)求的類(lèi)型,并且確定與該類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。在步驟S105’之后,執(zhí)行步驟S107,其中,將該操作請(qǐng)求分配給與操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器,即,如果操作請(qǐng)求的類(lèi)型是寫(xiě)操作,則將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;而如果操作請(qǐng)求的類(lèi)型是讀操作,則將操作請(qǐng)求分配給從數(shù)據(jù)庫(kù)服務(wù)器。根據(jù)本發(fā)明的實(shí)施例,在上述步驟S107之前,還可以執(zhí)行步驟S106,其中,檢查所確定的數(shù)據(jù)庫(kù)服務(wù)器,并且在步驟S107中,根據(jù)檢查結(jié)果來(lái)講操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。其中,如圖2所示,在所確定的數(shù)據(jù)庫(kù)服務(wù)器是從數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),將操作請(qǐng)求分配給從數(shù)據(jù)庫(kù)服務(wù)器。而在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),檢查主數(shù)據(jù)庫(kù)服務(wù)器,在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),將該操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;而在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),返回表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示,例如,向應(yīng)用程序服務(wù)器返回“數(shù)據(jù)庫(kù)不可用”的錯(cuò)誤提示。而在所確定的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),返回表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示,例如,向應(yīng)用程序服務(wù)器返回“數(shù)據(jù)庫(kù)不可用”的錯(cuò)誤提示。下面,為了幫助讀者理解本發(fā)明,結(jié)合三個(gè)示例SQL語(yǔ)句來(lái)說(shuō)明本發(fā)明的原理。(I)假設(shè)操作請(qǐng)求中所包含的SQL語(yǔ)句為INSERTINTOmytabIeVALUES(I,‘a(chǎn)bc’),首先檢測(cè)SQL語(yǔ)句開(kāi)頭是否包含類(lèi)型注釋?zhuān)薙QL語(yǔ)句不包含注釋?zhuān)瑒t判斷操作請(qǐng)求的類(lèi)型,檢查SQL語(yǔ)句中的第一個(gè)單詞,發(fā)現(xiàn)是INSERT,從而判斷出操作請(qǐng)求的類(lèi)型是寫(xiě)操作,應(yīng)當(dāng)分配給主數(shù)據(jù)庫(kù)服務(wù)器,檢查主數(shù)據(jù)庫(kù)服務(wù)器,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常,則向其分配操作請(qǐng)求,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常,則可以向應(yīng)用程序服務(wù)器返回“數(shù)據(jù)庫(kù)不可用”的錯(cuò)誤提示。(2)假設(shè)操作請(qǐng)求中所包含的SQL語(yǔ)句為SELECT*FR0Mmytable,首先檢測(cè)SQL語(yǔ)句開(kāi)頭是否包含類(lèi)型注釋?zhuān)薙QL語(yǔ)句不包含注釋?zhuān)瑒t判斷操作請(qǐng)求的類(lèi)型,檢查SQL語(yǔ)句中的第一個(gè)單詞,發(fā)現(xiàn)是SELECT,從而判斷出操作請(qǐng)求的類(lèi)型是讀操作,應(yīng)當(dāng)分配給從數(shù)據(jù)庫(kù)服務(wù)器,檢查從數(shù)據(jù)庫(kù)服務(wù)器,如果其狀態(tài)正常則向其分配操作請(qǐng)求,如果其狀態(tài)不正常,則檢查主數(shù)據(jù)庫(kù)服務(wù)器,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常,則向其分配操作請(qǐng)求,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常,則可以向應(yīng)用程序服務(wù)器返回“數(shù)據(jù)庫(kù)不可用”的錯(cuò)誤提示。(3)假設(shè)操作請(qǐng)求中所包含的SQL語(yǔ)句為/*master*/SELECT*FROMmytable,首先檢測(cè)SQL語(yǔ)句開(kāi)頭是否包含類(lèi)型注釋?zhuān)司銼QL包含注釋?zhuān)易⑨寖?nèi)容為/*master*/,表示主數(shù)據(jù)庫(kù)服務(wù)器,檢查主數(shù)據(jù)庫(kù)服務(wù)器,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常,則向其分配操作請(qǐng)求,如果主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常,則可以向應(yīng)用程序服務(wù)器返回“數(shù)據(jù)庫(kù)不可用”的錯(cuò)誤提示。本發(fā)明提供了一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法。根據(jù)本發(fā)明的實(shí)施例,可以解析接收到的對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求,以檢測(cè)操作請(qǐng)求中的類(lèi)型注釋?zhuān)⒏鶕?jù)類(lèi)型注釋?zhuān)_定相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器,并向其分配該操作請(qǐng)求。這樣,應(yīng)用開(kāi)發(fā)人員通過(guò)利用例如在諸如SQL語(yǔ)句之類(lèi)的操作請(qǐng)求中本來(lái)沒(méi)有意義的注釋語(yǔ)句,就可以確定要將操作請(qǐng)求分配給具體數(shù)據(jù)庫(kù)服務(wù)器,從而極大地提高了應(yīng)用開(kāi)發(fā)的靈活性。對(duì)于實(shí)時(shí)性要求較高的讀操作,只需要簡(jiǎn)單地在操作請(qǐng)求中添加表示主數(shù)據(jù)庫(kù)類(lèi)型的類(lèi)型注釋?zhuān)湍茏詣?dòng)地將該操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器,避免發(fā)生找不到所請(qǐng)求的數(shù)據(jù)或者讀取到該數(shù)據(jù)的舊版本的問(wèn)題。另外,根據(jù)本發(fā)明的實(shí)施例,在確定了要將操作請(qǐng)求分配到的數(shù)據(jù)庫(kù)服務(wù)器之后,還可以檢查該數(shù)據(jù)庫(kù)服務(wù)器,并根據(jù)檢查結(jié)果將該操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。這樣,在數(shù)據(jù)庫(kù)服務(wù)器集群中的某一臺(tái)或者多臺(tái)數(shù)據(jù)庫(kù)服務(wù)器發(fā)生故障時(shí),可以自動(dòng)檢測(cè)到該故障,不再把操作請(qǐng)求分配給存在故障的數(shù)據(jù)庫(kù)服務(wù)器。其中,在主數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障的情況下,寫(xiě)操作無(wú)法執(zhí)行,但讀操作不受影響;而在從數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障的情況下,可以轉(zhuǎn)而將讀操作分配給主數(shù)據(jù)庫(kù)服務(wù)器,從而讀寫(xiě)操作均不受影響。這一過(guò)程對(duì)于應(yīng)用程序完全透明,應(yīng)用程序員不在不需要對(duì)應(yīng)用程序作出任何修改,降低了應(yīng)用程序的維護(hù)成本。與上述方法100相對(duì)應(yīng),本發(fā)明還提供了一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備200。圖3示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備200。參見(jiàn)圖3,設(shè)備200主要包括網(wǎng)絡(luò)接口201、操作請(qǐng)求解析器203、操作請(qǐng)求分配器207。根據(jù)本發(fā)明的實(shí)施例,網(wǎng)絡(luò)接口201適于接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求。操作請(qǐng)求解析器203適于解析操作請(qǐng)求,以檢測(cè)操作請(qǐng)求中的類(lèi)型注釋。操作請(qǐng)求解析器203還適于確定與類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。操作請(qǐng)求分配器207適于將操作請(qǐng)求分配給所確定的數(shù)據(jù)庫(kù)服務(wù)器。網(wǎng)絡(luò)接口201、操作請(qǐng)求解析器203、操作請(qǐng)求分配器207可以分別用于執(zhí)行上述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的方法100中的步驟S101、S103和S105、S107。根據(jù)本發(fā)明的實(shí)施例,操作請(qǐng)求解析器203解析該操作請(qǐng)求,從而檢測(cè)操作請(qǐng)求中的類(lèi)型注釋。根據(jù)本發(fā)明的實(shí)施例,該操作請(qǐng)求可以包括數(shù)據(jù)庫(kù)程序語(yǔ)言語(yǔ)句,該數(shù)據(jù)庫(kù)程序語(yǔ)言可以是SQL,即,該操作請(qǐng)求包括SQL語(yǔ)句。在操作請(qǐng)求解析器203解析操作請(qǐng)求時(shí),例如可以檢測(cè)SQL語(yǔ)句的開(kāi)頭是否包含類(lèi)型注釋?zhuān)词欠癜纭?*master*/”的主數(shù)據(jù)庫(kù)類(lèi)型注釋。如果包含,即操作請(qǐng)求解析器203檢測(cè)到操作請(qǐng)求中的類(lèi)型注釋。隨后,操作請(qǐng)求解析器203確定與該檢測(cè)到的類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。可選地,在此之前,操作請(qǐng)求解析器203可以將該類(lèi)型注釋從操作請(qǐng)求中刪除。根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)庫(kù)服務(wù)器可以包括主數(shù)據(jù)庫(kù)服務(wù)器和從數(shù)據(jù)庫(kù)服務(wù)器。操作請(qǐng)求解析器203檢測(cè)該類(lèi)型注釋是否表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,如果是,即,例如類(lèi)型注釋為“/*master*/”,則操作請(qǐng)求解析器203可以確定與該類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器為主數(shù)據(jù)庫(kù)服務(wù)器。這樣,隨后操作請(qǐng)求分配器207就可以將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器。然而,當(dāng)操作請(qǐng)求解析器203未檢測(cè)到操作請(qǐng)求中的類(lèi)型注釋時(shí),解析操作請(qǐng)求,以判斷操作請(qǐng)求的類(lèi)型。根據(jù)本發(fā)明的實(shí)施例,操作請(qǐng)求的類(lèi)型包括寫(xiě)操作和讀操作。操作請(qǐng)求解析器203可以根據(jù)SQL語(yǔ)句中的關(guān)鍵字,來(lái)判斷操作請(qǐng)求的類(lèi)型。例如,操作請(qǐng)求解析器203可以檢測(cè)SQL語(yǔ)句中的第一個(gè)單詞,如果該單詞為例如INSERT、UPDATE、REPLACE等表示寫(xiě)操作的單詞,則判斷操作請(qǐng)求的類(lèi)型為寫(xiě)操作;而如果該單詞為不表示寫(xiě)操作的其它單詞,則操作請(qǐng)求解析器203判斷操作請(qǐng)求的類(lèi)型為讀操作。然后,操作請(qǐng)求解析器203確定與操作請(qǐng)求類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。根據(jù)本發(fā)明的實(shí)施例,對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于讀操作的數(shù)據(jù)庫(kù)服務(wù)器是從數(shù)據(jù)庫(kù)服務(wù)器。可選地,如果操作請(qǐng)求解析器203檢測(cè)到操作請(qǐng)求中存在類(lèi)型注釋、但注釋類(lèi)型不表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,則操作請(qǐng)求解析器203解析操作請(qǐng)求,判斷操作請(qǐng)求的類(lèi)型,并且操作請(qǐng)求解析器203確定與該類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。隨后,操作請(qǐng)求分配器207將該操作請(qǐng)求分配給與操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器,即,如果操作請(qǐng)求的類(lèi)型是寫(xiě)操作,則操作請(qǐng)求分配器207將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;而如果操作請(qǐng)求的類(lèi)型是讀操作,則操作請(qǐng)求分配器207將操作請(qǐng)求分配給從數(shù)據(jù)庫(kù)服務(wù)器。根據(jù)本發(fā)明的實(shí)施例,操作請(qǐng)求解析器203在確定數(shù)據(jù)庫(kù)服務(wù)器之后,由數(shù)據(jù)庫(kù)檢查器205檢查數(shù)據(jù)庫(kù)服務(wù)器,隨后,操作請(qǐng)求分配器207根據(jù)檢查結(jié)果將操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。其中,在操作請(qǐng)求解析器203所確定的是從數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),操作請(qǐng)求分配器207將操作請(qǐng)求分配給從數(shù)據(jù)庫(kù)服務(wù)器;在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),數(shù)據(jù)庫(kù)檢查器205檢查主數(shù)據(jù)庫(kù)服務(wù)器,在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),操作請(qǐng)求分配器207將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器,在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),操作請(qǐng)求分配器207返回表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示。而在操作請(qǐng)求解析器203所確定的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),操作請(qǐng)求分配器207將操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),操作請(qǐng)求分配器207返回表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示。由于上述各設(shè)備(裝置)實(shí)施例與前述各方法實(shí)施例相對(duì)應(yīng),因此不再對(duì)各裝置實(shí)施例進(jìn)行詳細(xì)描述。根據(jù)本發(fā)明的又一方面,還提供了一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)1000。參見(jiàn)圖3,系統(tǒng)1000包括上述設(shè)備200;一個(gè)或者多個(gè)應(yīng)用程序服務(wù)器300-1、…、300_n,適于向設(shè)備200發(fā)送對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;以及主數(shù)據(jù)庫(kù)服務(wù)器400a以及一個(gè)或者多個(gè)從數(shù)據(jù)庫(kù)服務(wù)器400bl、…、400bn,適于響應(yīng)于設(shè)備200的檢查,向設(shè)備200返回其狀態(tài),并且接收設(shè)備200分配的操作請(qǐng)求。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的裝置中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)裝置中。可以把實(shí)施例中的若干模塊組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者模塊中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(fā)明的各個(gè)裝置實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的裝置中的一些或者全部模塊的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。權(quán)利要求1.一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)(1000),包括分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備(200);一個(gè)或者多個(gè)應(yīng)用程序服務(wù)器(300-1,…,300-n),適于向所述設(shè)備(200)發(fā)送對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;主數(shù)據(jù)庫(kù)服務(wù)器(400a)以及一個(gè)或者多個(gè)從數(shù)據(jù)庫(kù)服務(wù)器(400bl,…,400bn),適于響應(yīng)于所述設(shè)備(200)的檢查,向所述設(shè)備(200)返回其狀態(tài),并且接收所述設(shè)備(200)分配的操作請(qǐng)求;以及所述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備(200)包括網(wǎng)絡(luò)接口(201),適于接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;操作請(qǐng)求解析器(203),適于解析所述操作請(qǐng)求,以檢測(cè)所述操作請(qǐng)求中的類(lèi)型注釋?zhuān)⒋_定與所述類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器;以及操作請(qǐng)求分配器(207),適于將所述操作請(qǐng)求分配給所確定的數(shù)據(jù)庫(kù)服務(wù)器。2.如權(quán)利要求1所述的系統(tǒng),其中當(dāng)所述操作請(qǐng)求解析器(203)未檢測(cè)到所述操作請(qǐng)求中的類(lèi)型注釋時(shí),解析所述操作請(qǐng)求,以判斷所述操作請(qǐng)求的類(lèi)型,并確定與所述操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器;并且所述操作請(qǐng)求分配器(207)將所述操作請(qǐng)求分配給所確定的與所述操作請(qǐng)求的類(lèi)型相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器。3.如權(quán)利要求2所述的系統(tǒng),其中所述操作請(qǐng)求的類(lèi)型包括寫(xiě)操作和讀操作。4.如權(quán)利要求3所述的系統(tǒng),其中所述數(shù)據(jù)庫(kù)服務(wù)器包括主數(shù)據(jù)庫(kù)服務(wù)器和從數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于寫(xiě)操作的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器,對(duì)應(yīng)于讀操作的數(shù)據(jù)庫(kù)服務(wù)器是從數(shù)據(jù)庫(kù)服務(wù)器。5.如權(quán)利要求1至4中的任一項(xiàng)所述的系統(tǒng),所述分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備(200)還包括數(shù)據(jù)庫(kù)檢查器(205),適于檢查所確定的數(shù)據(jù)庫(kù)服務(wù)器;以及所述操作請(qǐng)求分配器(207)根據(jù)檢查結(jié)果將所述操作請(qǐng)求分配給相應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器或者返回錯(cuò)誤提示。6.如權(quán)利要求1至5中的任一項(xiàng)所述的系統(tǒng),其中在所述操作請(qǐng)求解析器(203)檢測(cè)到所述操作請(qǐng)求中的類(lèi)型注釋時(shí),檢測(cè)所述類(lèi)型注釋是否表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型,在檢測(cè)到所述類(lèi)型注釋表示主數(shù)據(jù)庫(kù)服務(wù)器類(lèi)型的情況下,確定與所述類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器。7.如權(quán)利要求2所述的系統(tǒng),其中當(dāng)所述操作請(qǐng)求解析器(203)未檢測(cè)到所述操作請(qǐng)求中的類(lèi)型注釋時(shí),根據(jù)所述操作請(qǐng)求中包括的數(shù)據(jù)庫(kù)程序語(yǔ)言語(yǔ)句中的關(guān)鍵字,判斷所述操作請(qǐng)求的類(lèi)型。8.如權(quán)利要求5所述的系統(tǒng),其中在所述操作請(qǐng)求解析器(203)所確定的是從數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),所述操作請(qǐng)求分配器(207)將所述操作請(qǐng)求分配給從數(shù)據(jù)庫(kù)服務(wù)器;在檢查結(jié)果表示從數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),所述數(shù)據(jù)庫(kù)檢查器(205)檢查主數(shù)據(jù)庫(kù)服務(wù)器,在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),所述操作請(qǐng)求分配器(207)將所述操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器,在主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),所述操作請(qǐng)求分配器(207)返回2表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示;或者在所述操作請(qǐng)求解析器(203)所確定的數(shù)據(jù)庫(kù)服務(wù)器是主數(shù)據(jù)庫(kù)服務(wù)器的情況下,在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)正常時(shí),所述操作請(qǐng)求分配器(207)將所述操作請(qǐng)求分配給主數(shù)據(jù)庫(kù)服務(wù)器;在檢查結(jié)果表示主數(shù)據(jù)庫(kù)服務(wù)器狀態(tài)不正常時(shí),所述操作請(qǐng)求分配器(207)返回表示數(shù)據(jù)庫(kù)服務(wù)器不可用的錯(cuò)誤提示。9.如權(quán)利要求7所述的系統(tǒng),其中所述數(shù)據(jù)庫(kù)程序語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL,所述數(shù)據(jù)庫(kù)是MySQL數(shù)據(jù)庫(kù)。全文摘要本發(fā)明公開(kāi)了一種分配數(shù)據(jù)庫(kù)操作請(qǐng)求的系統(tǒng)(1000),其包括分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備(200);一個(gè)或者多個(gè)應(yīng)用程序服務(wù)器(300-1,…,300-n),適于向設(shè)備(200)發(fā)送對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;主數(shù)據(jù)庫(kù)服務(wù)器(400a)以及一個(gè)或者多個(gè)從數(shù)據(jù)庫(kù)服務(wù)器(400b1,…,400bn),適于響應(yīng)于設(shè)備(200)的檢查,向設(shè)備(200)返回其狀態(tài),并且接收設(shè)備(200)分配的操作請(qǐng)求;以及分配數(shù)據(jù)庫(kù)操作請(qǐng)求的設(shè)備(200)包括網(wǎng)絡(luò)接口(201),適于接收對(duì)于數(shù)據(jù)庫(kù)的操作請(qǐng)求;操作請(qǐng)求解析器(203),適于解析操作請(qǐng)求,以檢測(cè)操作請(qǐng)求中的類(lèi)型注釋?zhuān)⒋_定與類(lèi)型注釋相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器;以及操作請(qǐng)求分配器(207),適于將所述操作請(qǐng)求分配給所確定的數(shù)據(jù)庫(kù)服務(wù)器。文檔編號(hào)G06F11/20GK102982145SQ20121048334公開(kāi)日2013年3月20日申請(qǐng)日期2012年11月23日優(yōu)先權(quán)日2012年11月23日發(fā)明者朱超,陳超,桂勇哲,代兵,王超申請(qǐng)人:北京奇虎科技有限公司,奇智軟件(北京)有限公司