• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法技術(shù)

    技術(shù)編號(hào):11753755 閱讀:119 留言:0更新日期:2015-07-22 02:13
    本發(fā)明專利技術(shù)公開了一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,包括如下步驟:a)將同一應(yīng)用程序分布部署在多個(gè)集群服務(wù)器上,并為該應(yīng)用程序的所有集群實(shí)例至少配置連接兩個(gè)數(shù)據(jù)庫(kù)實(shí)例;b)定時(shí)探測(cè)所有集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)路連接狀態(tài);c)如果某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,則確認(rèn)該集群實(shí)例與下一數(shù)據(jù)庫(kù)實(shí)例之間的連接是否正常;d)如果連接正常則自動(dòng)轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上,并強(qiáng)制集群內(nèi)所有其他實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上。本發(fā)明專利技術(shù)在發(fā)生單集群實(shí)例與數(shù)據(jù)庫(kù)節(jié)點(diǎn)網(wǎng)絡(luò)故障時(shí),能夠讓集群所有實(shí)例連接在同一個(gè)節(jié)點(diǎn)上,確保所有實(shí)例的數(shù)據(jù)庫(kù)操作都能正常提交,避免數(shù)據(jù)丟失。

    【技術(shù)實(shí)現(xiàn)步驟摘要】
    一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法
    本專利技術(shù)涉及一種多數(shù)據(jù)源故障轉(zhuǎn)移的方法,尤其涉及一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法。
    技術(shù)介紹
    WebLogicServer為多數(shù)據(jù)源提供了故障轉(zhuǎn)移算法,以便在數(shù)據(jù)源故障時(shí)(例如,在數(shù)據(jù)庫(kù)管理系統(tǒng)崩潰時(shí)),系統(tǒng)可繼續(xù)運(yùn)行。一個(gè)多數(shù)據(jù)源可被視為一組數(shù)據(jù)源。多數(shù)據(jù)源最適用于具有高可用性的數(shù)據(jù)庫(kù)系統(tǒng)(如冗余數(shù)據(jù)庫(kù)或OracleRealApplicationClusters,簡(jiǎn)稱RAC)的節(jié)點(diǎn)之間的故障轉(zhuǎn)移或負(fù)載平衡。故障轉(zhuǎn)移算法提供了一個(gè)用于滿足連接請(qǐng)求的數(shù)據(jù)源的有序列表。通常情況下,每一個(gè)對(duì)這種類型的多數(shù)據(jù)源發(fā)出的連接請(qǐng)求都由該列表中的第一個(gè)數(shù)據(jù)源提供服務(wù)。如果某個(gè)數(shù)據(jù)源連接未能通過(guò)測(cè)試,并且該連接無(wú)法被替換,或者如果該數(shù)據(jù)源已掛起,則會(huì)從該列表中的下一個(gè)數(shù)據(jù)源開始,按順序查找連接。但是,在某些發(fā)生了故障的情況下,當(dāng)未正在使用多數(shù)據(jù)源時(shí),發(fā)生在某個(gè)RAC實(shí)例(該實(shí)例不是在其上啟動(dòng)了某個(gè)事務(wù)的實(shí)例)上的事務(wù)處理(數(shù)據(jù)更改)將會(huì)丟失,而不會(huì)發(fā)出任何通知或引發(fā)任何異常。在下列情況下,某些數(shù)據(jù)更改將會(huì)丟失:1、server2和RAC1之間的網(wǎng)絡(luò)連接已丟失,這導(dǎo)致了server2上cp1中的數(shù)據(jù)庫(kù)連接故障轉(zhuǎn)移到RAC2。server1上的相同數(shù)據(jù)源仍然具有與RAC1的連接。2、在server1上,某個(gè)應(yīng)用程序啟動(dòng)了一個(gè)事務(wù)并使用來(lái)自cp1的連接(與RAC1的連接)進(jìn)行數(shù)據(jù)更改。3、該應(yīng)用程序調(diào)用了server2上的某個(gè)EJB,該EJB使用了server2上cp1中的某個(gè)數(shù)據(jù)庫(kù)連接(與RAC2的連接)進(jìn)行數(shù)據(jù)更改。4、該應(yīng)用程序在server1上完成了該事務(wù)。結(jié)果如下:RAC1上的數(shù)據(jù)更改被提交。RAC2上的數(shù)據(jù)更改被忽略。WebLogicServer事務(wù)管理器會(huì)調(diào)用資源上的準(zhǔn)備和提交。在此情況下,由于各數(shù)據(jù)源具有相同名稱,因此,它們被視為同一個(gè)資源,這樣,就只會(huì)在該數(shù)據(jù)源的一個(gè)實(shí)例上進(jìn)行調(diào)用。由于各數(shù)據(jù)源包含與不同RAC實(shí)例的連接,因此,一個(gè)RAC實(shí)例上數(shù)據(jù)更改會(huì)被提交,但其他RAC實(shí)例上的更改都會(huì)丟失。針對(duì)這種情況,一定要確保提供WebLogicServer實(shí)例和OracleRAC之間的冗余網(wǎng)絡(luò)硬件可避免網(wǎng)絡(luò)故障,但是網(wǎng)絡(luò)故障是不可控的。雖然使用了多數(shù)據(jù)源和RAC來(lái)確保數(shù)據(jù)庫(kù)單節(jié)點(diǎn)異常時(shí)可以故障轉(zhuǎn)移,但是如果出現(xiàn)網(wǎng)絡(luò)故障,這種故障轉(zhuǎn)移將會(huì)失效,并導(dǎo)致數(shù)據(jù)丟失,影響業(yè)務(wù)。
    技術(shù)實(shí)現(xiàn)思路
    本專利技術(shù)所要解決的技術(shù)問(wèn)題是提供一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,能夠確保集群里的應(yīng)用實(shí)例連接在RAC數(shù)據(jù)庫(kù)的同一節(jié)點(diǎn)上,避免因網(wǎng)絡(luò)故障導(dǎo)致集群結(jié)構(gòu)里的實(shí)例對(duì)同一數(shù)據(jù)源連接在不同的RAC數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,最終導(dǎo)致其他RAC實(shí)例上的更改都丟失。本專利技術(shù)為解決上述技術(shù)問(wèn)題而采用的技術(shù)方案是提供一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,包括如下步驟:a)將同一應(yīng)用程序分布部署在多個(gè)集群服務(wù)器上,并為該應(yīng)用程序的所有集群實(shí)例至少配置連接兩個(gè)數(shù)據(jù)庫(kù)實(shí)例;b)定時(shí)探測(cè)所有集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)絡(luò)連接狀態(tài);c)如果某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,則確認(rèn)該集群實(shí)例與下一數(shù)據(jù)庫(kù)實(shí)例之間的連接是否正常;d)如果連接正常則自動(dòng)轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上,并強(qiáng)制集群內(nèi)所有其他實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上。上述的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其中,所述步驟a)中的數(shù)據(jù)庫(kù)實(shí)例為OracleRAC,所述數(shù)據(jù)庫(kù)實(shí)例的數(shù)目為兩個(gè),其中,一個(gè)數(shù)據(jù)庫(kù)實(shí)例作為當(dāng)前工作數(shù)據(jù)庫(kù)節(jié)點(diǎn),另一數(shù)據(jù)庫(kù)實(shí)例作為備用數(shù)據(jù)庫(kù)節(jié)點(diǎn),所述兩個(gè)數(shù)據(jù)庫(kù)實(shí)例通過(guò)共享存儲(chǔ)連接至同一數(shù)據(jù)庫(kù)。上述的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其中,所述步驟b)中定時(shí)記錄所有集群實(shí)例與所有數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)絡(luò)連接狀態(tài),并將狀態(tài)存入數(shù)據(jù)庫(kù)中記錄,每一記錄包括集群實(shí)例、數(shù)據(jù)源、數(shù)據(jù)庫(kù)實(shí)例、故障轉(zhuǎn)移標(biāo)識(shí)以及轉(zhuǎn)移成功標(biāo)識(shí);當(dāng)出現(xiàn)某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,所述步驟c)設(shè)置故障轉(zhuǎn)移標(biāo)識(shí)為TRUE,并拋出異常信息通知集群內(nèi)其他實(shí)例,當(dāng)該集群實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例后,所述步驟d)設(shè)置轉(zhuǎn)移成功標(biāo)識(shí)為TRUE,確認(rèn)集群中的其他實(shí)例進(jìn)行故障轉(zhuǎn)移。上述的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其中,所述步驟b)通過(guò)判斷集群實(shí)例所在服務(wù)器與數(shù)據(jù)庫(kù)實(shí)例所在服務(wù)器之間的物理連接狀態(tài)來(lái)確認(rèn)集群實(shí)例與數(shù)據(jù)庫(kù)實(shí)例的連接狀態(tài);所述步驟c)通過(guò)發(fā)送測(cè)試SQL語(yǔ)句,測(cè)試該集群實(shí)例與下一數(shù)據(jù)庫(kù)實(shí)例之間的連接是否正常,若SQL測(cè)試正常則設(shè)置轉(zhuǎn)移成功標(biāo)識(shí)為TRUE。上述的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其中,所述步驟d)通過(guò)向集群中的其他實(shí)例發(fā)送網(wǎng)絡(luò)故障的假信號(hào),讓其他實(shí)例主動(dòng)關(guān)閉與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的連接,并全部轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上;所述步驟d)收到該集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的斷連信息后,接著通過(guò)判斷物理連接,確認(rèn)該集群實(shí)例已經(jīng)成功轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例后,再?gòu)?qiáng)制斷開集群中所有其他實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例的連接,使得所有集群實(shí)例都轉(zhuǎn)移連接到在下一數(shù)據(jù)庫(kù)實(shí)例上。本專利技術(shù)對(duì)比現(xiàn)有技術(shù)有如下的有益效果:本專利技術(shù)提供的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,在發(fā)生單集群實(shí)例與數(shù)據(jù)庫(kù)節(jié)點(diǎn)網(wǎng)絡(luò)故障時(shí),能夠讓集群所有實(shí)例連接在同一個(gè)節(jié)點(diǎn)上,確保所有實(shí)例的數(shù)據(jù)庫(kù)操作都能正常提交,避免數(shù)據(jù)丟失。附圖說(shuō)明圖1為本專利技術(shù)使用的集群實(shí)例多數(shù)據(jù)源連接結(jié)構(gòu)示意圖;圖2為集群實(shí)例多數(shù)據(jù)源故障轉(zhuǎn)移數(shù)據(jù)丟失示意圖;圖3為本專利技術(shù)集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移流程示意圖;圖4為本專利技術(shù)集群實(shí)例多數(shù)據(jù)源綁定故障轉(zhuǎn)移示意圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本專利技術(shù)作進(jìn)一步的描述。圖1為本專利技術(shù)使用的集群實(shí)例多數(shù)據(jù)源連接結(jié)構(gòu)示意圖。請(qǐng)參見圖1,本專利技術(shù)使用的應(yīng)用實(shí)例集群結(jié)構(gòu)與數(shù)據(jù)庫(kù)RAC的連接模式為failover模式。將同一個(gè)數(shù)據(jù)源DS1部署在集群上,集群內(nèi)所有實(shí)例都會(huì)在啟動(dòng)時(shí)初始化一個(gè)已與數(shù)據(jù)庫(kù)節(jié)點(diǎn)RAC1創(chuàng)建多個(gè)連接的連接池CP1。而數(shù)據(jù)庫(kù)節(jié)點(diǎn)RAC2則作為故障轉(zhuǎn)移的備用節(jié)點(diǎn)。圖2為集群實(shí)例多數(shù)據(jù)源故障轉(zhuǎn)移數(shù)據(jù)丟失示意圖。請(qǐng)繼續(xù)參見圖2,當(dāng)集群實(shí)例server2與數(shù)據(jù)庫(kù)節(jié)點(diǎn)RAC1產(chǎn)生網(wǎng)絡(luò)故障時(shí),集群實(shí)例server2上的數(shù)據(jù)庫(kù)連接池CP1將會(huì)自動(dòng)故障轉(zhuǎn)移到數(shù)據(jù)庫(kù)節(jié)點(diǎn)RAC2上。而此時(shí),集群實(shí)例server1和server3與數(shù)據(jù)庫(kù)節(jié)點(diǎn)RAC1的網(wǎng)絡(luò)連接正常,不會(huì)轉(zhuǎn)移到RAC2上,依然保持在RAC1上。此時(shí),集群里的實(shí)例包含不同數(shù)據(jù)庫(kù)節(jié)點(diǎn)的連接。應(yīng)用APP1分別從不同的集群實(shí)例上提交數(shù)據(jù)庫(kù)操作變更,由于他們都是使用同一個(gè)數(shù)據(jù)源DS1,被視為同一資源,只會(huì)在該數(shù)據(jù)源的一個(gè)實(shí)例上進(jìn)行調(diào)用,而這個(gè)數(shù)據(jù)源包含不同RAC實(shí)例連接,只一個(gè)會(huì)被提交,其他的丟失。所以集群實(shí)例server1,server3上的數(shù)據(jù)庫(kù)操作提交正常完成,而集群實(shí)例server2上的數(shù)據(jù)庫(kù)操作提交丟失。圖3為本專利技術(shù)集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移流程示意圖;圖4為本專利技術(shù)集群實(shí)例多數(shù)據(jù)源綁定故障轉(zhuǎn)移示意圖。請(qǐng)參見圖3和圖4,在單個(gè)集群實(shí)例與數(shù)據(jù)庫(kù)節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)故障轉(zhuǎn)移到第二個(gè)節(jié)點(diǎn)上,導(dǎo)致集群實(shí)例里同一數(shù)據(jù)源連接在不同的數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,為了避免這種模式下數(shù)據(jù)庫(kù)操作出現(xiàn)丟失的情況,在探測(cè)到有一個(gè)實(shí)例與數(shù)據(jù)庫(kù)節(jié)點(diǎn)發(fā)生網(wǎng)絡(luò)故障后,將集群里的其他實(shí)例的數(shù)據(jù)庫(kù)連接綁定轉(zhuǎn)移,實(shí)現(xiàn)所有集本文檔來(lái)自技高網(wǎng)
    ...
    一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法

    【技術(shù)保護(hù)點(diǎn)】
    一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其特征在于,包括如下步驟:a)將同一應(yīng)用程序分布部署在多個(gè)集群服務(wù)器上,并為該應(yīng)用程序的所有集群實(shí)例至少配置連接兩個(gè)數(shù)據(jù)庫(kù)實(shí)例;b)定時(shí)探測(cè)所有集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)絡(luò)連接狀態(tài);c)如果某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,則確認(rèn)該集群實(shí)例與下一數(shù)據(jù)庫(kù)實(shí)例之間的連接是否正常;d)如果連接正常則自動(dòng)轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上,并強(qiáng)制集群內(nèi)所有其他實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上。

    【技術(shù)特征摘要】
    1.一種集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其特征在于,包括如下步驟:a)將同一應(yīng)用程序分布部署在多個(gè)集群服務(wù)器上,并為該應(yīng)用程序的所有集群實(shí)例至少配置連接兩個(gè)數(shù)據(jù)庫(kù)實(shí)例;b)定時(shí)探測(cè)所有集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)絡(luò)連接狀態(tài);c)如果某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,則確認(rèn)該集群實(shí)例與下一數(shù)據(jù)庫(kù)實(shí)例之間的連接是否正常;d)如果連接正常則自動(dòng)轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上,并強(qiáng)制集群內(nèi)所有其他實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例上;所述步驟b)中定時(shí)記錄所有集群實(shí)例與所有數(shù)據(jù)庫(kù)實(shí)例之間的網(wǎng)絡(luò)連接狀態(tài),并將狀態(tài)存入數(shù)據(jù)庫(kù)中記錄,每一記錄包括集群實(shí)例、數(shù)據(jù)源、數(shù)據(jù)庫(kù)實(shí)例、故障轉(zhuǎn)移標(biāo)識(shí)以及轉(zhuǎn)移成功標(biāo)識(shí);當(dāng)出現(xiàn)某一集群實(shí)例與當(dāng)前數(shù)據(jù)庫(kù)實(shí)例網(wǎng)絡(luò)斷連,所述步驟c)設(shè)置故障轉(zhuǎn)移標(biāo)識(shí)為TRUE,并拋出異常信息通知集群內(nèi)其他實(shí)例,當(dāng)該集群實(shí)例轉(zhuǎn)移連接到下一數(shù)據(jù)庫(kù)實(shí)例后,所述步驟d)設(shè)置轉(zhuǎn)移成功標(biāo)識(shí)為TRUE,確認(rèn)集群中的其他實(shí)例進(jìn)行故障轉(zhuǎn)移。2.如權(quán)利要求1所述的集群實(shí)例多數(shù)據(jù)源綁定的故障轉(zhuǎn)移方法,其特征在于,所述步驟a)中的數(shù)據(jù)庫(kù)實(shí)...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:程永新宋輝陳愛珍
    申請(qǐng)(專利權(quán))人:上海新炬網(wǎng)絡(luò)信息技術(shù)有限公司
    類型:發(fā)明
    國(guó)別省市:上海;31

    網(wǎng)友詢問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 成人h动漫精品一区二区无码| 99热门精品一区二区三区无码| 亚洲AV无码乱码精品国产| 精品久久久久久久无码久中文字幕 | 国产AV无码专区亚洲AV男同| 国产激情无码一区二区app| 无码精品黑人一区二区三区| 亚洲精品久久无码av片俺去也| 精品无人区无码乱码毛片国产 | 亚洲日韩精品一区二区三区无码 | 国产精品无码素人福利不卡| 无码精品A∨在线观看免费 | 亚洲精品无码专区久久| 中文字幕av无码不卡| 无码少妇A片一区二区三区| 国产精品无码午夜福利| 无码的免费不卡毛片视频| 亚洲日韩精品A∨片无码加勒比| 国产AV无码专区亚洲A∨毛片| 无码毛片一区二区三区视频免费播放 | 98久久人妻无码精品系列蜜桃| 五月天无码在线观看| 性色av极品无码专区亚洲| 久久久久亚洲av无码专区导航| 国产AV无码专区亚汌A√| 国产成人无码免费网站| 色综合久久久无码中文字幕| 亚洲精品自偷自拍无码| 国产成人无码AV麻豆| 无码H黄肉动漫在线观看网站| 无码国产精品一区二区免费式芒果| 久久国产三级无码一区二区| 西西4444www大胆无码| 夜夜精品无码一区二区三区 | 亚洲av无码乱码在线观看野外| 免费无码又爽又刺激高潮的视频 | 久久久久亚洲AV无码专区首| 无码人妻品一区二区三区精99 | 用舌头去添高潮无码视频| 精品无码成人久久久久久| 人妻丰满熟妇AV无码区|