本發(fā)明涉及一種數(shù)據(jù)庫(kù)系統(tǒng),具體是一種數(shù)據(jù)庫(kù)同步的方法及系統(tǒng)。
背景技術(shù):
數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)通常包括如下部署模式:主備模式、雙主模式、跨地域主備容災(zāi)模式、異構(gòu)數(shù)據(jù)庫(kù)復(fù)制模式等。其中,雙主模式是指兩個(gè)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)都支持業(yè)務(wù)訪問(wèn),支持負(fù)載均衡,當(dāng)一個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),可以將業(yè)務(wù)切換到另一個(gè)節(jié)點(diǎn)。上述任何部署模式都需要復(fù)制源節(jié)點(diǎn)的更新事務(wù)到對(duì)端節(jié)點(diǎn),復(fù)制的方式通常有物理復(fù)制和邏輯復(fù)制,物理復(fù)制是將數(shù)據(jù)文件物理位置的修改復(fù)制到目標(biāo)節(jié)點(diǎn)同樣的位置,這種方式只適用于主備模式。邏輯復(fù)制是將源節(jié)點(diǎn)的修改操作記錄為日志信息,在目標(biāo)節(jié)點(diǎn)上以重放事務(wù)的方式完成數(shù)據(jù)同步復(fù)制。邏輯復(fù)制的處理流程比物理復(fù)制復(fù)雜的多,其處理性能與系統(tǒng)的可靠性緊密相關(guān)?,F(xiàn)有數(shù)據(jù)庫(kù)雙主模式中,源數(shù)據(jù)庫(kù)在修改事務(wù)時(shí)產(chǎn)生日志信息,接收端將日志信息還原成結(jié)構(gòu)化查詢語(yǔ)言(structuredquerylanguage,sql),對(duì)于每一條日志信息,均需要解析和編譯sql語(yǔ)句,并逐條執(zhí)行sql語(yǔ)句,從而完成事務(wù)同步。然而,這種方式使得數(shù)據(jù)庫(kù)同步效率低下。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種數(shù)據(jù)庫(kù)同步的方法及系統(tǒng),以解決上述背景技術(shù)中提出的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種數(shù)據(jù)庫(kù)同步的方法,包括如下步驟:接收源數(shù)據(jù)庫(kù)發(fā)送的日志信息,所述日志信息用于表示所述源數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改操作;獲取所述日志信息中所述數(shù)據(jù)修改操作的類型和參數(shù),并將獲取的所述數(shù)據(jù)修改操作的參數(shù)綁定到與所述數(shù)據(jù)修改操作的類型對(duì)應(yīng)的語(yǔ)句模板中,生成數(shù)據(jù)修改操作語(yǔ)句;運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改;由處理器監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;由處理器基于所監(jiān)視的屬性的集合選擇數(shù)據(jù)組用于同步;由處理器將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;由處理器基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及由處理器根據(jù)同步的優(yōu)先序排列來(lái)同步所選擇的數(shù)據(jù)的組。
作為本發(fā)明進(jìn)一步的方案:所述將獲取的所述數(shù)據(jù)修改操作的參數(shù)綁定到與所述數(shù)據(jù)修改操作的類型對(duì)應(yīng)的語(yǔ)句模板中,生成數(shù)據(jù)修改操作語(yǔ)句之前,還包括:生成所述語(yǔ)句類型。
作為本發(fā)明進(jìn)一步的方案:在所述運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句之前,還包括:將所述數(shù)據(jù)修改操作語(yǔ)句添加到語(yǔ)句組;所述運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改具體包括:在所述語(yǔ)句組的語(yǔ)句類型為預(yù)設(shè)類型時(shí),運(yùn)行所述語(yǔ)句組,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改。
作為本發(fā)明再進(jìn)一步的方案:包括:監(jiān)視模塊,其監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;預(yù)測(cè)模塊,其基于所監(jiān)視的數(shù)據(jù)屬性的集合選擇數(shù)據(jù)組用于同步,并且將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;數(shù)據(jù)管理器,其基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及數(shù)據(jù)管理器,其根據(jù)同步的優(yōu)先序排列同步所選擇的數(shù)據(jù)的組。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明數(shù)據(jù)庫(kù)同步的方法及系統(tǒng),由處理器監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;由處理器基于所監(jiān)視的屬性的集合選擇數(shù)據(jù)組用于同步;由處理器將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;由處理器基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及由處理器根據(jù)同步的優(yōu)先序排列來(lái)同步所選擇的數(shù)據(jù)的組,從而提升了數(shù)據(jù)庫(kù)同步的效率。
具體實(shí)施方式
下面對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例中,一種數(shù)據(jù)庫(kù)同步的方法,包括如下步驟:接收源數(shù)據(jù)庫(kù)發(fā)送的日志信息,所述日志信息用于表示所述源數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改操作;獲取所述日志信息中所述數(shù)據(jù)修改操作的類型和參數(shù),并將獲取的所述數(shù)據(jù)修改操作的參數(shù)綁定到與所述數(shù)據(jù)修改操作的類型對(duì)應(yīng)的語(yǔ)句模板中,生成數(shù)據(jù)修改操作語(yǔ)句;運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改;由處理器監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;由處理器基于所監(jiān)視的屬性的集合選擇數(shù)據(jù)組用于同步;由處理器將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;由處理器基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及由處理器根據(jù)同步的優(yōu)先序排列來(lái)同步所選擇的數(shù)據(jù)的組。
所述將獲取的所述數(shù)據(jù)修改操作的參數(shù)綁定到與所述數(shù)據(jù)修改操作的類型對(duì)應(yīng)的語(yǔ)句模板中,生成數(shù)據(jù)修改操作語(yǔ)句之前,還包括:生成所述語(yǔ)句類型。
在所述運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句之前,還包括:將所述數(shù)據(jù)修改操作語(yǔ)句添加到語(yǔ)句組;所述運(yùn)行所述數(shù)據(jù)修改操作語(yǔ)句,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改具體包括:在所述語(yǔ)句組的語(yǔ)句類型為預(yù)設(shè)類型時(shí),運(yùn)行所述語(yǔ)句組,完成對(duì)目標(biāo)數(shù)據(jù)庫(kù)中相同存儲(chǔ)位置的數(shù)據(jù)的修改。
包括:監(jiān)視模塊,其監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;預(yù)測(cè)模塊,其基于所監(jiān)視的數(shù)據(jù)屬性的集合選擇數(shù)據(jù)組用于同步,并且將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;數(shù)據(jù)管理器,其基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及數(shù)據(jù)管理器,其根據(jù)同步的優(yōu)先序排列同步所選擇的數(shù)據(jù)的組。
本發(fā)明數(shù)據(jù)庫(kù)同步的方法及系統(tǒng),由處理器監(jiān)視源數(shù)據(jù)庫(kù)中數(shù)據(jù)屬性的集合;由處理器基于所監(jiān)視的屬性的集合選擇數(shù)據(jù)組用于同步;由處理器將優(yōu)先級(jí)級(jí)別分派給每個(gè)所選擇的數(shù)據(jù)和每個(gè)設(shè)備;由處理器基于優(yōu)先級(jí)級(jí)別按優(yōu)先序排列將對(duì)所選擇的數(shù)據(jù)的組執(zhí)行的同步操作;以及由處理器根據(jù)同步的優(yōu)先序排列來(lái)同步所選擇的數(shù)據(jù)的組,從而提升了數(shù)據(jù)庫(kù)同步的效率。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。此外,應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。