亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種恢復(fù)數(shù)據(jù)的方法及系統(tǒng)的制作方法

文檔序號(hào):6540846閱讀:163來(lái)源:國(guó)知局
一種恢復(fù)數(shù)據(jù)的方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種恢復(fù)數(shù)據(jù)的方法,包括:事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū);將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件,所述磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù);所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。采用本發(fā)明,可降低系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高系統(tǒng)的數(shù)據(jù)持久性、安全性以及可靠性。
【專(zhuān)利說(shuō)明】一種恢復(fù)數(shù)據(jù)的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種恢復(fù)數(shù)據(jù)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]為了使事務(wù)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)所做的更改持久的保存在數(shù)據(jù)庫(kù)之中,避免發(fā)生回滾操作,通常將事務(wù)處理過(guò)程中生成的事務(wù)日志寫(xiě)入至可靠的磁盤(pán)介質(zhì),當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)發(fā)生數(shù)據(jù)丟失時(shí),磁盤(pán)中的事務(wù)日志為數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)恢復(fù)操作提供依據(jù),以實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的持久性。
[0003]保存事務(wù)日志通常采用同步提交方案,即當(dāng)事務(wù)提交時(shí),選取生成的事務(wù)日志的對(duì)應(yīng)最后一個(gè)記錄位置,將該位置之前所有的事務(wù)日志全部寫(xiě)入磁盤(pán)后,事務(wù)提交結(jié)束。
[0004]由于前述的方案會(huì)使數(shù)據(jù)庫(kù)系統(tǒng)中產(chǎn)生磁盤(pán)寫(xiě)IO的操作,故出現(xiàn)事務(wù)并發(fā)量高的情況時(shí),會(huì)引起數(shù)據(jù)庫(kù)系統(tǒng)的并發(fā)沖突。現(xiàn)有技術(shù)提出一種事務(wù)日志的異步提交方案,事務(wù)的提交操作可以先于事務(wù)日志寫(xiě)入磁盤(pán)的操作,以減少數(shù)據(jù)庫(kù)系統(tǒng)的并發(fā)沖突事件。在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題,現(xiàn)有技術(shù)方案應(yīng)用于集群數(shù)據(jù)庫(kù)場(chǎng)景下,當(dāng)集群數(shù)據(jù)庫(kù)中的一節(jié)點(diǎn)進(jìn)行事務(wù)提交后,事務(wù)日志尚未完整地寫(xiě)入磁盤(pán)時(shí)若該節(jié)點(diǎn)發(fā)生數(shù)據(jù)崩潰事件,數(shù)據(jù)庫(kù)系統(tǒng)將無(wú)法通過(guò)該事務(wù)日志進(jìn)行數(shù)據(jù)恢復(fù)操作,造成數(shù)據(jù)永久丟失的狀況,由此可知,事務(wù)日志的異步提交方案影響數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)持久性,為數(shù)據(jù)庫(kù)系統(tǒng)帶來(lái)了數(shù)據(jù)丟失風(fēng)險(xiǎn),降低了數(shù)據(jù)庫(kù)系統(tǒng)的安全性,使數(shù)據(jù)庫(kù)系統(tǒng)變得不可靠。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供了一種恢復(fù)數(shù)據(jù)的方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中事務(wù)日志的異步提交方案中數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)持久性差、安全性低以及數(shù)據(jù)庫(kù)系統(tǒng)不可靠的問(wèn)題。
[0006]為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例第一方面提供了一種恢復(fù)數(shù)據(jù)的方法,所述方法包括:
[0007]事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū);
[0008]將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件,所述磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù);
[0009]所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至所述本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)之前,還包括:
[0011]設(shè)置所述本節(jié)點(diǎn)的安全等級(jí)以及與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目;[0012]從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將所述選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份所述事務(wù)日志的緩存區(qū)。
[0013]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn)包括:
[0014]從所述本節(jié)點(diǎn)以外的與所述本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目;
[0015]或者,從所述本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。
[0016]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括:
[0017]所述本節(jié)點(diǎn)定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志;
[0018]若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則所述本節(jié)點(diǎn)將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;
[0019]若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則所述本節(jié)點(diǎn)不將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
[0020]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括:
[0021]所述備份節(jié)點(diǎn)定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志;
[0022]若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則所述備份節(jié)點(diǎn)將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;
[0023]若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則所述備份節(jié)點(diǎn)不將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
[0024]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述磁盤(pán)包括僅支持所述本節(jié)點(diǎn)訪(fǎng)問(wèn)的本節(jié)點(diǎn)磁盤(pán),以及僅支持備份節(jié)點(diǎn)訪(fǎng)問(wèn)的備份節(jié)點(diǎn)磁盤(pán),將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括:
[0025]所述本節(jié)點(diǎn)將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù);
[0026]并且,
[0027]所述備份節(jié)點(diǎn)將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù)。
[0028]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中所述事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)包括:
[0029]讀取所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;
[0030]讀取所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;
[0031]從讀取到的各個(gè)所述事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件;
[0032]使用所述信息最完整的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0033]相應(yīng)的,本發(fā)明實(shí)施例第二方面還提供了一種數(shù)據(jù)恢復(fù)系統(tǒng),包括:
[0034]保存與備份模塊,用于事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū);
[0035]寫(xiě)入模塊,用于將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件,所述磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù);
[0036]恢復(fù)模塊,用于所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0037]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)恢復(fù)系統(tǒng)還包括:
[0038]設(shè)置模塊,用于設(shè)置所述本節(jié)點(diǎn)的安全等級(jí)以及與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目;
[0039]選擇模塊,用于從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將所述選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份所述事務(wù)日志的緩存區(qū)。
[0040]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述選擇模塊,
[0041 ] 還用于從所述本節(jié)點(diǎn)以外的與所述本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目;
[0042]或者,
[0043]還用于從所述本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。
[0044]結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式或者第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述寫(xiě)入模塊包括:
[0045]第一判斷單元,用于定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志;若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則生成第一寫(xiě)入消息并發(fā)送至第一寫(xiě)入單元;若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則生成第一不寫(xiě)入消息并發(fā)送至所述第一寫(xiě)入單元;
[0046]第一寫(xiě)入單元,用于接收到所述第一寫(xiě)入消息后,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;用于接收到所述第一不寫(xiě)入消息后,不將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
[0047]結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式或者第二方面的第二種可能的實(shí)現(xiàn)方式或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述寫(xiě)入模塊還包括:
[0048]第二判斷單元,用于定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志;若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則生成第二寫(xiě)入消息并發(fā)送至第二寫(xiě)入單元;若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則生成第二不寫(xiě)入消息并發(fā)送至所述第二寫(xiě)入單元;
[0049]第二寫(xiě)入單元,用于接收到所述第二寫(xiě)入消息后,將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;用于接收到所述第二不寫(xiě)入消息后,不將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
[0050]結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式或者第二方面的第二種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,所述磁盤(pán)包括僅支持所述本節(jié)點(diǎn)訪(fǎng)問(wèn)的本節(jié)點(diǎn)磁盤(pán),以及僅支持備份節(jié)點(diǎn)訪(fǎng)問(wèn)的備份節(jié)點(diǎn)磁盤(pán),所述寫(xiě)入模塊包括:
[0051]本節(jié)點(diǎn)寫(xiě)入單元,用于將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù);
[0052]備份節(jié)點(diǎn)寫(xiě)入單元,用于將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù)。
[0053]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述恢復(fù)模塊包括:
[0054]讀取單元,用于讀取所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;還用于讀取所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;
[0055]選擇單元,用于從所述讀取模塊讀取到的各個(gè)所述事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件;
[0056]恢復(fù)單元,用于使用所述信息最完整的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0057]通過(guò)本發(fā)明實(shí)施例,在事務(wù)提交后,不僅將生成的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),還備份至其他節(jié)點(diǎn)的緩存區(qū),可降低節(jié)點(diǎn)數(shù)據(jù)崩潰事件導(dǎo)致的事務(wù)日志丟失的概率,可靠地將事務(wù)日志寫(xiě)入磁盤(pán),為節(jié)點(diǎn)數(shù)據(jù)恢復(fù)操作提供了可靠的事務(wù)日志文件,從而降低系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高系統(tǒng)的數(shù)據(jù)持久性、安全性以及可靠性。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0058]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0059]圖1是本發(fā)明第一實(shí)施例中的一種恢復(fù)數(shù)據(jù)的方法的流程圖;
[0060]圖2是本發(fā)明第二實(shí)施例中的一種恢復(fù)數(shù)據(jù)的方法的流程圖;
[0061]圖3是本發(fā)明第三實(shí)施例中的數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0062]圖4是本發(fā)明第三實(shí)施例中的另一數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0063]圖5是本發(fā)明第三實(shí)施例中的又一數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0064]圖6是本發(fā)明第三實(shí)施例中的再一數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0065]圖7是本發(fā)明第四實(shí)施例中的數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0066]圖8是本發(fā)明第四實(shí)施例中的另一數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0067]圖9是本發(fā)明第四實(shí)施例中的又一數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖;
[0068]圖10是本發(fā)明實(shí)施例的一系統(tǒng)結(jié)構(gòu)組成示意圖;
[0069]圖11是本發(fā)明實(shí)施例的另一系統(tǒng)結(jié)構(gòu)組成示意圖;
[0070]圖12是本發(fā)明第五實(shí)施例中的一種節(jié)點(diǎn)交換機(jī)的結(jié)構(gòu)組成示意圖;
[0071]圖13是本發(fā)明第六實(shí)施例中的一種節(jié)點(diǎn)交換機(jī)的結(jié)構(gòu)組成示意圖。
【具體實(shí)施方式】
[0072]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0073]圖1是本發(fā)明第一實(shí)施例中的一種恢復(fù)數(shù)據(jù)的方法的流程圖。該方法可以適用于數(shù)據(jù)庫(kù)系統(tǒng)中通過(guò)節(jié)點(diǎn)的事務(wù)日志恢復(fù)節(jié)點(diǎn)數(shù)據(jù)的恢復(fù)工作。集群數(shù)據(jù)庫(kù)由至少兩個(gè)數(shù)據(jù)處理節(jié)點(diǎn)構(gòu)成,通常,數(shù)據(jù)庫(kù)的緩存區(qū)會(huì)備份有每個(gè)數(shù)據(jù)處理節(jié)點(diǎn)處理數(shù)據(jù)過(guò)程中生成的事務(wù)日志,當(dāng)出現(xiàn)節(jié)點(diǎn)數(shù)據(jù)丟失狀況時(shí),可通過(guò)緩存區(qū)中該節(jié)點(diǎn)所對(duì)應(yīng)的事務(wù)日志還原該節(jié)點(diǎn)的數(shù)據(jù)。在本發(fā)明實(shí)施例中,節(jié)點(diǎn)處理數(shù)據(jù)過(guò)程結(jié)束后備份事務(wù)日志,以及節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),恢復(fù)節(jié)點(diǎn)丟失的數(shù)據(jù)的操作,可以采用如圖1所示的方法進(jìn)行處理。如圖1所示,本實(shí)施例的處理流程可以包括以下步驟:
[0074]步驟S110,事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)。其中,節(jié)點(diǎn)緩存區(qū)保存的事務(wù)日志用于寫(xiě)入磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,使磁盤(pán)中的事務(wù)日志文件記錄位置保持與事務(wù)日志相同記錄位置,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至其他節(jié)點(diǎn)的緩存區(qū),可以提高本節(jié)點(diǎn)事務(wù)日志的安全性。
[0075]進(jìn)一步可選的,在本步驟之前,本方法還對(duì)選取備份節(jié)點(diǎn)、將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)的方式給出可實(shí)施方案:
[0076]首先,設(shè)置本節(jié)點(diǎn)的安全等級(jí)以及與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。可以認(rèn)為,節(jié)點(diǎn)安全等級(jí)越高,節(jié)點(diǎn)所需備份節(jié)點(diǎn)的數(shù)目越多,并且安全等級(jí)數(shù)(WSF, WAL SafetyFactor)大于等于I,當(dāng)WSF>1時(shí),應(yīng)預(yù)先在集群數(shù)據(jù)庫(kù)系統(tǒng)指定至少I(mǎi)個(gè)節(jié)點(diǎn)作為本節(jié)點(diǎn)的備份節(jié)點(diǎn)。備份節(jié)點(diǎn)的數(shù)目可以與安全等級(jí)成正比例增長(zhǎng),例如,可規(guī)定本節(jié)點(diǎn)WSF=3時(shí),集群數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)存在2個(gè)本節(jié)點(diǎn)的備份節(jié)點(diǎn),本節(jié)點(diǎn)WSF=4時(shí),集群數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)存在3個(gè)本節(jié)點(diǎn)的備份節(jié)點(diǎn)。
[0077]其次,從本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為本節(jié)點(diǎn)選擇出與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)。
[0078]進(jìn)一步可選的,選擇備份節(jié)點(diǎn)的原則可以為就近原則,即從與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn);也可以按照一定的規(guī)則進(jìn)行選擇,如從本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn)。如圖10所示的Shared-disk架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由圖10可以看出,每個(gè)節(jié)點(diǎn)均包含多個(gè)可用于保存事務(wù)日志的緩存區(qū),當(dāng)設(shè)置節(jié)點(diǎn)2的安全等級(jí)WSF=3時(shí),則除了作為本節(jié)點(diǎn)的節(jié)點(diǎn)2以夕卜,系統(tǒng)中還應(yīng)存在2個(gè)備份節(jié)點(diǎn),可選擇與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)I和節(jié)點(diǎn)3作為備份節(jié)點(diǎn)。
[0079]進(jìn)一步可選的,確定備份節(jié)點(diǎn)后,備份節(jié)點(diǎn)的緩存區(qū)將作為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū)。具體的,可注冊(cè)該緩存區(qū)的地址,并在注冊(cè)成功后將注冊(cè)信息發(fā)送至該緩存區(qū)對(duì)應(yīng)的備份節(jié)點(diǎn),以便于將本節(jié)點(diǎn)事務(wù)日志準(zhǔn)確寫(xiě)入該緩存區(qū)。如前述的舉例,可從圖10所示系統(tǒng)的節(jié)點(diǎn)I中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)1,節(jié)點(diǎn)I則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū);從圖10所示系統(tǒng)的節(jié)點(diǎn)3中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)3,節(jié)點(diǎn)3則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū)。
[0080]步驟S111,將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。其中,磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù)。
[0081]如圖10所示的Shared-disk架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),通過(guò)某一節(jié)點(diǎn)可以訪(fǎng)問(wèn)磁盤(pán)中所有文件的情況下,磁盤(pán)中與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件可以?xún)H有一個(gè),并且,該事務(wù)日志文件的寫(xiě)入操作是由各個(gè)節(jié)點(diǎn)基于其緩存區(qū)中保存的事務(wù)日志來(lái)執(zhí)行的。如前所述,當(dāng)本節(jié)點(diǎn)的安全等級(jí)大于I時(shí),系統(tǒng)中存在可執(zhí)行將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件的備份節(jié)點(diǎn)。例如,當(dāng)圖10中節(jié)點(diǎn)2作為本節(jié)點(diǎn)時(shí),可執(zhí)行寫(xiě)入操作的備份節(jié)點(diǎn)包括節(jié)點(diǎn)1、節(jié)點(diǎn)2、以及節(jié)點(diǎn)3。
[0082]進(jìn)一步可選的,本步驟中,本節(jié)點(diǎn)或備份節(jié)點(diǎn)將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件操作的觸發(fā)條件可以為定時(shí)觸發(fā),可包括儲(chǔ)存事務(wù)日志的緩沖區(qū)滿(mǎn)時(shí)觸發(fā),還可包括按照規(guī)定時(shí)間為起點(diǎn),每隔一定的時(shí)間間隔進(jìn)行觸發(fā)。
[0083]當(dāng)觸發(fā)本節(jié)點(diǎn)寫(xiě)入操作時(shí),本節(jié)點(diǎn)首先判斷磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件是否包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,即磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置是否與本節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同,當(dāng)磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置與本節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同時(shí),代表磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,本節(jié)點(diǎn)無(wú)需再次進(jìn)行寫(xiě)入操作。那么,當(dāng)本節(jié)點(diǎn)判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件不包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志時(shí),本節(jié)點(diǎn)將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;當(dāng)本節(jié)點(diǎn)判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志時(shí),本節(jié)點(diǎn)不將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。例如,圖10中,當(dāng)觸發(fā)本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志寫(xiě)入操作時(shí),本節(jié)點(diǎn)首先判斷磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件是否包含本節(jié)點(diǎn)(節(jié)點(diǎn)2)緩存區(qū)中保存的事務(wù)日志,若不包含,則本節(jié)點(diǎn)(節(jié)點(diǎn)2)將本節(jié)點(diǎn)(節(jié)點(diǎn)2)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件;若磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件包含本節(jié)點(diǎn)(節(jié)點(diǎn)2)緩存區(qū)中保存的事務(wù)日志時(shí),本節(jié)點(diǎn)(節(jié)點(diǎn)2)不將本節(jié)點(diǎn)(節(jié)點(diǎn)2)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件。
[0084]當(dāng)觸發(fā)備份節(jié)點(diǎn)寫(xiě)入操作時(shí),備份節(jié)點(diǎn)首先判斷磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件是否包含備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志,即磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置是否與備份節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同,當(dāng)磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置與備份節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同時(shí),代表磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志,備份節(jié)點(diǎn)無(wú)需再次進(jìn)行寫(xiě)入操作。那么,當(dāng)備份節(jié)點(diǎn)判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件不包含備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志時(shí),備份節(jié)點(diǎn)將備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;當(dāng)備份節(jié)點(diǎn)判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志時(shí),備份節(jié)點(diǎn)不將備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。例如,圖10中本節(jié)點(diǎn)的備份節(jié)點(diǎn)(節(jié)點(diǎn)I或節(jié)點(diǎn)3)執(zhí)行寫(xiě)入操作時(shí),備份節(jié)點(diǎn)(節(jié)點(diǎn)I或節(jié)點(diǎn)3)首先判斷磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件是否包含備份節(jié)點(diǎn)緩存區(qū)(節(jié)點(diǎn)I中本節(jié)點(diǎn)事務(wù)日志緩存區(qū)、或節(jié)點(diǎn)3中本節(jié)點(diǎn)事務(wù)日志緩存區(qū))中備份的事務(wù)日志,若不包含,則備份節(jié)點(diǎn)(節(jié)點(diǎn)I或節(jié)點(diǎn)3)將其緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件;若磁盤(pán)中本節(jié)點(diǎn)(節(jié)點(diǎn)2)的事務(wù)日志文件包含備份節(jié)點(diǎn)緩存區(qū)中備份的事務(wù)日志時(shí),備份節(jié)點(diǎn)(節(jié)點(diǎn)I或節(jié)點(diǎn)3)不將其緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件。
[0085]步驟SI 12,本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于磁盤(pán)中的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0086]通過(guò)上述方法可知,本節(jié)點(diǎn)事務(wù)提交后,不僅將生成的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),還備份至其他節(jié)點(diǎn)的緩存區(qū),可降低節(jié)點(diǎn)數(shù)據(jù)崩潰事件導(dǎo)致的事務(wù)日志丟失的概率,提高事務(wù)日志的安全性;保存有本節(jié)點(diǎn)事務(wù)日志的本節(jié)點(diǎn)以及所有的備份節(jié)點(diǎn)均能夠執(zhí)行將其緩存區(qū)保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件的操作,使磁盤(pán)中的事務(wù)日志文件的記錄位置始終保持為本節(jié)點(diǎn)最后一個(gè)事物操作生成的日志記錄位置,若數(shù)據(jù)庫(kù)系統(tǒng)發(fā)生宕機(jī)情況,則系統(tǒng)在啟動(dòng)恢復(fù)后,本節(jié)點(diǎn)可以從磁盤(pán)中讀取與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件并恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0087]本方法適用于高速互聯(lián)網(wǎng)絡(luò)下的集群數(shù)據(jù)庫(kù)系統(tǒng),其中,本方案實(shí)施例所提及的節(jié)點(diǎn)在集群數(shù)據(jù)庫(kù)系統(tǒng)中可以為節(jié)點(diǎn)交換機(jī)(Infiniband,高速互連設(shè)備),路由器等一類(lèi)具有數(shù)據(jù)傳輸、共享功能的互聯(lián)設(shè)備。
[0088]上述實(shí)施例可較好地支持Shared-Disk架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由于本方法為集群中節(jié)點(diǎn)設(shè)置了安全系數(shù)以及多個(gè)保存事務(wù)日志的備份節(jié)點(diǎn)緩存區(qū),提高了事務(wù)日志的持久性;本節(jié)點(diǎn)以及備份節(jié)點(diǎn)均可執(zhí)行將其緩存區(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入磁盤(pán)中與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件,能夠提高事務(wù)日志文件的可靠性,本發(fā)明實(shí)施例保持了現(xiàn)有技術(shù)中異步提交方案的并發(fā)處理性能,同時(shí)兼具了同步提交方案的持久性,降低了系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高了系統(tǒng)數(shù)據(jù)安全性、可靠性。[0089]圖2是本發(fā)明第二實(shí)施例中的一種恢復(fù)數(shù)據(jù)的方法的流程圖。該方法可以適用于數(shù)據(jù)庫(kù)系統(tǒng)中通過(guò)節(jié)點(diǎn)的事務(wù)日志恢復(fù)節(jié)點(diǎn)數(shù)據(jù)的恢復(fù)工作。集群數(shù)據(jù)庫(kù)由至少兩個(gè)數(shù)據(jù)處理節(jié)點(diǎn)構(gòu)成,通常,數(shù)據(jù)庫(kù)的緩存區(qū)會(huì)備份有每個(gè)數(shù)據(jù)處理節(jié)點(diǎn)處理數(shù)據(jù)過(guò)程中生成的事務(wù)日志,當(dāng)出現(xiàn)節(jié)點(diǎn)數(shù)據(jù)丟失狀況時(shí),可通過(guò)緩存區(qū)中該節(jié)點(diǎn)所對(duì)應(yīng)的事務(wù)日志還原該節(jié)點(diǎn)的數(shù)據(jù)。在本發(fā)明實(shí)施例中,節(jié)點(diǎn)處理數(shù)據(jù)過(guò)程結(jié)束后備份事務(wù)日志,以及節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),恢復(fù)節(jié)點(diǎn)丟失的數(shù)據(jù)的操作,可以采用如圖2所示的方法進(jìn)行處理。如圖2所示,本實(shí)施例的處理流程可以包括以下步驟:
[0090]步驟S210,事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)。其中,節(jié)點(diǎn)緩存區(qū)保存的事務(wù)日志寫(xiě)入磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,使磁盤(pán)中的事務(wù)日志文件記錄位置保持與事務(wù)日志相同記錄位置,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至其他節(jié)點(diǎn)的緩存區(qū),可以提高本節(jié)點(diǎn)事務(wù)日志的安全性。
[0091]進(jìn)一步可選的,在本步驟之前,本方法還對(duì)選取備份節(jié)點(diǎn)、將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)的方式給出可實(shí)施方案:
[0092]首先,設(shè)置本節(jié)點(diǎn)的安全等級(jí)以及與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目??梢哉J(rèn)為,節(jié)點(diǎn)安全等級(jí)越高,節(jié)點(diǎn)所需備份節(jié)點(diǎn)的數(shù)目越多,并且安全等級(jí)數(shù)(WSF, WAL SafetyFactor)大于等于I,當(dāng)WSF>1時(shí),應(yīng)預(yù)先在集群數(shù)據(jù)庫(kù)系統(tǒng)指定至少I(mǎi)個(gè)節(jié)點(diǎn)作為本節(jié)點(diǎn)的備份節(jié)點(diǎn)。備份節(jié)點(diǎn)的數(shù)目可以與安全等級(jí)成正比例增長(zhǎng),例如,可規(guī)定本節(jié)點(diǎn)WSF=3時(shí),集群數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)存在2個(gè)本節(jié)點(diǎn)的備份節(jié)點(diǎn),本節(jié)點(diǎn)WSF=4時(shí),集群數(shù)據(jù)庫(kù)系統(tǒng)中應(yīng)存在3個(gè)本節(jié)點(diǎn)的備份節(jié)點(diǎn)。
[0093]其次,從本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為本節(jié)點(diǎn)選擇出與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)。
[0094]進(jìn)一步可選的,選擇備份節(jié)點(diǎn)的原則可以為就近原則,即從與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn);也可以按照一定的規(guī)則進(jìn)行選擇,如從本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn)。如圖11所示的Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由圖11可以看出,每個(gè)節(jié)點(diǎn)均包含多個(gè)可用于保存事務(wù)日志的緩存區(qū),當(dāng)設(shè)置節(jié)點(diǎn)2的安全等級(jí)WSF=3時(shí),除了作為本節(jié)點(diǎn)的節(jié)點(diǎn)2以夕卜,系統(tǒng)中還應(yīng)存在2個(gè)備份節(jié)點(diǎn),可選擇與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)I和節(jié)點(diǎn)3作為備份節(jié)點(diǎn)。
[0095]進(jìn)一步可選的,確定備份節(jié)點(diǎn)后,備份節(jié)點(diǎn)的緩存區(qū)將作為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū)。具體的,可注冊(cè)該緩存區(qū)的地址,并在注冊(cè)成功后將注冊(cè)信息發(fā)送至該緩存區(qū)對(duì)應(yīng)的備份節(jié)點(diǎn),以便于將本節(jié)點(diǎn)事務(wù)日志準(zhǔn)確寫(xiě)入該緩存區(qū)。如前述的舉例,可從圖11所示系統(tǒng)的節(jié)點(diǎn)I中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)1,節(jié)點(diǎn)I則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū);從圖11所示系統(tǒng)的節(jié)點(diǎn)3中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)3,節(jié)點(diǎn)3則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū)。
[0096]步驟S211,將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。其中,磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù)。[0097]如圖11所示的Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),各個(gè)節(jié)點(diǎn)均配置有相應(yīng)的磁盤(pán),且節(jié)點(diǎn)間不共享磁盤(pán)數(shù)據(jù)。故當(dāng)節(jié)點(diǎn)緩存區(qū)保存有本節(jié)點(diǎn)事務(wù)日志以及其他節(jié)點(diǎn)事務(wù)日志時(shí),節(jié)點(diǎn)配置磁盤(pán)中將包含有該節(jié)點(diǎn)的事務(wù)日志文件,還包含有該節(jié)點(diǎn)作為備份節(jié)點(diǎn)時(shí)其緩存區(qū)保存的其他節(jié)點(diǎn)的事務(wù)日志文件,并且,這些事務(wù)日志文件是由該節(jié)點(diǎn)根據(jù)其緩存區(qū)中保存的事務(wù)日志來(lái)執(zhí)行寫(xiě)入操作。如前所述,當(dāng)本節(jié)點(diǎn)的安全等級(jí)大于I時(shí),系統(tǒng)中存在用于保存本節(jié)點(diǎn)事務(wù)日志的備份節(jié)點(diǎn),那么相應(yīng)地,可用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件可以有多個(gè),并且存在于本節(jié)點(diǎn)以及備份節(jié)點(diǎn)所配置的磁盤(pán)中。例如,當(dāng)圖11中節(jié)點(diǎn)2作為本節(jié)點(diǎn)時(shí),節(jié)點(diǎn)1、節(jié)點(diǎn)2和節(jié)點(diǎn)3所對(duì)應(yīng)的配置磁盤(pán)中均包含有本節(jié)點(diǎn)事務(wù)日志文件,并且節(jié)點(diǎn)I可根據(jù)其配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件執(zhí)行節(jié)點(diǎn)I緩存區(qū)中本節(jié)點(diǎn)事務(wù)日志的寫(xiě)入操作,節(jié)點(diǎn)2可根據(jù)其配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件執(zhí)行節(jié)點(diǎn)2緩存區(qū)中本節(jié)點(diǎn)事務(wù)日志的寫(xiě)入操作,節(jié)點(diǎn)3可根據(jù)其配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件執(zhí)行節(jié)點(diǎn)3緩存區(qū)中本節(jié)點(diǎn)事務(wù)日志的寫(xiě)入操作。
[0098]進(jìn)一步可選的,本步驟中,本節(jié)點(diǎn)或備份節(jié)點(diǎn)將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件操作的觸發(fā)條件可以為定時(shí)觸發(fā),可包括儲(chǔ)存事務(wù)日志的緩沖區(qū)滿(mǎn)時(shí)觸發(fā),還可包括按照規(guī)定時(shí)間為起點(diǎn),每隔一定的時(shí)間間隔進(jìn)行觸發(fā)。
[0099]當(dāng)觸發(fā)本節(jié)點(diǎn)寫(xiě)入操作時(shí),本節(jié)點(diǎn)將本節(jié)點(diǎn)緩存區(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入本節(jié)點(diǎn)配置磁盤(pán)(即本節(jié)點(diǎn)磁盤(pán))中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,其中,這里提到的本節(jié)點(diǎn)磁盤(pán)為不支持本節(jié)點(diǎn)以外的其他節(jié)點(diǎn)訪(fǎng)問(wèn)的磁盤(pán)或磁盤(pán)陣列。由于本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件不能被其他節(jié)點(diǎn)讀取,故在本節(jié)點(diǎn)未發(fā)生數(shù)據(jù)丟失的情況下,本步驟中不必檢測(cè)事務(wù)日志文件位置,可直接進(jìn)行寫(xiě)入操作。例如,圖11系統(tǒng)示意圖中,當(dāng)觸發(fā)本節(jié)點(diǎn)(節(jié)點(diǎn)2)的寫(xiě)入操作時(shí),本節(jié)點(diǎn)(節(jié)點(diǎn)2)可將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入本節(jié)點(diǎn)磁盤(pán)中的節(jié)點(diǎn)2事務(wù)日志文件。此外,在系統(tǒng)中,本節(jié)點(diǎn)亦能同時(shí)作為備份節(jié)點(diǎn)將其他節(jié)點(diǎn)的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),故本節(jié)點(diǎn)也可將其緩存區(qū)中保存的其他節(jié)點(diǎn)的事務(wù)日志寫(xiě)入本節(jié)點(diǎn)磁盤(pán)中對(duì)應(yīng)其他節(jié)點(diǎn)的事務(wù)日志文件,例如,圖11系統(tǒng)示意圖中,本節(jié)點(diǎn)(節(jié)點(diǎn)2)可將其緩存區(qū)中保存的節(jié)點(diǎn)I事務(wù)日志寫(xiě)入本節(jié)點(diǎn)磁盤(pán)中的節(jié)點(diǎn)I事務(wù)日志文件,本節(jié)點(diǎn)(節(jié)點(diǎn)2)可將其緩存區(qū)中保存的節(jié)點(diǎn)3事務(wù)日志寫(xiě)入本節(jié)點(diǎn)磁盤(pán)中的節(jié)點(diǎn)3事務(wù)日志文件。
[0100]當(dāng)觸發(fā)備份節(jié)點(diǎn)寫(xiě)入操作時(shí),備份節(jié)點(diǎn)將備份節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入備份節(jié)點(diǎn)配置磁盤(pán)(即備份節(jié)點(diǎn)磁盤(pán))中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,其中,這里提及的備份節(jié)點(diǎn)磁盤(pán)為不支持該備份節(jié)點(diǎn)以外的其他節(jié)點(diǎn)訪(fǎng)問(wèn)的磁盤(pán)或磁盤(pán)陣列。由于備份節(jié)點(diǎn)磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件不能被其他節(jié)點(diǎn)讀取(亦不能被本節(jié)點(diǎn)讀取),故在該備份節(jié)點(diǎn)未發(fā)生數(shù)據(jù)丟失的情況下,本步驟中不必檢測(cè)事務(wù)日志文件位置,該備份節(jié)點(diǎn)可直接進(jìn)行寫(xiě)入操作。例如,圖11系統(tǒng)示意圖中,當(dāng)觸發(fā)備份節(jié)點(diǎn)(節(jié)點(diǎn)I)的寫(xiě)入操作時(shí),備份節(jié)點(diǎn)(節(jié)點(diǎn)I)可將其緩存區(qū)中保存的本節(jié)點(diǎn)(節(jié)點(diǎn)2)事務(wù)日志寫(xiě)入節(jié)點(diǎn)I磁盤(pán)中的節(jié)點(diǎn)2事務(wù)日志文件,備份節(jié)點(diǎn)(節(jié)點(diǎn)3)可將其緩存區(qū)中保存的本節(jié)點(diǎn)(節(jié)點(diǎn)2)事務(wù)日志寫(xiě)入節(jié)點(diǎn)3磁盤(pán)中的節(jié)點(diǎn)2事務(wù)日志文件。
[0101]步驟S212,本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于磁盤(pán)中與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0102]如前所述,當(dāng)Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng)出現(xiàn)巖機(jī)事件,致使節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失時(shí),可通過(guò)從該節(jié)點(diǎn)配置磁盤(pán)、以及保存有該節(jié)點(diǎn)事務(wù)日志的備份節(jié)點(diǎn)的配置磁盤(pán)獲取該節(jié)點(diǎn)事務(wù)日志文件,以恢復(fù)該節(jié)點(diǎn)的數(shù)據(jù)。具體實(shí)施可包括:讀取本節(jié)點(diǎn)磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件;讀取備份節(jié)點(diǎn)磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件;從讀取到的各個(gè)事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件;使用信息最完整的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)??梢徊⒄?qǐng)D11所示的Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),如前述實(shí)施例所述的內(nèi)容,當(dāng)節(jié)點(diǎn)2作為本節(jié)點(diǎn)時(shí),可用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的本節(jié)點(diǎn)事務(wù)日志文件存在于圖中節(jié)點(diǎn)I磁盤(pán)、本節(jié)點(diǎn)(節(jié)點(diǎn)2)磁盤(pán)、以及節(jié)點(diǎn)3磁盤(pán)中,若由于系統(tǒng)宕機(jī)事件致使本節(jié)點(diǎn)數(shù)據(jù)丟失,則可使用存在于節(jié)點(diǎn)I磁盤(pán)、本節(jié)點(diǎn)(節(jié)點(diǎn)2)磁盤(pán)、以及節(jié)點(diǎn)3磁盤(pán)中的各個(gè)本節(jié)點(diǎn)事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。由于這三個(gè)磁盤(pán)中各有一個(gè)本節(jié)點(diǎn)事務(wù)日志,并且,三個(gè)節(jié)點(diǎn)均有可能在宕機(jī)事件出現(xiàn)過(guò)程中未能及時(shí)將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入配置磁盤(pán)中的事務(wù)日志文件,那么需要從中選取一個(gè)最優(yōu)的本節(jié)點(diǎn)事務(wù)日志文件進(jìn)行本節(jié)點(diǎn)數(shù)據(jù)恢復(fù)操作,選擇的方法可以為從讀取到各個(gè)事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件,即通過(guò)比對(duì)各個(gè)事務(wù)日志文件的記錄位置并選擇出記錄位置最新的本節(jié)點(diǎn)事務(wù)日志文件,其中,比對(duì)各個(gè)事務(wù)日志文件的執(zhí)行主體可以為本節(jié)點(diǎn),備份節(jié)點(diǎn)從備份節(jié)點(diǎn)磁盤(pán)讀取本節(jié)點(diǎn)事務(wù)日志文件,再發(fā)送至本節(jié)點(diǎn),本節(jié)點(diǎn)接收到各個(gè)備份節(jié)點(diǎn)發(fā)送的本節(jié)點(diǎn)事務(wù)日志文件后,連同從本節(jié)點(diǎn)磁盤(pán)中讀取的本節(jié)點(diǎn)事務(wù)日志文件一起進(jìn)行比對(duì),最后找到信息最完整的事務(wù)日志文件。例如,通過(guò)比對(duì)存在于節(jié)點(diǎn)I磁盤(pán)、本節(jié)點(diǎn)(節(jié)點(diǎn)2)磁盤(pán)、以及節(jié)點(diǎn)3磁盤(pán)中的各個(gè)本節(jié)點(diǎn)事務(wù)日志文件,比較出節(jié)點(diǎn)I磁盤(pán)中保存的本節(jié)點(diǎn)事務(wù)日志文件為信息最完整的事務(wù)日志文件,則本步驟使用節(jié)點(diǎn)I磁盤(pán)中保存的本節(jié)點(diǎn)事務(wù)日志文件進(jìn)行本節(jié)點(diǎn)數(shù)據(jù)的恢復(fù)。
[0103]通過(guò)上述方法可知,本節(jié)點(diǎn)事務(wù)提交后,不僅將生成的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),還備份至其他節(jié)點(diǎn)的緩存區(qū),可降低節(jié)點(diǎn)數(shù)據(jù)崩潰事件導(dǎo)致的事務(wù)日志丟失的概率,提高事務(wù)日志的安全性;保存有本節(jié)點(diǎn)事務(wù)日志的本節(jié)點(diǎn)以及所有的備份節(jié)點(diǎn)均能夠?qū)⑵渚彺鎱^(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入其配置磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件,使各個(gè)配置磁盤(pán)中與本節(jié)點(diǎn)事務(wù)日志文件的記錄位置始終保持為本節(jié)點(diǎn)最后一個(gè)事物操作生成的日志記錄位置,那么,數(shù)據(jù)庫(kù)系統(tǒng)發(fā)生宕機(jī)情況時(shí),系統(tǒng)在啟動(dòng)恢復(fù)后可通過(guò)存在于各個(gè)配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0104]本方法適用于高速互聯(lián)網(wǎng)絡(luò)下的集群數(shù)據(jù)庫(kù)系統(tǒng),其中,本方案實(shí)施例所提及的節(jié)點(diǎn)在集群數(shù)據(jù)庫(kù)系統(tǒng)中可以為節(jié)點(diǎn)交換機(jī)(Infiniband,高速互連設(shè)備),路由器等一類(lèi)具有數(shù)據(jù)傳輸、共享功能的互聯(lián)設(shè)備。
[0105]上述實(shí)施例可較好地支持Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由于本方法為集群中節(jié)點(diǎn)設(shè)置了安全系數(shù)以及多個(gè)保存事務(wù)日志的備份節(jié)點(diǎn)緩存區(qū),提高了事務(wù)日志的持久性;本節(jié)點(diǎn)以及備份節(jié)點(diǎn)均可執(zhí)行將其緩存區(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入其配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件,保證系統(tǒng)可以獲取到信息最完整的事務(wù)日志文件并進(jìn)行節(jié)點(diǎn)數(shù)據(jù)恢復(fù)工作,能夠提高事務(wù)日志文件的可靠性,本發(fā)明實(shí)施例保持了現(xiàn)有技術(shù)中異步提交方案的并發(fā)處理性能,同時(shí)兼具了同步提交方案的持久性,降低了系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高了系統(tǒng)數(shù)據(jù)安全性、可靠性。
[0106]前述實(shí)施例主要以Shared-Disk架構(gòu)以及Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng)為例闡述了實(shí)施方法,前述方案還可以適用于利用WAL技術(shù)實(shí)現(xiàn)的在線(xiàn)分布式數(shù)據(jù)處理系統(tǒng)或集群,如分布式存儲(chǔ)系統(tǒng)、分布式KEY/VALUE數(shù)據(jù)庫(kù)系統(tǒng)、分布式列式數(shù)據(jù)庫(kù)、分布式圖數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)備份系統(tǒng)等,本方案詳述的實(shí)施例不應(yīng)理解為對(duì)本方案實(shí)施方式的限制。
[0107]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)恢復(fù)系統(tǒng),用于實(shí)現(xiàn)上述的方法。圖3是本發(fā)明第三實(shí)施例中的一種數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖。本發(fā)明實(shí)施例的數(shù)據(jù)恢復(fù)系統(tǒng)可以為一種系統(tǒng)內(nèi)各節(jié)點(diǎn)共享磁盤(pán)數(shù)據(jù)的集群數(shù)據(jù)庫(kù)系統(tǒng),可以用于實(shí)施圖1所示的方案,如圖所示,本發(fā)明實(shí)施例的系統(tǒng)至少可以包括:保存與備份模塊31、寫(xiě)入模塊32和恢復(fù)模塊33,其中:
[0108]保存與備份模塊31,用于事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)。其中,節(jié)點(diǎn)緩存區(qū)保存的事務(wù)日志用于寫(xiě)入磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,使磁盤(pán)中的事務(wù)日志文件記錄位置保持與事務(wù)日志相同記錄位置,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至其他節(jié)點(diǎn)的緩存區(qū),可以提高本節(jié)點(diǎn)事務(wù)日志的安全性。
[0109]寫(xiě)入模塊32,用于將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。其中,磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù),寫(xiě)入模塊32將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件操作的觸發(fā)條件可以為定時(shí)觸發(fā),可包括儲(chǔ)存事務(wù)日志的緩沖區(qū)滿(mǎn)時(shí)觸發(fā),還可包括按照規(guī)定時(shí)間為起點(diǎn),每隔一定的時(shí)間間隔進(jìn)行觸發(fā)。
[0110]恢復(fù)模塊33,用于本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于磁盤(pán)中的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0111]進(jìn)一步可選的,可一并參照?qǐng)D4所示的系統(tǒng)示意圖,本發(fā)明實(shí)施例還可以通過(guò)系統(tǒng)中設(shè)置模塊34和選擇模塊35進(jìn)行備份節(jié)點(diǎn)選取、并將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū):
[0112]設(shè)置模塊34,用于設(shè)置本節(jié)點(diǎn)的安全等級(jí)以及與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。可以認(rèn)為,設(shè)置模塊34設(shè)置的節(jié)點(diǎn)安全等級(jí)越高,節(jié)點(diǎn)所需備份節(jié)點(diǎn)的數(shù)目越多,并且安全等級(jí)數(shù)(WSF, WAL Safety Factor)大于等于I,當(dāng)WSF>1時(shí),應(yīng)預(yù)先在集群數(shù)據(jù)庫(kù)系統(tǒng)指定至少I(mǎi)個(gè)節(jié)點(diǎn)作為備份節(jié)點(diǎn)。
[0113]選擇模塊35,用于從本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為本節(jié)點(diǎn)選擇出與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)。
[0114]進(jìn)一步可選的,選擇模塊35選擇備份節(jié)點(diǎn)的原則可以為就近原則,即從與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn);選擇模塊35也可以按照一定的規(guī)則進(jìn)行選擇,如從本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn)。如圖10所示的Shared-disk架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由圖10可以看出,每個(gè)節(jié)點(diǎn)均包含多個(gè)可用于保存事務(wù)日志的緩存區(qū),當(dāng)設(shè)置節(jié)點(diǎn)2事務(wù)提交后生成的事務(wù)日志的安全等級(jí)WSF=3時(shí),則除了作為本節(jié)點(diǎn)的節(jié)點(diǎn)2以外,系統(tǒng)中還應(yīng)存在2個(gè)備份節(jié)點(diǎn),可選擇與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)I和節(jié)點(diǎn)3作為備份節(jié)點(diǎn)。
[0115]進(jìn)一步可選的,選擇模塊35選擇出備份節(jié)點(diǎn)后,被選擇的備份節(jié)點(diǎn)的緩存區(qū)將作為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū)。具體的,可注冊(cè)該緩存區(qū)的地址,并在注冊(cè)成功后將注冊(cè)信息發(fā)送至該緩存區(qū)對(duì)應(yīng)的備份節(jié)點(diǎn),以便于將本節(jié)點(diǎn)事務(wù)日志準(zhǔn)確寫(xiě)入該緩存區(qū)。如前述的舉例,可從圖10所示系統(tǒng)的節(jié)點(diǎn)I中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)1,節(jié)點(diǎn)I則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū);從圖10所示系統(tǒng)的節(jié)點(diǎn)3中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)3,節(jié)點(diǎn)3則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū)。
[0116]進(jìn)一步可選的,可一并參照?qǐng)D5所示的寫(xiě)入模塊32的示意圖,寫(xiě)入模塊32可以通過(guò)第一判斷單元321、第一寫(xiě)入單元322實(shí)現(xiàn)磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件的寫(xiě)入操作。
[0117]第一判斷單元321,用于定時(shí)判斷磁盤(pán)中的事務(wù)日志文件是否包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志;若判斷出磁盤(pán)中的事務(wù)日志文件不包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,則生成第一寫(xiě)入消息并發(fā)送至第一寫(xiě)入單元322 ;若判斷出磁盤(pán)中的事務(wù)日志文件包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,則生成第一不寫(xiě)入消息并發(fā)送至第一寫(xiě)入單元322。當(dāng)觸發(fā)本節(jié)點(diǎn)寫(xiě)入操作時(shí),第一判斷單元321首先判斷磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件是否包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,即磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置是否與本節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同,當(dāng)磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件位置與本節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同時(shí),代表磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志,第一寫(xiě)入單元322無(wú)需再次進(jìn)行寫(xiě)入操作。那么,當(dāng)?shù)谝慌袛鄦卧?21判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件不包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志時(shí),可通知第一寫(xiě)入單元322執(zhí)行寫(xiě)入操作;當(dāng)?shù)谝慌袛鄦卧?21判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志時(shí),第一判斷單元321通知第一寫(xiě)入單元322不執(zhí)行寫(xiě)入操作。
[0118]第一寫(xiě)入單元322,用于接收到第一寫(xiě)入消息后,將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;用于接收到第一不寫(xiě)入消息后,不將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。
[0119]進(jìn)一步可選的,可一并參照?qǐng)D6所示的寫(xiě)入模塊32的示意圖,寫(xiě)入模塊32還可以通過(guò)第二判斷單元323以及第二寫(xiě)入單元324實(shí)現(xiàn)磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件的寫(xiě)入操作。
[0120]第二判斷單元323,用于定時(shí)判斷磁盤(pán)中的事務(wù)日志文件是否包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志;若判斷出磁盤(pán)中的事務(wù)日志文件不包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志,則生成第二寫(xiě)入消息并發(fā)送至第二寫(xiě)入單元324;若判斷出磁盤(pán)中的事務(wù)日志文件包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志,則生成第二不寫(xiě)入消息并發(fā)送至第二寫(xiě)入單元324。當(dāng)觸發(fā)備份節(jié)點(diǎn)寫(xiě)入操作時(shí),第二判斷單元323首先判斷磁盤(pán)中的事務(wù)日志文件是否包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志,即磁盤(pán)中的事務(wù)日志文件位置是否與備份節(jié)點(diǎn)緩存區(qū)的事務(wù)日志位置相同,當(dāng)磁盤(pán)中的事務(wù)日志文件位置與備份節(jié)點(diǎn)的緩存區(qū)中保存的事務(wù)日志位置相同時(shí),代表磁盤(pán)中的事務(wù)日志文件包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志,第二寫(xiě)入單元324無(wú)需再次進(jìn)行寫(xiě)入操作。那么,當(dāng)?shù)诙袛鄦卧?23判斷出磁盤(pán)中的事務(wù)日志文件不包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志時(shí),可通知第二寫(xiě)入單元324執(zhí)行寫(xiě)入操作;當(dāng)?shù)诙袛鄦卧?23判斷出磁盤(pán)中本節(jié)點(diǎn)的事務(wù)日志文件包含備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志時(shí),第二判斷單元322通知第二寫(xiě)入單元324不執(zhí)行寫(xiě)入操作。[0121]第二寫(xiě)入單元324,用于接收到第二寫(xiě)入消息后,將備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;用于接收到第二不寫(xiě)入消息后,不將備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。
[0122]本發(fā)明實(shí)施例的系統(tǒng)中,本節(jié)點(diǎn)事務(wù)提交后,不僅將生成的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),還備份至其他節(jié)點(diǎn)的緩存區(qū),可降低節(jié)點(diǎn)數(shù)據(jù)崩潰事件導(dǎo)致的事務(wù)日志丟失的概率,提高事務(wù)日志的安全性;保存有本節(jié)點(diǎn)事務(wù)日志的本節(jié)點(diǎn)以及所有的備份節(jié)點(diǎn)均能夠執(zhí)行將其緩存區(qū)保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件的操作,使磁盤(pán)中的事務(wù)日志文件的記錄位置始終保持為本節(jié)點(diǎn)最后一個(gè)事物操作生成的日志記錄位置,若本發(fā)明實(shí)施例的系統(tǒng)發(fā)生宕機(jī)情況,則系統(tǒng)在啟動(dòng)恢復(fù)后,系統(tǒng)中本節(jié)點(diǎn)可以從磁盤(pán)中讀取與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件并恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0123]本發(fā)明實(shí)施例的系統(tǒng)可以為高速互聯(lián)網(wǎng)絡(luò)下的集群數(shù)據(jù)庫(kù)系統(tǒng),其中,本方案實(shí)施例所提及的節(jié)點(diǎn)在系統(tǒng)中可以為節(jié)點(diǎn)交換機(jī)(Infiniband,高速互連設(shè)備),路由器等一類(lèi)具有數(shù)據(jù)傳輸、共享功能的互聯(lián)設(shè)備。
[0124]本發(fā)明實(shí)施例的系統(tǒng)可以為Shared-Disk架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),其中集群中節(jié)點(diǎn)設(shè)置了安全系數(shù)以及多個(gè)保存事務(wù)日志的備份節(jié)點(diǎn)緩存區(qū),故本發(fā)明實(shí)施例提高了事務(wù)日志的持久性;本發(fā)明實(shí)施例提供的系統(tǒng)中,本節(jié)點(diǎn)以及備份節(jié)點(diǎn)均可執(zhí)行將其緩存區(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入磁盤(pán)中與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件,能夠提高事務(wù)日志文件的可靠性,本發(fā)明實(shí)施例的系統(tǒng)在數(shù)據(jù)處理方面保持了現(xiàn)有技術(shù)中異步提交方案的并發(fā)處理性能,同時(shí)兼具了同步提交方案的持久性,降低了系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高了系統(tǒng)數(shù)據(jù)安全性、可靠性。
[0125]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)恢復(fù)系統(tǒng),用于實(shí)現(xiàn)上述的方法。圖7是本發(fā)明第四實(shí)施例中的一種數(shù)據(jù)恢復(fù)系統(tǒng)的結(jié)構(gòu)組成示意圖。本發(fā)明實(shí)施例的數(shù)據(jù)恢復(fù)系統(tǒng)可以為一種系統(tǒng)內(nèi)各節(jié)點(diǎn)不共享磁盤(pán)數(shù)據(jù)的集群數(shù)據(jù)庫(kù)系統(tǒng),可以用于實(shí)施圖2所示的方案,如圖所示,本發(fā)明實(shí)施例的系統(tǒng)至少可以包括:設(shè)置模塊71、選擇模塊72、保存與備份模塊73、寫(xiě)入模塊74和恢復(fù)模塊75,其中:
[0126]設(shè)置模塊71,用于設(shè)置本節(jié)點(diǎn)的安全等級(jí)以及與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。設(shè)置模塊34為本節(jié)點(diǎn)生成的事務(wù)日志設(shè)置安全等級(jí)以及與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目??梢哉J(rèn)為,設(shè)置模塊71設(shè)置的節(jié)點(diǎn)安全等級(jí)越高,節(jié)點(diǎn)所需備份節(jié)點(diǎn)的數(shù)目越多,并且安全等級(jí)數(shù)(WSF, WAL Safety Factor)大于等于I,當(dāng)WSF>1時(shí),應(yīng)預(yù)先在集群數(shù)據(jù)庫(kù)系統(tǒng)指定至少I(mǎi)個(gè)節(jié)點(diǎn)作為備份節(jié)點(diǎn)。
[0127]選擇模塊72,用于從本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為本節(jié)點(diǎn)選擇出與安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份事務(wù)日志的緩存區(qū)。
[0128]進(jìn)一步可選的,選擇模塊72選擇備份節(jié)點(diǎn)的原則可以為就近原則,即從與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn);也可以按照一定的規(guī)則進(jìn)行選擇,如從本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出與安全等級(jí)相對(duì)應(yīng)數(shù)目的備份節(jié)點(diǎn)。如圖11所示的Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),由圖11可以看出,每個(gè)節(jié)點(diǎn)均包含多個(gè)可用于保存事務(wù)日志的緩存區(qū),當(dāng)設(shè)置節(jié)點(diǎn)2事務(wù)提交后生成的事務(wù)日志的安全等級(jí)WSF=3時(shí),則除了作為本節(jié)點(diǎn)的節(jié)點(diǎn)2以外,系統(tǒng)中還應(yīng)存在2個(gè)備份節(jié)點(diǎn),可選擇與本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)I和節(jié)點(diǎn)3作為備份節(jié)點(diǎn)。
[0129]進(jìn)一步可選的,選擇模塊72選擇出備份節(jié)點(diǎn)后,備份節(jié)點(diǎn)的緩存區(qū)將作為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū)。具體的,可注冊(cè)該緩存區(qū)的地址,并在注冊(cè)成功后將注冊(cè)信息發(fā)送至該緩存區(qū)對(duì)應(yīng)的備份節(jié)點(diǎn),以便于將本節(jié)點(diǎn)事務(wù)日志準(zhǔn)確寫(xiě)入該緩存區(qū)。如前述的舉例,可從圖11所示系統(tǒng)的節(jié)點(diǎn)I中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)1,節(jié)點(diǎn)I則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū);從圖11所示系統(tǒng)的節(jié)點(diǎn)3中選擇一空余緩存區(qū),記錄該緩存區(qū)的地址并注冊(cè)為用于保存本節(jié)點(diǎn)事務(wù)日志的緩存區(qū),注冊(cè)成功后,可將注冊(cè)信息發(fā)送至節(jié)點(diǎn)3,節(jié)點(diǎn)3則根據(jù)本節(jié)點(diǎn)發(fā)送的注冊(cè)信息將本節(jié)點(diǎn)事務(wù)日志寫(xiě)入注冊(cè)信息對(duì)應(yīng)的緩存區(qū)。
[0130]保存與備份模塊73,用于事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)。其中,節(jié)點(diǎn)緩存區(qū)保存的事務(wù)日志用于寫(xiě)入磁盤(pán)中用于恢復(fù)本節(jié)點(diǎn)數(shù)據(jù)的事務(wù)日志文件,使磁盤(pán)中的事務(wù)日志文件記錄位置保持與事務(wù)日志相同記錄位置,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將事務(wù)日志備份至其他節(jié)點(diǎn)的緩存區(qū),可以提高本節(jié)點(diǎn)事務(wù)日志的安全性。
[0131]寫(xiě)入模塊74,用于將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件。其中,磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù),寫(xiě)入模塊74將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件操作的觸發(fā)條件可以為定時(shí)觸發(fā),可包括儲(chǔ)存事務(wù)日志的緩沖區(qū)滿(mǎn)時(shí)觸發(fā),還可包括按照規(guī)定時(shí)間為起點(diǎn),每隔一定的時(shí)間間隔進(jìn)行觸發(fā)。
[0132]恢復(fù)模塊75,用于本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于磁盤(pán)中的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0133]進(jìn)一步可選的,可一并參照?qǐng)D8所示的寫(xiě)入模塊74的示意圖,寫(xiě)入模塊74可以通過(guò)本節(jié)點(diǎn)寫(xiě)入單元741和備份節(jié)點(diǎn)寫(xiě)入單元742實(shí)現(xiàn)本節(jié)點(diǎn)以及備份節(jié)點(diǎn)對(duì)其配置磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件的寫(xiě)入操作,其中,本發(fā)明實(shí)施例所提及的磁盤(pán)包括僅支持所述本節(jié)點(diǎn)訪(fǎng)問(wèn)的本節(jié)點(diǎn)磁盤(pán),以及僅支持備份節(jié)點(diǎn)訪(fǎng)問(wèn)的備份節(jié)點(diǎn)磁盤(pán)。如圖11所示的Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),各個(gè)節(jié)點(diǎn)均配置有相應(yīng)的磁盤(pán),且節(jié)點(diǎn)間不共享磁盤(pán)數(shù)據(jù)。故當(dāng)節(jié)點(diǎn)緩存區(qū)保存有本節(jié)點(diǎn)事務(wù)日志以及其他節(jié)點(diǎn)事務(wù)日志時(shí),節(jié)點(diǎn)配置磁盤(pán)中將包含有該節(jié)點(diǎn)的事務(wù)日志文件,還包含有該節(jié)點(diǎn)作為備份節(jié)點(diǎn)時(shí)其緩存區(qū)保存的其他節(jié)點(diǎn)的事務(wù)日志文件,并且,這些事務(wù)日志文件是由該節(jié)點(diǎn)根據(jù)其緩存區(qū)中保存的事務(wù)日志來(lái)執(zhí)行寫(xiě)入操作。
[0134]本節(jié)點(diǎn)寫(xiě)入單元721,用于將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,其中,本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù)。當(dāng)觸發(fā)本節(jié)點(diǎn)寫(xiě)入操作時(shí),本節(jié)點(diǎn)寫(xiě)入單元721將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志寫(xiě)入本節(jié)點(diǎn)配置磁盤(pán)(即本節(jié)點(diǎn)磁盤(pán))中的事務(wù)日志文件,其中,這里提到的本節(jié)點(diǎn)磁盤(pán)為不支持本節(jié)點(diǎn)以外的其他節(jié)點(diǎn)訪(fǎng)問(wèn)的磁盤(pán)或磁盤(pán)陣列。由于本節(jié)點(diǎn)磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件不能被其他節(jié)點(diǎn)讀取,故在本節(jié)點(diǎn)未發(fā)生數(shù)據(jù)丟失的情況下,本節(jié)點(diǎn)寫(xiě)入單元721不必檢測(cè)事務(wù)日志文件位置,可直接進(jìn)行寫(xiě)入操作。
[0135]備份節(jié)點(diǎn)寫(xiě)入單元722,用于將備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件。其中,備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)本節(jié)點(diǎn)的數(shù)據(jù)。當(dāng)觸發(fā)備份節(jié)點(diǎn)寫(xiě)入操作時(shí),備份節(jié)點(diǎn)寫(xiě)入單元722將其緩存區(qū)中保存的事務(wù)日志寫(xiě)入備份節(jié)點(diǎn)配置磁盤(pán)(即備份節(jié)點(diǎn)磁盤(pán))中的事務(wù)日志文件,其中,這里提及的備份節(jié)點(diǎn)磁盤(pán)為不支持該備份節(jié)點(diǎn)以外的其他節(jié)點(diǎn)訪(fǎng)問(wèn)的磁盤(pán)或磁盤(pán)陣列。由于備份節(jié)點(diǎn)磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件不能被其他節(jié)點(diǎn)讀取(亦不能被本節(jié)點(diǎn)讀取),故在該備份節(jié)點(diǎn)未發(fā)生數(shù)據(jù)丟失的情況下,備份節(jié)點(diǎn)寫(xiě)入單元722不必檢測(cè)事務(wù)日志文件位置,該備份節(jié)點(diǎn)可直接進(jìn)行寫(xiě)入操作。
[0136]進(jìn)一步可選的,可一并參照?qǐng)D9所示的恢復(fù)模塊75的示意圖,恢復(fù)模塊75可以通過(guò)讀取單元751、選擇單元752和恢復(fù)單元753實(shí)現(xiàn)本節(jié)點(diǎn)數(shù)據(jù)的恢復(fù)操作。
[0137]讀取單元731,用于讀取本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;還用于讀取備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;
[0138]選擇單元732,用于從讀取到的各個(gè)事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件。選擇單元732選擇的方法可以為從讀取到各個(gè)事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件,即通過(guò)比對(duì)各個(gè)事務(wù)日志文件的記錄位置并選擇出記錄位置最新的本節(jié)點(diǎn)事務(wù)日志文件。
[0139]恢復(fù)單元733,用于使用選擇單元732選擇出的信息最完整的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0140]本發(fā)明實(shí)施例的系統(tǒng)中,本節(jié)點(diǎn)事務(wù)提交后,不僅將生成的事務(wù)日志保存在本節(jié)點(diǎn)緩存區(qū),還備份至其他節(jié)點(diǎn)的緩存區(qū),可降低節(jié)點(diǎn)數(shù)據(jù)崩潰事件導(dǎo)致的事務(wù)日志丟失的概率,提高事務(wù)日志的安全性;保存有本節(jié)點(diǎn)事務(wù)日志的本節(jié)點(diǎn)以及所有的備份節(jié)點(diǎn)均能夠?qū)⑵渚彺鎱^(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入其配置磁盤(pán)中本節(jié)點(diǎn)事務(wù)日志文件,使各個(gè)配置磁盤(pán)中與本節(jié)點(diǎn)事務(wù)日志文件的記錄位置始終保持為本節(jié)點(diǎn)最后一個(gè)事物操作生成的日志記錄位置,那么,本發(fā)明實(shí)施例的系統(tǒng)發(fā)生宕機(jī)情況時(shí),系統(tǒng)在啟動(dòng)恢復(fù)后,系統(tǒng)中本節(jié)點(diǎn)可以從磁盤(pán)中讀取與本節(jié)點(diǎn)相對(duì)應(yīng)的事務(wù)日志文件并恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0141]本發(fā)明實(shí)施例的系統(tǒng)可以為高速互聯(lián)網(wǎng)絡(luò)下的集群數(shù)據(jù)庫(kù)系統(tǒng),其中,本方案實(shí)施例所提及的節(jié)點(diǎn)在系統(tǒng)中可以為節(jié)點(diǎn)交換機(jī)(Infiniband,高速互連設(shè)備),路由器等一類(lèi)具有數(shù)據(jù)傳輸、共享功能的互聯(lián)設(shè)備。
[0142]本發(fā)明實(shí)施例的系統(tǒng)可以為Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng),系統(tǒng)為系統(tǒng)中節(jié)點(diǎn)設(shè)置了安全系數(shù)以及多個(gè)保存事務(wù)日志的備份節(jié)點(diǎn)緩存區(qū),故本發(fā)明實(shí)施例提高了事務(wù)日志的持久性;本發(fā)明實(shí)施例提供的系統(tǒng)中,本節(jié)點(diǎn)以及備份節(jié)點(diǎn)均可執(zhí)行將其緩存區(qū)中保存的本節(jié)點(diǎn)事務(wù)日志寫(xiě)入其配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件,保證系統(tǒng)可以獲取到信息最完整的事務(wù)日志文件并進(jìn)行節(jié)點(diǎn)數(shù)據(jù)恢復(fù)工作,提高了事務(wù)日志文件的可靠性,本發(fā)明實(shí)施例的系統(tǒng)在數(shù)據(jù)處理方面保持了現(xiàn)有技術(shù)中異步提交方案的并發(fā)處理性能,同時(shí)兼具了同步提交方案的持久性,降低了系統(tǒng)數(shù)據(jù)風(fēng)險(xiǎn),提高了系統(tǒng)數(shù)據(jù)安全性、可靠性。
[0143]前述實(shí)施例主要以Shared-Disk架構(gòu)以及Shared-Nothing架構(gòu)的集群數(shù)據(jù)庫(kù)系統(tǒng)為例闡述了實(shí)施方案,前述方案還可以適用于利用WAL技術(shù)實(shí)現(xiàn)的在線(xiàn)分布式數(shù)據(jù)處理系統(tǒng)或集群,如分布式存儲(chǔ)系統(tǒng)、分布式KEY/VALUE數(shù)據(jù)庫(kù)系統(tǒng)、分布式列式數(shù)據(jù)庫(kù)、分布式圖數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)備份系統(tǒng)等,本方案詳述的實(shí)施例不應(yīng)理解為對(duì)本方案實(shí)施方式的限制。
[0144]圖12是本發(fā)明實(shí)施例提供的節(jié)點(diǎn)交換機(jī)的結(jié)構(gòu)組成示意圖,圖1所示的方法可通過(guò)節(jié)點(diǎn)交換機(jī)實(shí)現(xiàn),本實(shí)施例中節(jié)點(diǎn)交換機(jī)可包括:處理器121、存儲(chǔ)器122、接收器123、發(fā)送器124,其中:
[0145]處理器121,用于在事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū);還用于將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),還用于基于磁盤(pán)中的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0146]發(fā)送器124,與處理器121相連接,用于將生成的事務(wù)日志發(fā)送至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)進(jìn)行備份。
[0147]存儲(chǔ)器122,用于在處理器121處理過(guò)程中儲(chǔ)存緩存文件。
[0148]進(jìn)一步可選的,本發(fā)明實(shí)施例中的移動(dòng)終端還可以包括通信接口 125,用于與外部設(shè)備通信。其中,本實(shí)施例中的移動(dòng)終端可以包括總線(xiàn)126。處理器121、存儲(chǔ)器122、接收器123以及發(fā)送器124可通過(guò)總線(xiàn)連接并通信。處理器121可以是中央處理器(centralprocessing unit, CPU)、專(zhuān)用集成電路(application-specific integrated circuit,ASIC)等,存儲(chǔ)器122可以包括:隨機(jī)存取存儲(chǔ)器(random access memory, RAM),只讀存儲(chǔ)器(read-only memory, ROM)等具有存儲(chǔ)功能的實(shí)體。
[0149]圖13是本發(fā)明實(shí)施例提供的節(jié)點(diǎn)交換機(jī)的結(jié)構(gòu)組成示意圖,圖2所示的方法可通過(guò)節(jié)點(diǎn)交換機(jī)實(shí)現(xiàn),本實(shí)施例中節(jié)點(diǎn)交換機(jī)可包括:處理器131、存儲(chǔ)器132、接收器133、發(fā)送器134以及通信接口 135,其中:
[0150]處理器131,用于在事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū);還用于將本節(jié)點(diǎn)緩存區(qū)中保存的事務(wù)日志或備份節(jié)點(diǎn)的緩存區(qū)中備份的事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件;本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),還用于基于磁盤(pán)中的事務(wù)日志文件恢復(fù)本節(jié)點(diǎn)丟失的數(shù)據(jù)。
[0151]接收器133,與處理器131相連接,用于從其他節(jié)點(diǎn)交換機(jī)接收存儲(chǔ)區(qū)其他節(jié)點(diǎn)交換機(jī)配置磁盤(pán)中的本節(jié)點(diǎn)事務(wù)日志文件。
[0152]發(fā)送器134,與處理器131相連接,用于將生成的事務(wù)日志發(fā)送至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)進(jìn)行備份。
[0153]存儲(chǔ)器132,用于在處理器131處理過(guò)程中儲(chǔ)存緩存文件。
[0154]進(jìn)一步可選的,本發(fā)明實(shí)施例中的移動(dòng)終端還可以包括通信接口 135,用于與外部設(shè)備通信。其中,本實(shí)施例中的移動(dòng)終端可以包括總線(xiàn)136。處理器131、存儲(chǔ)器132、接收器133以及發(fā)送器134可通過(guò)總線(xiàn)連接并通信。處理器131可以是中央處理器(centralprocessing unit, CPU)、專(zhuān)用集成電路(application-specific integrated circuit,ASIC)等,存儲(chǔ)器132可以包括:隨機(jī)存取存儲(chǔ)器(random access memory, RAM),只讀存儲(chǔ)器(read-only memory, ROM)等具有存儲(chǔ)功能的實(shí)體。
[0155]通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以用硬件實(shí)現(xiàn),或固件實(shí)現(xiàn),或它們的組合方式來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將上述功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)能夠存取的任何可用介質(zhì)。以此為例但不限于:計(jì)算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其他光盤(pán)存儲(chǔ)、磁盤(pán)存儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備、或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì)。此外。任何連接可以適當(dāng)?shù)某蔀橛?jì)算機(jī)可讀介質(zhì)。例如,如果軟件是使用同軸電纜、光纖光纜、雙絞線(xiàn)、數(shù)字用戶(hù)線(xiàn)(DSL)或者諸如紅外線(xiàn)、無(wú)線(xiàn)電和微波之類(lèi)的無(wú)線(xiàn)技術(shù)從網(wǎng)站、服務(wù)器或者其他遠(yuǎn)程源傳輸?shù)?,那么同軸電纜、光纖光纜、雙絞線(xiàn)、DSL或者諸如紅外線(xiàn)、無(wú)線(xiàn)和微波之類(lèi)的無(wú)線(xiàn)技術(shù)包括在所屬介質(zhì)的定影中。如本發(fā)明所使用的,盤(pán)(Disk)和碟(disc)包括壓縮光碟(⑶)、激光碟、光碟、數(shù)字通用光碟(DVD)、軟盤(pán)和藍(lán)光光碟,其中盤(pán)通常磁性的復(fù)制數(shù)據(jù),而碟則用激光來(lái)光學(xué)的復(fù)制數(shù)據(jù)。上面的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的保護(hù)范圍之內(nèi)。
[0156]以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種恢復(fù)數(shù)據(jù)的方法,其特征在于,所述方法包括: 事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū); 將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件,所述磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù); 所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至所述本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū)之前,還包括: 設(shè)置所述本節(jié)點(diǎn)的安全等級(jí)以及與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目; 從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將所述選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份所述事務(wù)日志的緩存區(qū)。
3.如權(quán)利要求2所述的方法,其特征在于,從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì) 應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn)包括: 從所述本節(jié)點(diǎn)以外的與所述本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目; 或者,從所述本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。
4.如權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括: 所述本節(jié)點(diǎn)定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志; 若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則所述本節(jié)點(diǎn)將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件; 若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則所述本節(jié)點(diǎn)不將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
5.如權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括: 所述備份節(jié)點(diǎn)定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志; 若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則所述備份節(jié)點(diǎn)將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件; 若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則所述備份節(jié)點(diǎn)不將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
6.如權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述磁盤(pán)包括僅支持所述本節(jié)點(diǎn)訪(fǎng)問(wèn)的本節(jié)點(diǎn)磁盤(pán),以及僅支持備份節(jié)點(diǎn)訪(fǎng)問(wèn)的備份節(jié)點(diǎn)磁盤(pán),將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件包括: 所述本節(jié)點(diǎn)將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù); 并且, 所述備份節(jié)點(diǎn)將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù)。
7.如權(quán)利要求6所述的方法,其特征在于,所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中所述事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)包括: 讀取所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件; 讀取所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件; 從讀取到的各個(gè)所述事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件; 使用所述信息最完整的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
8.一種數(shù)據(jù)恢復(fù)系統(tǒng),其特征在于,包括: 保存與備份模塊,用于事務(wù)提交后,將生成的事務(wù)日志保存至本節(jié)點(diǎn)緩存區(qū),同時(shí)將所述事務(wù)日志備份至本節(jié)點(diǎn)以外的至少一個(gè)備份節(jié)點(diǎn)的緩存區(qū); 寫(xiě)入模塊,用于將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志或所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入磁盤(pán)中的事務(wù)日志文件,所述磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù); 恢復(fù)模塊,用于所述本節(jié)點(diǎn)發(fā)生數(shù)據(jù)丟失事件時(shí),基于所述磁盤(pán)中的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,還包括: 設(shè)置模塊,用于設(shè)置所述本節(jié)點(diǎn)的安全等級(jí)以及與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目; 選擇模塊,用于從所述本節(jié)點(diǎn)以外的節(jié)點(diǎn)中為所述本節(jié)點(diǎn)選擇出與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目的節(jié)點(diǎn)作為備份節(jié)點(diǎn),并將所述選擇出的備份節(jié)點(diǎn)的緩存區(qū)作為用于備份所述事務(wù)日志的緩存區(qū)。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述選擇模塊, 還用于從所述本節(jié)點(diǎn)以外的與所述本節(jié)點(diǎn)相鄰的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目; 或者, 還用于從所述本節(jié)點(diǎn)以外的包含空余緩沖區(qū)的節(jié)點(diǎn)中選擇出備份節(jié)點(diǎn),選擇出的所述備份節(jié)點(diǎn)的數(shù)目等同于與所述安全等級(jí)相對(duì)應(yīng)的備份節(jié)點(diǎn)數(shù)目。
11.如權(quán)利要求8-10任一項(xiàng)所述的系統(tǒng),其特征在于,所述寫(xiě)入模塊包括: 第一判斷單元,用于定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志;若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則生成第一寫(xiě)入消息并發(fā)送至第一寫(xiě)入單元;若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志,則生成第一不寫(xiě)入消息并發(fā)送至所述第一寫(xiě)入單元; 第一寫(xiě)入單元,用于接收到所述第一寫(xiě)入消息后,將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;用于接收到所述第一不寫(xiě)入消息后,不將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
12.如權(quán)利要求8-11任一項(xiàng)所述的系統(tǒng),其特征在于,所述寫(xiě)入模塊還包括: 第二判斷單元,用于定時(shí)判斷所述磁盤(pán)中的事務(wù)日志文件是否包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志;若判斷出所述磁盤(pán)中的事務(wù)日志文件不包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則生成第二寫(xiě)入消息并發(fā)送至第二寫(xiě)入單元;若判斷出所述磁盤(pán)中的事務(wù)日志文件包含所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志,則生成第二不寫(xiě)入消息并發(fā)送至所述第二寫(xiě)入單元; 第二寫(xiě)入單元,用于接收到所述第二寫(xiě)入消息后,將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件;用于接收到所述第二不寫(xiě)入消息后,不將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述磁盤(pán)中的事務(wù)日志文件。
13.如權(quán)利要求8-10任一項(xiàng)所述的系統(tǒng),其特征在于,所述磁盤(pán)包括僅支持所述本節(jié)點(diǎn)訪(fǎng)問(wèn)的本節(jié)點(diǎn)磁盤(pán), 以及僅支持備份節(jié)點(diǎn)訪(fǎng)問(wèn)的備份節(jié)點(diǎn)磁盤(pán),所述寫(xiě)入模塊包括: 本節(jié)點(diǎn)寫(xiě)入單元,用于將所述本節(jié)點(diǎn)緩存區(qū)中保存的所述事務(wù)日志寫(xiě)入所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù); 備份節(jié)點(diǎn)寫(xiě)入單元,用于將所述備份節(jié)點(diǎn)的緩存區(qū)中備份的所述事務(wù)日志寫(xiě)入所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件,所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件用于恢復(fù)所述本節(jié)點(diǎn)的數(shù)據(jù)。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述恢復(fù)模塊包括: 讀取單元,用于讀取所述本節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件;還用于讀取所述備份節(jié)點(diǎn)磁盤(pán)中的事務(wù)日志文件; 選擇單元,用于從所述讀取模塊讀取到的各個(gè)所述事務(wù)日志文件中選擇出信息最完整的事務(wù)日志文件; 恢復(fù)單元,用于使用所述信息最完整的事務(wù)日志文件恢復(fù)所述本節(jié)點(diǎn)丟失的數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK103942252SQ201410099107
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2014年3月17日 優(yōu)先權(quán)日:2014年3月17日
【發(fā)明者】文繼軍, 聶愿愿, 徐文韜 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1