專利名稱:一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法及設(shè)備。
背景技術(shù):
在數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例都有重做日志(Redo日志),Redo日志的作用是 用于恢復(fù)數(shù)據(jù)庫(kù)中已提交的事務(wù),從而保證在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)時(shí),恢復(fù)用戶已提交的事務(wù), 使數(shù)據(jù)庫(kù)達(dá)到與在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)前一致的狀態(tài)。在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)后,系統(tǒng)重啟時(shí),數(shù)據(jù) 庫(kù)系統(tǒng)會(huì)恢復(fù)指定區(qū)間的所有事務(wù);其中,上述指定區(qū)間是指從參考點(diǎn)到待恢復(fù)點(diǎn)之間的 區(qū)間,上述參考點(diǎn)可以包括用戶預(yù)先設(shè)置的檢查點(diǎn)、備份點(diǎn)或者歸檔點(diǎn),上述待恢復(fù)點(diǎn)可以 是數(shù)據(jù)庫(kù)系統(tǒng)發(fā)生宕機(jī)的時(shí)間點(diǎn)。
目前的數(shù)據(jù)庫(kù)系統(tǒng)主要是通過數(shù)據(jù)庫(kù)實(shí)例包含的Redo日志恢復(fù)上述參考點(diǎn)到恢 復(fù)點(diǎn)之間的所有提交的事務(wù)。恢復(fù)過程如下
第一數(shù)據(jù)庫(kù)實(shí)例打開數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)實(shí)例的Redo日志中上述指定區(qū)間的 第一條日志所記錄的事務(wù);上述第一數(shù)據(jù)庫(kù)實(shí)例為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)數(shù)據(jù)庫(kù)實(shí)例;
第一數(shù)據(jù)庫(kù)實(shí)例依據(jù)日志標(biāo)識(shí)符從小到大的順序恢復(fù)所述打開的日志所記錄的 事務(wù);
第一數(shù)據(jù)庫(kù)實(shí)例打開數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)實(shí)例的Redo日志中上述指定區(qū)間的 第二條日志,再依據(jù)日志標(biāo)識(shí)符從小到大的順序恢復(fù)所述打開的日志所記錄的事務(wù);再根 據(jù)上述恢復(fù)規(guī)則恢復(fù)每個(gè)數(shù)據(jù)庫(kù)實(shí)例的Redo日志的事務(wù)。
上述技術(shù)中,整個(gè)恢復(fù)過程全由一個(gè)數(shù)據(jù)庫(kù)實(shí)例完成,而在實(shí)際中數(shù)據(jù)庫(kù)系統(tǒng)在 上述指定區(qū)間中需要恢復(fù)的事務(wù)很多,這樣由一個(gè)數(shù)據(jù)庫(kù)實(shí)例來完成,恢復(fù)時(shí)間過長(zhǎng),且在 恢復(fù)過程中數(shù)據(jù)庫(kù)系統(tǒng)會(huì)處于不可使用的狀態(tài),這樣無疑降低了數(shù)據(jù)庫(kù)系統(tǒng)的可用性。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法及設(shè)備,可以在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)或 基于時(shí)間點(diǎn)的恢復(fù)時(shí),提高日志恢復(fù)的效率,從而提高數(shù)據(jù)庫(kù)系統(tǒng)的可用性。
本發(fā)明第一方面提供一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法,包括
第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù) 先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū) 設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志 指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志#為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每 個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);
所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的 第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì) 應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè) 數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述 第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);其中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn) 標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述第一節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日 志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有 數(shù)據(jù)庫(kù)實(shí)例;
所述第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分 區(qū)所記錄的事務(wù)。
在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的 第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū),包括
所述第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各 個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);或者所述第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各 個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根據(jù)所述路徑信息讀 取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地 址信息;
所述第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所 述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)
結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí) 例中的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)包括
所述第一節(jié)點(diǎn)接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù) 實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;
所述第一節(jié)點(diǎn)根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上, 分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);
所述第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所 述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
結(jié)合上述任一實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)將所述第一 節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè) 日志分區(qū),包括
所述第一節(jié)點(diǎn)計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希 值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志 所記錄的事務(wù)的數(shù)據(jù)頁(yè);
所述第一節(jié)點(diǎn)將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集合;
所述第一節(jié)點(diǎn)將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè) 日志分區(qū)。
結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述第一 節(jié)點(diǎn)計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值之前,所述方法還包括
所述第一節(jié)點(diǎn)基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空 間的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù)頁(yè)的 頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于根據(jù)計(jì)算得到的所述數(shù)據(jù) 頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,在 第五種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)按照按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分 區(qū)設(shè)置分區(qū)標(biāo)識(shí)之后,所述方法還包括
所述第一節(jié)點(diǎn)將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它日志分區(qū)的內(nèi)容按照所述節(jié)點(diǎn)標(biāo)識(shí) 與分區(qū)標(biāo)識(shí)的映射關(guān)系發(fā)送至所述其它數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn),所述其它分區(qū)是指所述第 一數(shù)據(jù)庫(kù)實(shí)例中除第一日志分區(qū)之外的其它分區(qū)。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式或 第三種可能實(shí)現(xiàn)的方式,在第六種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn) 行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū) 包括
所述第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù) 相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);
其中,所述指定區(qū)間包括
位置區(qū)間或時(shí)間區(qū)間。
結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,在 第七種可能的實(shí)現(xiàn)方式中,所述方法還包括
所述第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所 述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以 及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非 數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
本發(fā)明第二方面提供的一種節(jié)點(diǎn)設(shè)備,所述節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié) 點(diǎn),所述節(jié)點(diǎn)設(shè)備包括劃分單元、獲取單元和第一恢復(fù)單元,其中
所述劃分單元,用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日 志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所 述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,N為所 述節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含的數(shù)據(jù)庫(kù)實(shí)例的個(gè)數(shù),每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)所 述節(jié)點(diǎn)設(shè)備上,且每個(gè)節(jié)點(diǎn)設(shè)備設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);
所述獲取單元,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí) 例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè) 備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述 每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定 的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與 所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的 節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述節(jié)點(diǎn)設(shè)備節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo) 識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí) 例之外的所有數(shù)據(jù)庫(kù)實(shí)例;
所述第一恢復(fù)單元,用于恢復(fù)所述獲取單元獲取第一日志分區(qū)所記錄的事務(wù)以及 各個(gè)第二日志分區(qū)所記錄的事務(wù)。
在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取單元具體用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述第一 節(jié)點(diǎn)讀取所述第一數(shù)據(jù)庫(kù)實(shí)例的第一日志分區(qū)的數(shù)據(jù)相關(guān)日志;或者接收所述其它各個(gè)數(shù) 據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根 據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述路徑信息為存儲(chǔ)第二 日志分區(qū)的存儲(chǔ)地址信息;
根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分 區(qū)中,讀取與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
結(jié)合第二方面,在第二種可能的實(shí)現(xiàn)方式中,所述獲取單元包括
接收單元,用于接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù) 實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;
第一讀取單元,用于根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié) 點(diǎn)上,分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);
第二讀取單元,用于根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得 到的所述N個(gè)日志分區(qū)中,讀取與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志 分區(qū)。
結(jié)合第二方面的上述任一實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述劃分單元 包括
第一計(jì)算單元,用于計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所 述哈希值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相 關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè);
劃分子單元,用于將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集 合;
分區(qū)單元,用于將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N 個(gè)日志分區(qū)。
結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述設(shè)備 還包括
第二計(jì)算單元,用于基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在 表空間的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù) 頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于所述第一計(jì)算單元根 據(jù)計(jì)算得到的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,第 五種可能的實(shí)現(xiàn)方式中,所述設(shè)備還包括
發(fā)送單元,用于將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它日志分區(qū)的內(nèi)容按照所述節(jié)點(diǎn)標(biāo)識(shí) 與分區(qū)標(biāo)識(shí)的映射關(guān)系發(fā)送至所述其它數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn),所述其它分區(qū)是指所述第 一數(shù)據(jù)庫(kù)實(shí)例中除第一日志分區(qū)之外的其它分區(qū)。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,第 六種可能的實(shí)現(xiàn)方式中,所述劃分單元具體用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例 包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);
其中,所述指定區(qū)間包括
位置區(qū)間或時(shí)間區(qū)間。
結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式或第二種可能的實(shí)現(xiàn)方式,第 七種可能的實(shí)現(xiàn)方式中,所述設(shè)備還包括
第二恢復(fù)單元,用于恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù), 以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的 事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于 記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
本發(fā)明第三方面提供的一數(shù)據(jù)庫(kù)系統(tǒng),中心協(xié)調(diào)節(jié)點(diǎn)和多個(gè)處理節(jié)點(diǎn),所述多個(gè) 處理節(jié)點(diǎn)上運(yùn)行有N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)處理節(jié)點(diǎn)上,每個(gè)所述 處理節(jié)點(diǎn)均設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),其中
所述處理節(jié)點(diǎn),用于將所述自身運(yùn)行的數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù) 先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū) 設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志 指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系, 從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述處理節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的 第一日志分區(qū),并將所述N個(gè)日志分區(qū)中除所述第一日志分區(qū)之外的其它日志分區(qū)發(fā)送給 所述中心協(xié)調(diào)節(jié)點(diǎn)。
所述中心協(xié)調(diào)節(jié)點(diǎn),用于接收各個(gè)處理節(jié)點(diǎn)發(fā)送的日志分區(qū),并根據(jù)預(yù)先設(shè)定的 節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,將接收到的每個(gè)日志分區(qū)發(fā)送給與該日志分區(qū)的分區(qū)標(biāo) 識(shí)對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)所對(duì)應(yīng)的處理節(jié)點(diǎn);
所述處理節(jié)點(diǎn)還用于,恢復(fù)讀取的所述第一日志分區(qū)所記錄的事務(wù),以及接收到 的所述中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的各個(gè)日志分區(qū)所記錄的事務(wù)。
上述技術(shù)方案中,第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù) 相關(guān)日志劃分為N個(gè)分區(qū),且為每個(gè)分區(qū)設(shè)置有分區(qū)號(hào);第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例 的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分 的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每 個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包 含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則 設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);第一節(jié)點(diǎn)恢復(fù)所述 獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。這樣可以實(shí)現(xiàn)由 數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)恢復(fù)與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志所記錄的 事務(wù),相比現(xiàn)有技術(shù)由一個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的設(shè)備恢復(fù)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中日志所記錄的事 務(wù),本發(fā)明可以在數(shù)據(jù)庫(kù)系統(tǒng)巖機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提聞日志恢復(fù)的效率,從而提聞 數(shù)據(jù)庫(kù)系統(tǒng)的可用性。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
〔0063〕圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意〔0064〕圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意〔0065〕圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意〔0066〕圖4是本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0067〕圖5是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0068〕圖6是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0069〕圖7是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0070〕圖8是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0071〕圖9是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0072〕圖10是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意〔0073〕圖11是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)示意圖。
圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖; 2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖 3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖 4是本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖;5是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖 6是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖 7是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖 8是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖 9是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖 10是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖;11是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明技術(shù)方案的典型應(yīng)用場(chǎng)景為集群數(shù)據(jù)庫(kù)系統(tǒng),尤其是面向0LTP(0n-Line Transaction Processing,聯(lián)機(jī)事務(wù)處理)應(yīng)用等需要產(chǎn)生大量REDO日志的共享磁盤集群數(shù)據(jù)庫(kù)系統(tǒng),在集群數(shù)據(jù)庫(kù)系統(tǒng)中,多個(gè)數(shù)據(jù)庫(kù)實(shí)例(instance)運(yùn)行在不同的服務(wù)器(或節(jié)點(diǎn))上,所有節(jié)點(diǎn)訪問共享磁盤的一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)instance之間通過高速互聯(lián)網(wǎng)絡(luò)設(shè)備交換信息。
圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖,本發(fā)明實(shí)施例描述的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上述數(shù)據(jù)庫(kù)系統(tǒng)中不同的節(jié)點(diǎn)上運(yùn)行有不同的數(shù)據(jù)庫(kù)實(shí)例,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),N為大于O的整數(shù),如圖1所示,該方法包括
101、第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);
其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。
需要說明的是,每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù)是指,在后繼恢復(fù)過程中,節(jié)點(diǎn)可以使用一個(gè)日志分區(qū)的日志恢復(fù)該日志分區(qū)的日志所記錄的事務(wù),且在恢復(fù)過程中不會(huì)影響其它日志分區(qū)。還可以是每個(gè)日志分區(qū)的日志所記錄的事務(wù)都可以獨(dú)立重做。
可選的,在本發(fā)明實(shí)施例描述的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,這樣該系統(tǒng)中包含N個(gè)節(jié)點(diǎn),其中上述第一節(jié)點(diǎn)可以是這N個(gè)節(jié)點(diǎn)中的任一個(gè),即該系統(tǒng)中每個(gè)節(jié)點(diǎn)都會(huì)將該節(jié)點(diǎn)內(nèi)的數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志,按照上述劃分規(guī)則劃分為N個(gè)日志分區(qū),并按 照上述方式為每個(gè)日志分區(qū)設(shè)置有分區(qū)標(biāo)識(shí)。這樣該系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例都被劃分為 N個(gè)日志分區(qū),且每個(gè)數(shù)據(jù)庫(kù)實(shí)例都是按照統(tǒng)一劃分規(guī)則劃分的,以及按照統(tǒng)一方式設(shè)置每 個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí)。這樣就可以將該系統(tǒng)的N個(gè)數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志,看作N 個(gè)集合,每個(gè)集合包含分區(qū)標(biāo)識(shí)相同的N個(gè)日志分區(qū)。
可選的,在本發(fā)明實(shí)施例中對(duì)數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志的劃分,可以是將存儲(chǔ) 數(shù)據(jù)相關(guān)日志的存儲(chǔ)地址進(jìn)行劃分,即第一節(jié)點(diǎn)將用于存儲(chǔ)第一數(shù)據(jù)庫(kù)實(shí)例的指定區(qū)間內(nèi) 數(shù)據(jù)相關(guān)日志的存儲(chǔ)地址劃分為N個(gè)分區(qū)。
可選的,上述數(shù)據(jù)相關(guān)日志為用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志,可以是指用于 記錄對(duì)數(shù)據(jù)頁(yè)的內(nèi)容進(jìn)行改動(dòng)的事務(wù)的日志,即數(shù)據(jù)相關(guān)日志所記錄的事務(wù)都是對(duì)數(shù)據(jù)頁(yè) 的內(nèi)容進(jìn)行改動(dòng)的事務(wù)。
102、第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的 第二日志分區(qū);
其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的 日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù) 庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī) 則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一 節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);其中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí) 與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述第一節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分 區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù) 庫(kù)實(shí)例;
可選的,在本發(fā)明實(shí)施例中,節(jié)點(diǎn)標(biāo)識(shí)和分區(qū)標(biāo)識(shí)可以系統(tǒng)自動(dòng)配置的,也可以用 戶設(shè)置的,系統(tǒng)中包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,即可以包含N個(gè)節(jié)點(diǎn),那么就可以設(shè)置這N個(gè)節(jié)點(diǎn) 的節(jié)點(diǎn)標(biāo)識(shí)為AB⑶...N,或者1234. . . N,同樣,上述分區(qū)的標(biāo)識(shí)也可以是系統(tǒng)自動(dòng)設(shè)置的, 或者用戶設(shè)置的,設(shè)置上述一個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的N個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí)為AB⑶...N, 或者1234. . . N,其它N-1數(shù)據(jù)庫(kù)實(shí)例N個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí)也相應(yīng)設(shè)置為AB⑶...N,或 者1234. ..N。這樣上述映射關(guān)系是可以可以A與A對(duì)應(yīng),B與B對(duì)應(yīng)等,或者,I與I對(duì)應(yīng), 2與2對(duì)應(yīng)等。例如,第一節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)為1,這樣步驟102可以是獲取第一日志分區(qū)和 第二日志分區(qū)的分區(qū)標(biāo)識(shí)就可以為I。當(dāng)然在本發(fā)明實(shí)施例中節(jié)點(diǎn)標(biāo)識(shí)和分區(qū)標(biāo)識(shí)包含但 不限于上述列出的標(biāo)識(shí),以及映射關(guān)系包含不限于上述列出的映射關(guān)系,只要系統(tǒng)中每個(gè) 節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)唯一不重復(fù),且每個(gè)數(shù)據(jù)庫(kù)實(shí)例的所有日志分區(qū)的分區(qū)標(biāo)識(shí)也不重復(fù),而 且只要預(yù)先設(shè)置的所述映射關(guān)系,能夠保證系統(tǒng)中的所有節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)與每個(gè)數(shù)據(jù)庫(kù)實(shí) 例中的所有分區(qū)標(biāo)識(shí)一一映射或一一對(duì)應(yīng)即可實(shí)現(xiàn)本發(fā)明的目的。
103、第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分 區(qū)所記錄的事務(wù)。
可選的,上述獲取為數(shù)據(jù)相關(guān)日志,這樣步驟103恢復(fù)的事務(wù)就是數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)。
作為一種可選的實(shí)施方式,實(shí)現(xiàn)本發(fā)明的設(shè)備,即PN可以是任一數(shù)據(jù)庫(kù)系統(tǒng)中的 節(jié)點(diǎn)設(shè)備,例如,計(jì)算機(jī)、網(wǎng)絡(luò)中節(jié)點(diǎn)設(shè)備,如基站、控制器設(shè)備等。
上述技術(shù)方案中,第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù) 相關(guān)日志劃分為N個(gè)分區(qū),且為每個(gè)分區(qū)設(shè)置有分區(qū)號(hào);第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例 的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分 的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每 個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包 含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則 設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);第一節(jié)點(diǎn)恢復(fù)所述 獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。這樣可以實(shí)現(xiàn)由 數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)恢復(fù)與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志所記錄的 事務(wù),相比現(xiàn)有技術(shù)由一個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的設(shè)備恢復(fù)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中日志所記錄的事 務(wù),本發(fā)明可以在數(shù)據(jù)庫(kù)系統(tǒng)巖機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提聞日志恢復(fù)的效率,從而提聞 數(shù)據(jù)庫(kù)系統(tǒng)的可用性。
圖2是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖,本發(fā)明實(shí)施 例描述的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上述 數(shù)據(jù)庫(kù)系統(tǒng)中不同的節(jié)點(diǎn)上運(yùn)行有不同的數(shù)據(jù)庫(kù)實(shí)例,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),N為大 于O的整數(shù),如圖2所示,該方法包括
201、第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按 照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志 分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);
其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù) 系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且 每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。
作為一種可選的實(shí)施方式,步驟201中的第一節(jié)點(diǎn)將第一數(shù)據(jù)庫(kù)實(shí)例包含的的數(shù) 據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)分區(qū)可以包括
第一節(jié)點(diǎn)計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希值指所述 數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志所記錄的 事務(wù)的數(shù)據(jù)頁(yè);
第一節(jié)點(diǎn)將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集合;
第一節(jié)點(diǎn)將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè)日志 分區(qū)。
可選的,該實(shí)施方式中,上述計(jì)算哈值可以是計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包括的指定區(qū) 間內(nèi)的每個(gè)數(shù)據(jù)相關(guān)日志的哈希值,即計(jì)算每個(gè)數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈 希值,當(dāng)上述指定區(qū)間內(nèi)包含100個(gè)數(shù)據(jù)相關(guān)日志時(shí),就可以計(jì)算出這100個(gè)數(shù)據(jù)相關(guān)日志 的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,即計(jì)算出100個(gè)哈希值,當(dāng)然這100個(gè)哈希值中可以有一 些是相同或相似的。例如有2個(gè)數(shù)據(jù)相關(guān)日志所記錄的事務(wù)都是對(duì)同一個(gè)數(shù)據(jù)頁(yè)進(jìn)行改動(dòng) 時(shí),那么這2個(gè)數(shù)據(jù)相關(guān)日記記錄的哈希值就可以是相同的。
可選的,該實(shí)施方式中,上述預(yù)先設(shè)定的劃分規(guī)則可以是將哈希值相近的哈希值 劃分為一個(gè)集合,或者將哈希值中某一特征相似的哈希劃分為一個(gè)集合;例如,計(jì)算得100 個(gè)哈希值,就可以在這100個(gè)哈希值劃分為10區(qū)間,每個(gè)區(qū)間對(duì)應(yīng)不同的哈希值,將在同個(gè)區(qū)間的哈希值作為一個(gè)集合,這樣就得到10個(gè)集合,當(dāng)然每個(gè)集合包含的哈希值的數(shù)量可 能是不同的;又如,計(jì)算得100個(gè)哈希值,就可以是將哈希值的每個(gè)數(shù)值或最后一個(gè)數(shù)值相 同或相似的哈希值作為一個(gè)集合。
可選的,上述將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)分區(qū),即將哈希值為不 同集合的數(shù)據(jù)相關(guān)日志作為不同的日志分區(qū)。而每個(gè)集合中的哈希值是基于數(shù)據(jù)頁(yè)的數(shù)據(jù) 頁(yè)標(biāo)識(shí)計(jì)算得到,這樣就可以保證每個(gè)日志分區(qū)的數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè)都 是相似或相同,或者是某個(gè)數(shù)據(jù)頁(yè)區(qū)間的。
可選的,該實(shí)施方式中,其它數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn),也可以按照上述計(jì)算哈希值 的方式將這其它數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志劃分為N個(gè)分區(qū),且都按照上述標(biāo)識(shí)規(guī)則為每 個(gè)日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí)。這樣上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的分區(qū)標(biāo)識(shí)相同的日志分區(qū)的日 志的哈希值在同一個(gè)集合內(nèi),而日志的哈希值都是數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的 哈希值,從而可以保證上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的分區(qū)標(biāo)識(shí)相同的日志分區(qū)的日志所記錄 的事務(wù)的數(shù)據(jù)頁(yè)都是相似或相同,或者在同一數(shù)據(jù)頁(yè)區(qū)間區(qū)間內(nèi)。在后續(xù)恢復(fù)過程中,每 個(gè)節(jié)點(diǎn)獲取到上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志,即每個(gè)節(jié)點(diǎn)獲 取的日志分區(qū)的日志所記錄的事務(wù)的數(shù)據(jù)頁(yè)都是相似或相同,或者在同一數(shù)據(jù)頁(yè)區(qū)間區(qū)間 內(nèi)。例如,第一節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)為1,第一節(jié)點(diǎn)就獲取到上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的分區(qū)標(biāo) 識(shí)為I的日志分區(qū)的日志,而所有分區(qū)標(biāo)識(shí)為I的日志分區(qū)的日志所記錄的事務(wù)的數(shù)據(jù)頁(yè) 都是相似或相同,或者在同一數(shù)據(jù)頁(yè)區(qū)間內(nèi),即第一節(jié)點(diǎn)獲取上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的 所有的記錄的事務(wù)的數(shù)據(jù)頁(yè)與第一數(shù)據(jù)庫(kù)實(shí)例的分區(qū)標(biāo)識(shí)為I分區(qū)內(nèi)所記錄的事務(wù)的數(shù) 據(jù)頁(yè)相似或相同,或者在同一區(qū)間內(nèi)的日志,并恢復(fù)獲取的日志所記錄的事務(wù)。這樣就可以 保證數(shù)據(jù)庫(kù)系統(tǒng)中的N個(gè)節(jié)點(diǎn)獲取的日志分區(qū)中日志所記錄的事務(wù)的數(shù)據(jù)頁(yè)都是不同的, 從而可以避免多個(gè)節(jié)點(diǎn)恢復(fù)過程對(duì)同一數(shù)據(jù)頁(yè)進(jìn)行變動(dòng)。
可選的,該實(shí)施方式中,第一節(jié)點(diǎn)計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈 希值之前,所述方法還可以包括
第一節(jié)點(diǎn)基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空間 (TableSpace)的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所 述數(shù)據(jù)頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于根據(jù)計(jì)算得到 的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。
這里計(jì)算可以是指分別計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的每個(gè)數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo) 識(shí)如,上述TableSpace的標(biāo)識(shí)為TableSpace,數(shù)據(jù)庫(kù)的內(nèi)部ID為Databace,上述表的內(nèi)部 ID為Relation,上述頁(yè)號(hào)為BlockNo,上述哈希值可以是對(duì)TableSpace X 1000+Databace X 100+RelationX 10+BlockNo進(jìn)行哈希運(yùn)算得到的哈希值。
202、第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的 第二日志分區(qū);
其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的 日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù) 庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī) 則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一 節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);其中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述第一節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分 區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù) 庫(kù)實(shí)例。
作為一種可選的實(shí)施方式,步驟202可以包括
第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù) 據(jù)庫(kù)實(shí)例的第二日志分區(qū);
第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N 個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū);
可選的,在該實(shí)施方式中,上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)預(yù)先可以獲取到節(jié) 點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,例如,該映射關(guān)系可以是上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在各 個(gè)節(jié)點(diǎn)和第一節(jié)點(diǎn)預(yù)先協(xié)商好的。當(dāng)上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在各個(gè)節(jié)點(diǎn)將上述其它 數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志劃分為N個(gè)日志分區(qū),以及設(shè)置每個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí) 后,就可以根據(jù)上述映射關(guān)系將劃分后的日志分區(qū)的日志發(fā)送至對(duì)應(yīng)的節(jié)點(diǎn),如將第二日 志分區(qū)發(fā)送至第一節(jié)點(diǎn)。
作為一種可選的實(shí)施方式,步驟202還可以包括
第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù) 據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的 第二日志分區(qū);所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;
第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N 個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
可選的,該實(shí)施方式中,上述其它數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)發(fā)送的是第二日志分區(qū)的 數(shù)據(jù)相關(guān)日志的路徑信息,第一節(jié)點(diǎn)再根據(jù)這些路徑信息讀取相應(yīng)的日志。
203、第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分 區(qū)所記錄的事務(wù)。
可選的,上述獲取為數(shù)據(jù)相關(guān)日志,這樣步驟203恢復(fù)的事務(wù)就是數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)。
作為一種可選的實(shí)施方式,所述方法可以包括
204、第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所 述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以 及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非 數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
可選的,步驟203中第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各 個(gè)第二日志分區(qū)所記錄的事務(wù),加上步驟204第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非 數(shù)據(jù)日志所記錄的事務(wù),從而第一節(jié)點(diǎn)就可以恢復(fù)出數(shù)據(jù)庫(kù)系統(tǒng)的完整的數(shù)據(jù)頁(yè)。
作為一種可選的實(shí)施方式,步驟204還可以包括
當(dāng)所述其它個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)未恢復(fù)所述其它數(shù)據(jù)庫(kù)實(shí)例中包括的所述指 定區(qū)間內(nèi)的非數(shù)據(jù)日志所記錄的事務(wù)時(shí),第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù) 日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第 一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
可選的,在本發(fā)明實(shí)施例描述的數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志 可以是相同的,這樣在整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中只需要一個(gè)節(jié)點(diǎn)恢復(fù)非數(shù)據(jù)日志所記錄的事務(wù)就 行。當(dāng)然在某一節(jié)點(diǎn)恢復(fù)非數(shù)據(jù)日志所記錄的事務(wù)時(shí),該節(jié)點(diǎn)還可以向其它節(jié)點(diǎn)發(fā)送用于 指示非數(shù)據(jù)日記記錄所記錄的事務(wù)已恢復(fù)的消息。例如,在本實(shí)施例中,步驟204之后,第 一節(jié)點(diǎn)向其它其它數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)發(fā)送用于指示非數(shù)據(jù)日記記錄所記錄的事務(wù)已 恢復(fù)的消息。這樣其它節(jié)點(diǎn)接收到該消息后就會(huì)進(jìn)行對(duì)非數(shù)據(jù)日志進(jìn)行恢復(fù)。
作為一種可選的實(shí)施方式,該方法還可以包括
205、第一節(jié)點(diǎn)將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它日志分區(qū)的內(nèi)容按照所述映射關(guān)系 發(fā)送至所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn),所述其它分區(qū)是指所述第一數(shù)據(jù)庫(kù)實(shí)例 中從劃分得到的所述N個(gè)日志分區(qū)中除第一日志分區(qū)之外的其它分區(qū)。
而第一節(jié)點(diǎn)為數(shù)據(jù)庫(kù)系統(tǒng)中任一節(jié)點(diǎn),也就是說該數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)節(jié)點(diǎn)都會(huì)執(zhí) 行步驟205,這樣就可以使每個(gè)節(jié)點(diǎn)獲取上述映射關(guān)系指示的與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。
可選的,在該實(shí)施方式中,步驟205還可以包括
第一節(jié)點(diǎn)將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄按照所述映射關(guān)系發(fā)送 至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn);或者
第一節(jié)點(diǎn)將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄的路徑信息按照所述映 射關(guān)系發(fā)送至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)。這樣各個(gè)節(jié)點(diǎn)就可以根據(jù)發(fā)送單 元55發(fā)送的路徑信息,從上述節(jié)點(diǎn)設(shè)備中讀取第一數(shù)據(jù)庫(kù)實(shí)例中與各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的日志 分區(qū)。
這樣數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)都可以獲取與該節(jié)點(diǎn)對(duì)應(yīng)的分區(qū) 的日志。每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)再執(zhí)行如步驟203所示恢復(fù)事務(wù)。這樣整個(gè)數(shù)據(jù)庫(kù)系 統(tǒng)內(nèi)的日志所記錄的事務(wù)都被恢復(fù)。
作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中第一節(jié)點(diǎn)可以通過互聯(lián)網(wǎng)與上述其它 數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)進(jìn)行信息數(shù)據(jù)的交換。
需要說明的是,步驟203、步驟204和步驟205都不存在時(shí)間先后順序。
作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中在對(duì)數(shù)據(jù)相關(guān)日志進(jìn)行劃分區(qū)時(shí)都可 以是以整條數(shù)據(jù)相關(guān)日志為單位進(jìn)行劃分的,即在劃分過程中不會(huì)將一整條數(shù)據(jù)相關(guān)日志 拆分開,即每個(gè)分區(qū)包含的都是整數(shù)條數(shù)據(jù)相關(guān)日志,即每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù) 所記錄的事務(wù)。
作為一種可選的實(shí)施方式,步驟201中第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù) 據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),可以包括
第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān) 日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);
其中,上述指定區(qū)間可以包括
位置區(qū)間和時(shí)間區(qū)間;
可選的,該實(shí)施方式中,位置區(qū)間可以是預(yù)先設(shè)置的檢查點(diǎn)位置與數(shù)據(jù)庫(kù)系統(tǒng)發(fā) 生宕機(jī)時(shí)數(shù)據(jù)庫(kù)實(shí)例生成最新的日志的位置之間的位置區(qū)間,該位置可以存儲(chǔ)日志的存儲(chǔ) 位置;上述檢查點(diǎn)位置可以用戶預(yù)先設(shè)置的,或者第一節(jié)點(diǎn)自動(dòng)設(shè)置的。該實(shí)施方式中,不同節(jié)點(diǎn)的位置區(qū)間可以是不同的,但生成這位置區(qū)間的規(guī)則是相同的。
可選的,該實(shí)施方式中,時(shí)間區(qū)間可以是歸檔時(shí)間點(diǎn)或備份時(shí)間點(diǎn)與數(shù)據(jù)庫(kù)系統(tǒng) 發(fā)生宕機(jī)的時(shí)間點(diǎn)之間的時(shí)間區(qū)間,這樣本發(fā)明就只需要對(duì)該時(shí)間區(qū)間的日志進(jìn)行恢復(fù)就 行。該實(shí)施方式中,不同節(jié)點(diǎn)的時(shí)間區(qū)間可以是不同的。
作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中的數(shù)據(jù)相關(guān)日記和非數(shù)據(jù)日志都可以 是Redo日志。本發(fā)明實(shí)施例中恢復(fù)日記所記錄的事務(wù)可以是重做日志所記錄的事務(wù)。
上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)對(duì)分區(qū)進(jìn)行了詳細(xì)說明,以實(shí)現(xiàn)更多實(shí)施 方式可以提供數(shù)據(jù)庫(kù)系統(tǒng)的可用性。
圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法的流程示意圖,本發(fā)明實(shí) 施例描述的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上 述數(shù)據(jù)庫(kù)系統(tǒng)中不同的節(jié)點(diǎn)上運(yùn)行有不同的數(shù)據(jù)庫(kù)實(shí)例,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),該 數(shù)據(jù)庫(kù)系統(tǒng)還包括中心協(xié)調(diào)節(jié)點(diǎn),該中心協(xié)調(diào)節(jié)點(diǎn)與上述包含數(shù)據(jù)庫(kù)實(shí)例的節(jié)點(diǎn)連接,N為 大于O的整數(shù),如圖3所示,該方法包括
301、第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按 照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志 分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);
其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù) 系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且 每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。
作為一種可選的實(shí)施方式中,上述劃分規(guī)則和上述標(biāo)識(shí)規(guī)則都可以中心協(xié)調(diào)節(jié)點(diǎn) 設(shè)置的,并發(fā)送給每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)。上述劃分規(guī)則和上述標(biāo)識(shí)規(guī)則還可以是各 個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)之間預(yù)先協(xié)商的。
302、第一節(jié)點(diǎn)接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù) 實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息。
其中,所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè) 數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃 分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述 第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。
作為一種可選的實(shí)施方式,中心協(xié)調(diào)節(jié)點(diǎn)預(yù)先獲取上述劃分規(guī)則,以及上述分區(qū) 規(guī)則,且還會(huì)預(yù)先獲取每個(gè)數(shù)據(jù)庫(kù)實(shí)例中每個(gè)日志分區(qū)的路徑信息,可以是每個(gè)數(shù)據(jù)庫(kù)實(shí) 例所在的節(jié)點(diǎn)預(yù)先將數(shù)據(jù)庫(kù)實(shí)例的路徑信息發(fā)送至中心協(xié)調(diào)節(jié)點(diǎn),這樣中心協(xié)調(diào)節(jié)點(diǎn)就可 以通過上述劃分規(guī)則得知每個(gè)日志分區(qū)的路徑信息;還可以在各節(jié)點(diǎn)在劃分完分區(qū)后,將 每個(gè)日志分區(qū)的路徑信息發(fā)送至中心協(xié)調(diào)節(jié)點(diǎn)。
303、第一節(jié)點(diǎn)根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上, 分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)。
304、第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所 述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
可選的,在步驟304之后,第一節(jié)點(diǎn)獲取到上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例的與第一節(jié)點(diǎn)對(duì)應(yīng) 的日志分區(qū)的數(shù)據(jù)相關(guān)日志后,第一節(jié)點(diǎn)還可以向中心調(diào)協(xié)節(jié)點(diǎn)發(fā)送獲取完成的消息。在第一節(jié)點(diǎn)獲取到上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的所有與第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的數(shù)據(jù)相關(guān)日志時(shí),上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)也可以獲取上述N個(gè)數(shù)據(jù)庫(kù)實(shí)例包含上述映射關(guān)系所指示的對(duì)應(yīng)的數(shù)據(jù)相關(guān)日志。在中心協(xié)調(diào)得知所有節(jié)點(diǎn)都獲取完后,還可以是給每個(gè)節(jié)點(diǎn)發(fā)送用于指示恢復(fù)獲取的日志所記錄的事務(wù)的指示消息。各節(jié)點(diǎn)接收到該指示消息后開始恢復(fù)獲取的日志所記錄的事務(wù)。305、第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。作為一種可選的實(shí)施方法,所述方法還可以包括306、第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志??蛇x的,在步驟306之后,該方法還可以包括第一節(jié)點(diǎn)向中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送用于指示恢復(fù)完畢的消息。這樣中心協(xié)調(diào)節(jié)點(diǎn)接收到該消息,以及接收到上述其它數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)發(fā)送的該消息時(shí),就確認(rèn)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)完畢,數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)入可用狀態(tài)。需要說明的是,在該數(shù)據(jù)庫(kù)系統(tǒng)中,即包含的中心協(xié)調(diào)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)同樣可以使用第一和第二個(gè)實(shí)施例來實(shí)現(xiàn)日志所記錄的事務(wù)進(jìn)行恢復(fù)。作為一種可選的實(shí)施方式,步驟301中第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),可以包括第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);其中,所述指定區(qū)間可以包括位置區(qū)間或時(shí)間區(qū)間??蛇x的,該實(shí)施方式,在步驟301之前,該方法還包括第一節(jié)點(diǎn)接收中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的指定區(qū)間的信息。可選的,該指定區(qū)間可以是位置區(qū)間和時(shí)間區(qū)間。這樣步驟301就將該區(qū)間內(nèi)的數(shù)據(jù)相關(guān)日志劃分為N個(gè)區(qū)域,以及執(zhí)行后續(xù)步驟。上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)上,對(duì)包含中心協(xié)調(diào)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行日志所記錄的事務(wù)進(jìn)行恢復(fù)。同樣,可以在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提高日志恢復(fù)的效率,從而提高數(shù)據(jù)庫(kù)系統(tǒng)的可用性。下面為本發(fā)明裝置實(shí)施例,本發(fā)明裝置實(shí)施例用于執(zhí)行本發(fā)明方法實(shí)施例一至三實(shí)現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明實(shí)施例一、實(shí)施例二和實(shí)施三。圖4是本發(fā)明實(shí)施例提供的一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,該節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié)點(diǎn),該系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,且該系統(tǒng)中每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),N為大于O的整數(shù),如圖4所示,該節(jié)點(diǎn)設(shè)備包括劃分單元41、獲取單元42和第一恢復(fù)單元43,其中劃分單元41,用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。其中,N為所述節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含的數(shù)據(jù)庫(kù)實(shí)例的個(gè)數(shù),每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)所述節(jié)點(diǎn)設(shè)備上,且每個(gè)節(jié)點(diǎn)設(shè)備設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。需要說明的是,每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù)是指,在后繼恢復(fù)過程中,節(jié)點(diǎn)可以使用一個(gè)日志分區(qū)的日志恢復(fù)該日志分區(qū)的日志所記錄的事務(wù),且在恢復(fù)過程中不會(huì)影響其它日志分區(qū)。還可以是每個(gè)日志分區(qū)的日志所記錄的事務(wù)都可以獨(dú)立重做??蛇x的,在本發(fā)明實(shí)施例描述的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,這樣該系統(tǒng)中包含N個(gè)節(jié)點(diǎn),其中上述第一節(jié)點(diǎn)可以是這N個(gè)節(jié)點(diǎn)中的任一個(gè),即該系統(tǒng)中每個(gè)節(jié)點(diǎn)都會(huì)將該節(jié)點(diǎn)內(nèi)的數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志,按照上述劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照上述方式為每個(gè)日志分區(qū)設(shè)置有分區(qū)標(biāo)識(shí)。這樣該系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例都被劃分為N個(gè)日志分區(qū),且每個(gè)數(shù)據(jù)庫(kù)實(shí)例都是按照統(tǒng)一劃分規(guī)則劃分的,以及按照統(tǒng)一方式設(shè)置每個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí)。這樣就可以將該系統(tǒng)的N個(gè)數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志,看作N個(gè)集合,每個(gè)集合包含分區(qū)標(biāo)識(shí)相同的N個(gè)日志分區(qū)??蛇x的,在本發(fā)明實(shí)施例中對(duì)數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)相關(guān)日志的劃分,可以是將存儲(chǔ)數(shù)據(jù)相關(guān)日志的存儲(chǔ)地址進(jìn)行劃分,即節(jié)點(diǎn)將用于存儲(chǔ)第一數(shù)據(jù)庫(kù)實(shí)例的指定區(qū)間內(nèi)數(shù)據(jù)相關(guān)日志的存儲(chǔ)地址劃分為N個(gè)分區(qū)??蛇x的,上述數(shù)據(jù)相關(guān)日志為用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志,可以是指用于記錄對(duì)數(shù)據(jù)頁(yè)的內(nèi)容進(jìn)行改動(dòng)的事務(wù)的日志錄,即數(shù)據(jù)相關(guān)日志所記錄的事務(wù)都是對(duì)數(shù)據(jù)頁(yè)的內(nèi)容進(jìn)行改動(dòng)的事務(wù)。獲取單元42,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例。第一恢復(fù)單元43,用于恢復(fù)獲取單元42獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù);可選的,上述獲取為數(shù)據(jù)相關(guān)日志,這樣第一恢復(fù)單元43恢復(fù)的事務(wù)就是數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)。作為一種可選的實(shí)施方式,上述節(jié)點(diǎn)設(shè)備可以是任一數(shù)據(jù)庫(kù)系統(tǒng)中的節(jié)點(diǎn)設(shè)備,例如,計(jì)算機(jī)、網(wǎng)絡(luò)中節(jié)點(diǎn)設(shè)備,如基站、控制器設(shè)備等。上述技術(shù)方案中,節(jié)點(diǎn)設(shè)備將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志劃分為N個(gè)分區(qū),且為每個(gè)分區(qū)設(shè)置有分區(qū)號(hào);節(jié)點(diǎn)設(shè)備獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);節(jié)點(diǎn)設(shè)備恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。這樣可以實(shí)現(xiàn)由數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)恢復(fù)與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志所記錄的事務(wù),相比現(xiàn)有技術(shù)由一個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的設(shè)備恢復(fù)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中日志所記錄的事務(wù),本發(fā)明可以在數(shù)據(jù)庫(kù)系統(tǒng)巖機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提聞日志恢復(fù)的效率,從而提聞數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖5是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,該節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié)點(diǎn),該系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,且該系統(tǒng)中每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),N為大于O的整數(shù),如圖5所示,該節(jié)點(diǎn)設(shè)備包括劃分單元51、獲取單元52和第一恢復(fù)單元53,其中劃分單元51,用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。作為一種可選的實(shí)施方式,如圖6所示,劃分單元51可以包括第一計(jì)算單元511,用于計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè);劃分子單元512,用于將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)
集合;分區(qū)單元513,用于將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè)日志分區(qū)。可選的,上述將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)分區(qū),即將哈希值為不同集合的數(shù)據(jù)相關(guān)日志作為不同的日志分區(qū)。而每個(gè)集合中的哈希值是基于數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)計(jì)算得到,這樣就可以保證每個(gè)日志分區(qū)的數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè)都是相似或相同,或者是某個(gè)數(shù)據(jù)頁(yè)區(qū)間的。可選的,該實(shí)施方式中,所述設(shè)備還可以包括第二計(jì)算單元(附圖中未畫出),用于基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空間(TableSpace)的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù)頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于根據(jù)計(jì)算得到的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值??蛇x的,這里計(jì)算可以是指分別計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的每個(gè)數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)。例如,上述TableSpace的標(biāo)識(shí)為TableSpace,數(shù)據(jù)庫(kù)的內(nèi)部ID為Databace,上述表的內(nèi)部ID為Relation,上述頁(yè)號(hào)為BlockNo,上述哈希值可以是對(duì)TableSpaceX 1000+DatabaceX 100+RelationX 10+BlockNo進(jìn)行哈希運(yùn)算得到的哈希值。獲取單元52,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例。需要說明的是,上述節(jié)點(diǎn)設(shè)備就是本發(fā)明實(shí)施例提供數(shù)據(jù)庫(kù)系統(tǒng)中的節(jié)點(diǎn)設(shè)備。作為一種可選的實(shí)施方式,獲取單元52具體用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);以及根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)??蛇x的,在該實(shí)施方式中,上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)預(yù)先可以獲取到節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,例如,該映射關(guān)系可以是上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)和上述各個(gè)節(jié)點(diǎn)設(shè)備預(yù)先協(xié)商好的。當(dāng)上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將上述其它數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志劃分為N個(gè)日志分區(qū),以及設(shè)置每個(gè)日志分區(qū)的分區(qū)標(biāo)識(shí)后,就可以根據(jù)上述映射關(guān)系將劃分后的日志分區(qū)的日志發(fā)送至對(duì)應(yīng)的節(jié)點(diǎn),如將第二日志分區(qū)發(fā)送至上述節(jié)點(diǎn)設(shè)備。作為一種可選的實(shí)施方式,獲取單元52具體用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;以及還用于根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。可選的,該實(shí)施方式中,上述其它數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)發(fā)送的是第二日志分區(qū)的數(shù)據(jù)相關(guān)日志的路徑信息,節(jié)點(diǎn)設(shè)備再根據(jù)這些路徑信息讀取相應(yīng)的日志。第一恢復(fù)單元53,用于恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。作為一種可選的實(shí)施方式,所述設(shè)備還可以包括第二恢復(fù)單元54,用于恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述節(jié)點(diǎn)設(shè)備根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志??蛇x的,第一恢復(fù)單元53中第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),加上第二恢復(fù)單元54第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),從而第一節(jié)點(diǎn)就可以恢復(fù)出數(shù)據(jù)庫(kù)系統(tǒng)的完整的數(shù)據(jù)頁(yè)。作為一種可選的實(shí)施方式,第二恢復(fù)單元54還可以用于當(dāng)所述其它個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)未恢復(fù)所述其它數(shù)據(jù)庫(kù)實(shí)例中包括的所述指定區(qū)間內(nèi)的非數(shù)據(jù)日志所記錄的事務(wù)時(shí),恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。作為一種可選的實(shí)施方式,如圖5所示,上述節(jié)點(diǎn)設(shè)備還可以包括發(fā)送單元55,用于將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它日志分區(qū)的內(nèi)容按照所述映射關(guān)系發(fā)送至所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn),所述其它分區(qū)是指所述第一數(shù)據(jù)庫(kù)實(shí)例中從劃分得到的所述N個(gè)日志分區(qū)中除第一日志分區(qū)之外的其它分區(qū)。而上述節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中任一節(jié)點(diǎn),也就是說該數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)節(jié)點(diǎn)都會(huì)執(zhí)行發(fā)送單元55,這樣就可以使每個(gè)節(jié)點(diǎn)獲取上述映射關(guān)系指示的與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。可選的,在該實(shí)施方式中,發(fā)送單元55還可以用于將將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄按照所述映射關(guān)系發(fā)送至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn);或者發(fā)送單元55還可以用于將將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄的路徑信息按照所述映射關(guān)系發(fā)送至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)。這樣各個(gè)節(jié)點(diǎn)就可以根據(jù)發(fā)送單元55發(fā)送的路徑信息,從上述節(jié)點(diǎn)設(shè)備中讀取第一數(shù)據(jù)庫(kù)實(shí)例中與各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。這樣數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)都可以獲取與該節(jié)點(diǎn)對(duì)應(yīng)的分區(qū)的數(shù)據(jù)相關(guān)日志。每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)再進(jìn)行事務(wù)恢復(fù)。這樣整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)在上述指定區(qū)間內(nèi)的日志所記錄的事務(wù)都被恢復(fù)。作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中在對(duì)數(shù)據(jù)相關(guān)日志進(jìn)行劃分區(qū)時(shí)都可以是以整條數(shù)據(jù)相關(guān)日志為單位進(jìn)行劃分的,即在劃分過程中不會(huì)將一整條數(shù)據(jù)相關(guān)日志拆分開,即每個(gè)分區(qū)包含的都是整數(shù)條數(shù)據(jù)相關(guān)日志,即每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù)。作為一種可選的實(shí)施方式,劃分單元51具體用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);其中,上述指定區(qū)間可以包括位置區(qū)間和時(shí)間區(qū)間
可選的,該實(shí)施方式中,位置區(qū)間可以是預(yù)先設(shè)置的檢查點(diǎn)位置與數(shù)據(jù)庫(kù)系統(tǒng)發(fā)生宕機(jī)時(shí)數(shù)據(jù)庫(kù)實(shí)例生成最新的日志的位置之間的位置區(qū)間,該位置可以存儲(chǔ)日志的存儲(chǔ)位置;上述檢查點(diǎn)位置可以用戶預(yù)先設(shè)置的,或者第一節(jié)點(diǎn)自動(dòng)設(shè)置的。該實(shí)施方式中,不同節(jié)點(diǎn)的位置區(qū)間可以是不同的,但生成這位置區(qū)間的規(guī)則是相同的。作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中的數(shù)據(jù)相關(guān)日記和非數(shù)據(jù)日志都可以是Redo日志。本發(fā)明實(shí)施例中恢復(fù)日記所記錄的事務(wù)可以是重做日志所記錄的事務(wù)。上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)對(duì)分區(qū)進(jìn)行了詳細(xì)說明,以實(shí)現(xiàn)更多實(shí)施方式可以提供數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖7是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上述系統(tǒng)中不同數(shù)據(jù)庫(kù)實(shí)例在不同的節(jié)點(diǎn)上,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),該數(shù)據(jù)庫(kù)系統(tǒng)還包括中心協(xié)調(diào)節(jié)點(diǎn),該中心協(xié)調(diào)節(jié)點(diǎn)與上述包含數(shù)據(jù)庫(kù)實(shí)例的節(jié)點(diǎn)連接,N為大于O的整數(shù),如圖7所示,該節(jié)點(diǎn)設(shè)備包括劃分單元61、獲取單元62和第一‘陜復(fù)單元63,獲取單元62包括接收單元621、第一讀取單元622和第二讀取單元623,其中劃分單元61,用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;N為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí)。作為一種可選的實(shí)施方式中,上述劃分規(guī)則和上述標(biāo)識(shí)規(guī)則都可以中心協(xié)調(diào)節(jié)點(diǎn)設(shè)置的,并發(fā)送給每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)。上述劃分規(guī)則和上述標(biāo)識(shí)規(guī)則還可以是各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)之間預(yù)先協(xié)商的。接收單元621,用于接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信
肩、O其中,所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。作為一種可選的實(shí)施方式,中心協(xié)調(diào)節(jié)點(diǎn)預(yù)先獲取上述劃分規(guī)則,以及上述分區(qū)規(guī)則,且還會(huì)預(yù)先獲取每個(gè)數(shù)據(jù)庫(kù)實(shí)例中每個(gè)日志分區(qū)的路徑信息,可以是每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)預(yù)先將數(shù)據(jù)庫(kù)實(shí)例的路徑信息發(fā)送至中心協(xié)調(diào)節(jié)點(diǎn),這樣中心協(xié)調(diào)節(jié)點(diǎn)就可以通過上述劃分規(guī)則得知每個(gè)日志分區(qū)的路徑信息;還可以在各節(jié)點(diǎn)在劃分完分區(qū)后,將每個(gè)日志分區(qū)的路徑信息發(fā)送至中心協(xié)調(diào)節(jié)點(diǎn)。第一讀取單元622,用于根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上,分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)。第二讀取單元623,用于根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。第一恢復(fù)單元63,用于恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù);作為一種可選的實(shí)施方式,所述節(jié)點(diǎn)設(shè)備還可以包括第二恢復(fù)單元64,用于恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。需要說明的是,在該數(shù)據(jù)庫(kù)系統(tǒng)中,即包含的中心協(xié)調(diào)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)同樣可以使用第一和第二個(gè)實(shí)施例來實(shí)現(xiàn)日志所記錄的事務(wù)進(jìn)行恢復(fù)。作為一種可選的實(shí)施方式,劃分單元61具體用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);其中,所述指定區(qū)間可以包括位置區(qū)間或時(shí)間區(qū)間??蛇x的,上述節(jié)點(diǎn)設(shè)備還可以包括信息接收單元(附圖中未畫出),用于接收中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的指定區(qū)間的信息??蛇x的,該指定區(qū)間可以是位置區(qū)間和時(shí)間區(qū)間。這樣劃分單元61就將該區(qū)間內(nèi)的數(shù)據(jù)相關(guān)日志劃分為N個(gè)區(qū)域,以及執(zhí)行后續(xù)步驟。需要說明的是,本發(fā)明實(shí)施例提供的裝置實(shí)施例中各個(gè)功能單元的具體工作步驟,可以參照前述方法實(shí)施例的相應(yīng)描述,此處不再贅述。上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)上,對(duì)包含中心協(xié)調(diào)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行日志所記錄的事務(wù)進(jìn)行恢復(fù)。同樣,可以在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提高日志恢復(fù)的效率,從而提高數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖8是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上述系統(tǒng)中不同數(shù)據(jù)庫(kù)實(shí)例在不同的節(jié)點(diǎn)上,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),如圖8所示,該節(jié)點(diǎn)設(shè)備包括存儲(chǔ)器71、處理器72和接收器73,其中存儲(chǔ)器71用于存儲(chǔ)一組程序代碼,處理器72用于調(diào)整存儲(chǔ)器71所存儲(chǔ)的程序代碼用于執(zhí)行如下操作將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志#為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);接收器73,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例;處理器72還用于執(zhí)行如下操作恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。作為一種可選的實(shí)施方式,上述節(jié)點(diǎn)設(shè)備可以是任一數(shù)據(jù)庫(kù)系統(tǒng)中的節(jié)點(diǎn)設(shè)備,例如,計(jì)算機(jī)、網(wǎng)絡(luò)中節(jié)點(diǎn)設(shè)備,如基站、控制器設(shè)備等。上述技術(shù)方案中,節(jié)點(diǎn)設(shè)備將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志劃分為N個(gè)分區(qū),且為每個(gè)分區(qū)設(shè)置有分區(qū)號(hào);節(jié)點(diǎn)設(shè)備獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);節(jié)點(diǎn)設(shè)備恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。這樣可以實(shí)現(xiàn)由數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)恢復(fù)與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志所記錄的事務(wù),相比現(xiàn)有技術(shù)由一個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的設(shè)備恢復(fù)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中日志所記錄的事務(wù),本發(fā)明可以在數(shù)據(jù)庫(kù)系統(tǒng)巖機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提聞日志恢復(fù)的效率,從而提聞數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖9是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,該節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié)點(diǎn),該系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,且該系統(tǒng)中每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),N為大于O的整數(shù),如圖9所示,該節(jié)點(diǎn)設(shè)備包括存儲(chǔ)器81、處理器82和接收器83,其中存儲(chǔ)器81用于存儲(chǔ)一組程序代碼,處理器82用于調(diào)整存儲(chǔ)器81所存儲(chǔ)的程序代碼用于執(zhí)行如下操作計(jì)算運(yùn)行的所述節(jié)點(diǎn)設(shè)備上的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè);將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集合;將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè)日志分區(qū);接收器83,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例;處理器82還用于執(zhí)行如下操作恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù);恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。作為一種可選的實(shí)施方式,處理器82還可以用于執(zhí)行如下操作基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空間(TableSpace)的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù)頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于根據(jù)計(jì)算得到的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。這里計(jì)算可以是指分別計(jì)算每個(gè)數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)如,上述TableSpace的標(biāo)識(shí)為TableSpace,數(shù)據(jù)庫(kù)的內(nèi)部ID為Databace,上述表的內(nèi)部ID為Relation,上述頁(yè)號(hào)為BlockNo,上述哈希值可以是對(duì) TableSpaceX 1000+DatabaceX 100+RelationX 10+BlockNo 進(jìn)行哈希運(yùn)算得到的哈希值。作為一種可行的實(shí)施方式,接收器83還可以用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);可選的,處理器82進(jìn)一步還可以用于執(zhí)行如下操作根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。作為一種可行的實(shí)施方式,接收器83還可以用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;可行的,處理器82進(jìn)一步還可以用于執(zhí)行如下操作根據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū),以及根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)??蛇x的,該實(shí)施方式中,上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在各個(gè)節(jié)點(diǎn)發(fā)送的是與上述節(jié)點(diǎn)設(shè)備相匹配的分區(qū)的數(shù)據(jù)相關(guān)日志的路徑信息,處理器82再根據(jù)這些路徑信息讀取相應(yīng)的日志。作為一種可選的實(shí)施方式,上述節(jié)點(diǎn)設(shè)備還可以包括發(fā)射器84,用于將將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它日志分區(qū)的內(nèi)容按照所述映射關(guān)系發(fā)送至所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn),所述其它分區(qū)是指所述第一數(shù)據(jù)庫(kù)實(shí)例中從劃分得到的所述N個(gè)日志分區(qū)中除第一日志分區(qū)之外的其它分區(qū)。而第一節(jié)點(diǎn)為數(shù)據(jù)庫(kù)系統(tǒng)中任一節(jié)點(diǎn),也就是說該數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)節(jié)點(diǎn)都會(huì)執(zhí)行上述步驟,這樣就可以使每個(gè)節(jié)點(diǎn)獲取上述映射關(guān)系指示的與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)??蛇x的,在該實(shí)施方式中,發(fā)射器84還可以用于將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄按照所述映射關(guān)系發(fā)送至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn);或者發(fā)射器84還可以用于將第一數(shù)據(jù)庫(kù)實(shí)例包含的其它分區(qū)的日記記錄的路徑信息按照所述映射關(guān)系發(fā)送至上述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)這樣數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)都可以獲取與該節(jié)點(diǎn)相匹配的分區(qū)的數(shù)據(jù)相關(guān)日志。每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)再進(jìn)行事務(wù)恢復(fù)。這樣整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)在上述指定區(qū)間內(nèi)的日志所記錄的事務(wù)都被恢復(fù)。作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中在對(duì)數(shù)據(jù)相關(guān)日志進(jìn)行劃分區(qū)時(shí)都可以是以整條數(shù)據(jù)相關(guān)日志為單位進(jìn)行劃分的,即在劃分過程中不會(huì)將一整條數(shù)據(jù)相關(guān)日志拆分開,即每個(gè)分區(qū)包含的都是整數(shù)條數(shù)據(jù)相關(guān)日志,即每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù)。處理器82執(zhí)行的計(jì)算運(yùn)行的所述節(jié)點(diǎn)設(shè)備上的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值的操作可以包括計(jì)算運(yùn)行的所述節(jié)點(diǎn)設(shè)備上的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志的哈希值其中,上述指定區(qū)間可以包括位置區(qū)間和時(shí)間區(qū)間作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例中的數(shù)據(jù)相關(guān)日記和非數(shù)據(jù)日志都可以是Redo日志。本發(fā)明實(shí)施例中恢復(fù)日記所記錄的事務(wù)可以是重做日志所記錄的事務(wù)。上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)對(duì)分區(qū)進(jìn)行了詳細(xì)說明,以實(shí)現(xiàn)更多實(shí)施方式可以提供數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖10是本發(fā)明實(shí)施例提供的另一種節(jié)點(diǎn)設(shè)備的結(jié)構(gòu)示意圖,節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)節(jié)點(diǎn)上,即上述系統(tǒng)中不同數(shù)據(jù)庫(kù)實(shí)例在不同的節(jié)點(diǎn)上,且每個(gè)節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),該數(shù)據(jù)庫(kù)系統(tǒng)還包括中心協(xié)調(diào)節(jié)點(diǎn),該中心協(xié)調(diào)節(jié)點(diǎn)與上述包含數(shù)據(jù)庫(kù)實(shí)例的節(jié)點(diǎn)連接,N為大于O的整數(shù),如圖10所示,該節(jié)點(diǎn)設(shè)備包括存儲(chǔ)器91、處理器92和接收器93,其中存儲(chǔ)器91用于存儲(chǔ)一組程序代碼,處理器92用于調(diào)整存儲(chǔ)器91所存儲(chǔ)的程序代碼用于執(zhí)行如下操作將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志#為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);接收器93,用于接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;處理器92還用于執(zhí)行如下步驟根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上,分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū);
恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù);恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述節(jié)點(diǎn)設(shè)備根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。其中,所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)。作為一種可選的實(shí)施方式,處理器92執(zhí)行的將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū)的步驟可以包括將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū)。其中,所述指定區(qū)間可以包括位置區(qū)間或時(shí)間區(qū)間??蛇x的,該實(shí)施方式,接收器93還可以用于用于接收中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的指定區(qū)間的信息??蛇x的,該指定區(qū)間可以是位置區(qū)間和時(shí)間區(qū)間。這樣處理器92就將該區(qū)間內(nèi)的數(shù)據(jù)相關(guān)日志劃分為N個(gè)區(qū)域,以及執(zhí)行后續(xù)操作。上述技術(shù)方案中,在上面實(shí)施例的基礎(chǔ)上,對(duì)包含中心協(xié)調(diào)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行日志所記錄的事務(wù)進(jìn)行恢復(fù)。同樣,可以在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提高日志恢復(fù)的效率,從而提高數(shù)據(jù)庫(kù)系統(tǒng)的可用性。圖11是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)示意圖,該中心協(xié)調(diào)節(jié)點(diǎn)101和多個(gè)處理節(jié)點(diǎn)(如圖11中的102、103、104),中心協(xié)調(diào)節(jié)點(diǎn)101和各個(gè)處理節(jié)點(diǎn)之間通過總線或高速互聯(lián)網(wǎng)絡(luò)設(shè)備交換信息;所述多個(gè)處理節(jié)點(diǎn)上運(yùn)行有N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)處理節(jié)點(diǎn)上,每個(gè)所述處理節(jié)點(diǎn)均設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),其中每個(gè)處理節(jié)點(diǎn),用于將所述自身運(yùn)行的數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述處理節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū),并將所述N個(gè)日志分區(qū)中除所述第一日志分區(qū)之外的其它日志分區(qū)發(fā)送給所述中心協(xié)調(diào)節(jié)點(diǎn);中心協(xié)調(diào)節(jié)點(diǎn)101,用于接收各個(gè)處理節(jié)點(diǎn)發(fā)送的日志分區(qū),并根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,將接收到的每個(gè)日志分區(qū)發(fā)送給與該日志分區(qū)的分區(qū)標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)所對(duì)應(yīng)的處理節(jié)點(diǎn);處理節(jié)點(diǎn)還用于,恢復(fù)讀取的所述第一日志分區(qū)所記錄的事務(wù),以及接收到的所述中心協(xié)調(diào)節(jié)點(diǎn)101發(fā)送的各個(gè)日志分區(qū)所記錄的事務(wù)。需要說明的是,上述僅列出了一個(gè)處理節(jié)點(diǎn),而這個(gè)處理節(jié)點(diǎn)可以是數(shù)據(jù)庫(kù)系統(tǒng)中任意一個(gè)處理節(jié)點(diǎn),也就是說數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)處理節(jié)點(diǎn)都會(huì)都將該節(jié)點(diǎn)上運(yùn)行的數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照所述標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí);根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述處理節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū),并將所述N個(gè)日志分區(qū)中除所述第一日志分區(qū)之外的其它日志分區(qū)發(fā)送給所述中心協(xié)調(diào)節(jié)點(diǎn),以及恢復(fù)讀取的所述第一日志分區(qū)所記錄的事務(wù),以及接收到的所述中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的各個(gè)日志分區(qū)所記錄的事務(wù)。作為一種可選可選的實(shí)施方式,本實(shí)施例提供的系統(tǒng)為實(shí)現(xiàn)上面方法實(shí)施例的系統(tǒng)。作為一種可選可選的實(shí)施方式,本實(shí)施例的日志劃分方式可以參考前面方法實(shí)施例描述的劃分方法。作為一種可選可選的實(shí)施方式,本實(shí)施例的獲取日志分區(qū)的數(shù)據(jù)相關(guān)日志獲取的方式可以參考前面方法實(shí)施例描述的獲取方法。作為一種可選的實(shí)施方式工,上述第一節(jié)點(diǎn)還可以用于恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù);以使所述處理節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè)所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。上述技術(shù)方案中,第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志劃分為N個(gè)分區(qū),且為每個(gè)分區(qū)設(shè)置有分區(qū)號(hào),第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例中的第一日志分區(qū)和其它數(shù)據(jù)庫(kù)實(shí)例的第一日志分區(qū)的數(shù)據(jù)相關(guān)日志;其中,所述其它數(shù)據(jù)庫(kù)實(shí)例的第一日志分區(qū)是所述其它數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)按照所述預(yù)先設(shè)定的劃分規(guī)則劃分的,且按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)的分區(qū)中的第一日志分區(qū),第一節(jié)點(diǎn)恢復(fù)所述獲取的數(shù)據(jù)相關(guān)日志所記錄的事務(wù)。這樣可以實(shí)現(xiàn)由數(shù)據(jù)庫(kù)系統(tǒng)中每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的節(jié)點(diǎn)恢復(fù)與該節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)的日志所記錄的事務(wù),相比現(xiàn)有技術(shù)由一個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的設(shè)備恢復(fù)整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中日志所記錄的事務(wù),本發(fā)明可以在數(shù)據(jù)庫(kù)系統(tǒng)巖機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提聞日志恢復(fù)的效率,從而提聞數(shù)據(jù)庫(kù)系統(tǒng)的可用性。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存取存儲(chǔ)器(Random AccessMemory,簡(jiǎn)稱 RAM)等。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權(quán)利要求
1.一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法,其特征在于,包括第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志#為所述數(shù)據(jù)庫(kù)系統(tǒng)中包含的數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù),每個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在所述數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)節(jié)點(diǎn)上,且每個(gè)所述節(jié)點(diǎn)設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū);其中,與所述第一節(jié)點(diǎn)對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述第一節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例;所述第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū),包括所述第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);或者所述第一節(jié)點(diǎn)接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信所述第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N 個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
3.如權(quán)利要求1所述的方法,其特征在于,所述第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例中的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)包括所述第一節(jié)點(diǎn)接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;所述第一節(jié)點(diǎn)根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上,分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述第一節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N 個(gè)日志分區(qū)中,讀取與所述第一節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
4.如權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),包括所述第一節(jié)點(diǎn)計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè);所述第一節(jié)點(diǎn)將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集合;所述第一節(jié)點(diǎn)將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè)日志分區(qū)。
5.如權(quán)利要求4所述的方法,其特征在于,所述第一節(jié)點(diǎn)計(jì)算第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值之前,所述方法還包括所述第一節(jié)點(diǎn)基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空間的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù)頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于根據(jù)計(jì)算得到的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。
6.如權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū)包括所述第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);其中,所述指定區(qū)間包括位置區(qū)間或時(shí)間區(qū)間。
7.如權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述方法還包括所述第一節(jié)點(diǎn)恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述第一節(jié)點(diǎn)根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
8.一種節(jié)點(diǎn)設(shè)備,所述節(jié)點(diǎn)設(shè)備為數(shù)據(jù)庫(kù)系統(tǒng)中的一個(gè)節(jié)點(diǎn),其特征在于,所述節(jié)點(diǎn)設(shè)備包括劃分單元、獲取單元和第一恢復(fù)單元,其中所述劃分單元,用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志, 按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,N為所述節(jié)點(diǎn)設(shè)備所在的數(shù)據(jù)庫(kù)系統(tǒng)包含的數(shù)據(jù)庫(kù)實(shí)例的個(gè)數(shù),每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)所述節(jié)點(diǎn)設(shè)備上,且每個(gè)節(jié)點(diǎn)設(shè)備設(shè)置有節(jié)點(diǎn)標(biāo)識(shí);所述獲取單元,用于獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);其中,所述第一日志分區(qū)為劃分的所述N個(gè)日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū),所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)是所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例所在節(jié)點(diǎn)將所述每個(gè)數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照所述預(yù)先設(shè)定的劃分規(guī)則劃分,并按照所述預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則設(shè)置分區(qū)標(biāo)識(shí)后得到的日志分區(qū)中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū);其中,與所述節(jié)點(diǎn)設(shè)備對(duì)應(yīng)的日志分區(qū)具體為預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系所指示的與所述設(shè)備節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的日志分區(qū),所述其它數(shù)據(jù)庫(kù)實(shí)例為所述N個(gè)數(shù)據(jù)庫(kù)實(shí)例中除所述第一數(shù)據(jù)庫(kù)實(shí)例之外的所有數(shù)據(jù)庫(kù)實(shí)例;所述第一恢復(fù)單元,用于恢復(fù)所述獲取單元獲取第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。
9.如權(quán)利要求8所述的設(shè)備,其特征在于,所述獲取單元具體用于接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);或者接收所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,根據(jù)所述路徑信息讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
10.如權(quán)利要求8所述的設(shè)備,其特征在于,所述獲取單元包括接收單元,用于接收所述數(shù)據(jù)庫(kù)系統(tǒng)的中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū)的路徑信息,所述路徑信息為存儲(chǔ)第二日志分區(qū)的存儲(chǔ)地址信息;第一讀取單元,用于根據(jù)所述路徑信息從所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例所在的各個(gè)節(jié)點(diǎn)上,分別讀取所述其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);第二讀取單元,用于根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述節(jié)點(diǎn)設(shè)備的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū)。
11.如權(quán)利要求8-10中任一項(xiàng)所述的方法,其特征在于,所述劃分單元包括第一計(jì)算單元,用于計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值,所述哈希值指所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí)的哈希值,所述數(shù)據(jù)頁(yè)為所述數(shù)據(jù)相關(guān)日志所記錄的事務(wù)的數(shù)據(jù)頁(yè);劃分子單元,用于將計(jì)算得到的哈希值,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)集合;分區(qū)單元,用于將哈希值為同一集合的所有數(shù)據(jù)頁(yè)作為一個(gè)日志分區(qū),以得到N個(gè)日志分區(qū)。
12.如權(quán)利要求11所述的設(shè)備,其特征在于,所述設(shè)備還包括第二計(jì)算單元,用于基于所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)所在表空間的標(biāo)識(shí)、所述數(shù)據(jù)頁(yè)所在數(shù)據(jù)庫(kù)的內(nèi)部ID、所述數(shù)據(jù)頁(yè)所在表的內(nèi)部ID和所述數(shù)據(jù)頁(yè)的頁(yè)號(hào)計(jì)算得到所述數(shù)據(jù)相關(guān)日志的數(shù)據(jù)頁(yè)的數(shù)據(jù)頁(yè)標(biāo)識(shí),以便于所述第一計(jì)算單元根據(jù)計(jì)算得到的所述數(shù)據(jù)頁(yè)標(biāo)識(shí),計(jì)算所述第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志的哈希值。
13.如權(quán)利要求8-10中任一項(xiàng)所述的設(shè)備,其特征在于,所述劃分單元具體用于將所述節(jié)點(diǎn)設(shè)備上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的指定區(qū)間的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū);其中,所述指定區(qū)間包括位置區(qū)間或時(shí)間區(qū)間。
14.如權(quán)利要求8-10中任一項(xiàng)所述的設(shè)備,其特征在于,所述設(shè)備還包括第二恢復(fù)單元,用于恢復(fù)所述第一數(shù)據(jù)庫(kù)實(shí)例包含的非數(shù)據(jù)日志所記錄的事務(wù),以使所述節(jié)點(diǎn)設(shè)備根據(jù)所述非數(shù)據(jù)日志所記錄的事務(wù),恢復(fù)的所述第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù),恢復(fù)出完整的數(shù)據(jù)頁(yè);所述非數(shù)據(jù)日志指用于記錄非數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志。
15.一種數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,包括中心協(xié)調(diào)節(jié)點(diǎn)和多個(gè)處理節(jié)點(diǎn),所述多個(gè)處理節(jié)點(diǎn)上運(yùn)行有N個(gè)數(shù)據(jù)庫(kù)實(shí)例,每一個(gè)數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在一個(gè)處理節(jié)點(diǎn)上,每個(gè)所述處理節(jié)點(diǎn)均設(shè)置有節(jié)點(diǎn)標(biāo)識(shí),其中所述處理節(jié)點(diǎn),用于將所述自身運(yùn)行的數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí),且每個(gè)日志分區(qū)能夠?qū)崿F(xiàn)獨(dú)立恢復(fù)所記錄的事務(wù);其中,所述數(shù)據(jù)相關(guān)日志指用于記錄數(shù)據(jù)頁(yè)改動(dòng)的事務(wù)的日志;根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,從劃分得到的所述N個(gè)日志分區(qū)中,讀取與所述處理節(jié)點(diǎn)的標(biāo)識(shí)相對(duì)應(yīng)分區(qū)標(biāo)識(shí)所對(duì)應(yīng)的第一日志分區(qū),并將所述N個(gè)日志分區(qū)中除所述第一日志分區(qū)之外的其它日志分區(qū)發(fā)送給所述中心協(xié)調(diào)節(jié)點(diǎn);所述中心協(xié)調(diào)節(jié)點(diǎn),用于接收各個(gè)處理節(jié)點(diǎn)發(fā)送的日志分區(qū),并根據(jù)預(yù)先設(shè)定的節(jié)點(diǎn)標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,將接收到的每個(gè)日志分區(qū)發(fā)送給與該日志分區(qū)的分區(qū)標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)所對(duì)應(yīng)的處理節(jié)點(diǎn);所述處理節(jié)點(diǎn)還用于,恢復(fù)讀取的所述第一日志分區(qū)所記錄的事務(wù),以及接收到的所述中心協(xié)調(diào)節(jié)點(diǎn)發(fā)送的各個(gè)日志分區(qū)所記錄的 事務(wù)。
全文摘要
本發(fā)明實(shí)施例公開了一種數(shù)據(jù)庫(kù)系統(tǒng)恢復(fù)方法,包括第一節(jié)點(diǎn)將所述第一節(jié)點(diǎn)上運(yùn)行的第一數(shù)據(jù)庫(kù)實(shí)例包含的數(shù)據(jù)相關(guān)日志,按照預(yù)先設(shè)定的劃分規(guī)則劃分為N個(gè)日志分區(qū),并按照預(yù)先設(shè)定的標(biāo)識(shí)規(guī)則為每個(gè)所述日志分區(qū)設(shè)置分區(qū)標(biāo)識(shí);第一節(jié)點(diǎn)獲取所述第一數(shù)據(jù)實(shí)例的第一日志分區(qū)和其它各個(gè)數(shù)據(jù)庫(kù)實(shí)例的第二日志分區(qū);第一節(jié)點(diǎn)恢復(fù)所述獲取的第一日志分區(qū)所記錄的事務(wù)以及各個(gè)第二日志分區(qū)所記錄的事務(wù)。相應(yīng)地本發(fā)明實(shí)施例公開了一種節(jié)點(diǎn)設(shè)備。本發(fā)明實(shí)施例可以在數(shù)據(jù)庫(kù)系統(tǒng)宕機(jī)或基于時(shí)間點(diǎn)的恢復(fù)時(shí),提高日志恢復(fù)的效率,從而提高數(shù)據(jù)庫(kù)系統(tǒng)的可用性。
文檔編號(hào)G06F17/30GK103049355SQ20121057017
公開日2013年4月17日 申請(qǐng)日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者聶愿愿, 李健, 程廣衛(wèi) 申請(qǐng)人:華為技術(shù)有限公司