[發(fā)明專利]基于日志解析的異構(gòu)數(shù)據(jù)庫的雙向同步方法和同步裝置有效
| 申請(qǐng)?zhí)枺?/td> | 202010714023.4 | 申請(qǐng)日: | 2020-07-22 |
| 公開(公告)號(hào): | CN112035463B | 公開(公告)日: | 2023-07-21 |
| 發(fā)明(設(shè)計(jì))人: | 孫峰;彭青松;劉啟春 | 申請(qǐng)(專利權(quán))人: | 武漢達(dá)夢(mèng)數(shù)據(jù)庫股份有限公司 |
| 主分類號(hào): | G06F16/22 | 分類號(hào): | G06F16/22;G06F16/23;G06F16/2455;G06F16/27;G06F16/18 |
| 代理公司: | 深圳市六加知識(shí)產(chǎn)權(quán)代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術(shù)開*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 日志 解析 數(shù)據(jù)庫 雙向 同步 方法 裝置 | ||
本發(fā)明公開了一種基于日志解析的異構(gòu)數(shù)據(jù)庫的雙向同步方法和同步裝置,雙向同步方法包括:分別為雙向同步系統(tǒng)中的兩個(gè)數(shù)據(jù)同步系統(tǒng)創(chuàng)建專屬用戶;在數(shù)據(jù)同步服務(wù)初始啟動(dòng)時(shí),設(shè)置同步事務(wù)的過濾用戶為本數(shù)據(jù)同步系統(tǒng)中創(chuàng)建的專屬用戶;在進(jìn)行增量數(shù)據(jù)同步時(shí),位于本端數(shù)據(jù)同步系統(tǒng)的數(shù)據(jù)同步服務(wù)獲取操作日志,對(duì)操作日志進(jìn)行解析得到操作日志所屬的用戶對(duì)象;判斷操作日志所屬的用戶對(duì)象是否為過濾用戶;若是,則丟棄操作日志;若不是,則將操作日志發(fā)送至對(duì)端數(shù)據(jù)同步系統(tǒng),對(duì)端數(shù)據(jù)同步系統(tǒng)使用其上的專屬用戶創(chuàng)建的數(shù)據(jù)庫連接執(zhí)行數(shù)據(jù)同步。在本發(fā)明中,通過采用專屬用戶來區(qū)分產(chǎn)生操作日志的用戶對(duì)象,避免同步操作陷入死循環(huán)。
技術(shù)領(lǐng)域
本發(fā)明屬于同步技術(shù)領(lǐng)域,更具體地,涉及一種基于日志解析的異構(gòu)數(shù)據(jù)庫的雙向同步方法和同步裝置。
背景技術(shù)
在基于日志分析的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)雙向?qū)崟r(shí)同步領(lǐng)域,其中需要解決的一個(gè)重要問題是操作日志數(shù)據(jù)在實(shí)時(shí)同步過程中的數(shù)據(jù)循環(huán)問題。為此,數(shù)據(jù)同步系統(tǒng)應(yīng)該能夠有效的識(shí)別出待同步執(zhí)行的操作日志數(shù)據(jù)的來源,即操作日志數(shù)據(jù)是由對(duì)端數(shù)據(jù)庫系統(tǒng)上數(shù)據(jù)同步服務(wù)所產(chǎn)生,還是由其他應(yīng)用產(chǎn)生,以便進(jìn)行控制和過濾,防止出現(xiàn)同步死循環(huán)。
目前,解決該問題的方法一般是通過采用相應(yīng)的方式來對(duì)同步服務(wù)所產(chǎn)生的日志數(shù)據(jù)進(jìn)行特殊標(biāo)記,以便有效識(shí)別出來并過濾掉。目前,已知的一些設(shè)置標(biāo)記的方式,主要有在雙向同步的數(shù)據(jù)庫系統(tǒng)中創(chuàng)建一個(gè)特殊表,該表為同步系統(tǒng)的內(nèi)部表,不能被其他應(yīng)用所使用。增量事務(wù)數(shù)據(jù)在同步執(zhí)行時(shí),數(shù)據(jù)同步服務(wù)除執(zhí)行待同步事務(wù)本身的操作之外,還需要額外在特殊表上執(zhí)行操作,以達(dá)到標(biāo)記同步事務(wù)的目的,這樣通過特殊表的信息就能夠識(shí)別出增量事務(wù)數(shù)據(jù)是來自數(shù)據(jù)同步服務(wù)還是其他應(yīng)用。另外還有通過設(shè)置數(shù)據(jù)庫連接標(biāo)記來進(jìn)行事務(wù)來源的識(shí)別和控制,如對(duì)于ORACLE數(shù)據(jù)庫,使用DBMS_STREAMS數(shù)據(jù)包中的SET_TAG函數(shù),將特殊標(biāo)記設(shè)置在數(shù)據(jù)庫的連接上,這樣數(shù)據(jù)同步服務(wù)使用帶有連接標(biāo)記的數(shù)據(jù)庫連接執(zhí)行同步事務(wù),數(shù)據(jù)庫日志中會(huì)記錄事務(wù)的連接信息,從而將數(shù)據(jù)同步服務(wù)所產(chǎn)生的日志與其他應(yīng)用日志區(qū)分開。
上述方法在一定程度上能有效解決數(shù)據(jù)同步循環(huán)問題,但是也存在一定不足,基于特殊表的標(biāo)記方法,表的信息只能插入在增量數(shù)據(jù)的末端,在進(jìn)行數(shù)據(jù)同步時(shí),只能在增量數(shù)據(jù)執(zhí)行到末端時(shí),才能知道增量數(shù)據(jù)的來源,而且也不能有效解決DDL(DataDefinition?Language,簡寫為DDL)同步的問題,且需要在系統(tǒng)中創(chuàng)建額外的表,對(duì)數(shù)據(jù)庫有一定的侵入性,可能存在風(fēng)險(xiǎn)。基于數(shù)據(jù)連接標(biāo)記的方法,可同時(shí)適用于DML(DataManipulation?Language,簡寫為DML)和DDL同步,但是不是所有關(guān)系型數(shù)據(jù)庫系統(tǒng)都支持上述連接標(biāo)記設(shè)定的方式,支持的數(shù)據(jù)庫類型有局限性。
鑒于此,克服該現(xiàn)有技術(shù)產(chǎn)品所存在的不足是本技術(shù)領(lǐng)域亟待解決的問題。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于日志解析的異構(gòu)數(shù)據(jù)庫的雙向同步方法和同步裝置,其目的在于,通過采用專屬用戶來區(qū)分產(chǎn)生操作日志的用戶對(duì)象,無需創(chuàng)建輔助表,避免了對(duì)端執(zhí)行到增量數(shù)據(jù)的末尾才識(shí)別出數(shù)據(jù)來源進(jìn)而確定是否需要同步的情況,相較于輔助表的方式,同步效率更高,而且可以避免數(shù)據(jù)庫的侵入風(fēng)險(xiǎn)。另外,本發(fā)明的方法適用于廣泛的關(guān)系型數(shù)據(jù)庫系統(tǒng),不論何種類型的數(shù)據(jù)庫均實(shí)現(xiàn)DDL操作和DML操作的雙向同步,避免同步操作陷入死循環(huán)。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于日志解析的異構(gòu)數(shù)據(jù)庫的雙向同步方法,所述雙向同步方法應(yīng)用于雙向同步系統(tǒng),所述雙向同步系統(tǒng)包括兩個(gè)數(shù)據(jù)同步系統(tǒng),所述數(shù)據(jù)同步系統(tǒng)包括數(shù)據(jù)同步服務(wù)和數(shù)據(jù)庫,兩個(gè)數(shù)據(jù)同步系統(tǒng)互為本端數(shù)據(jù)同步系統(tǒng)和對(duì)端數(shù)據(jù)同步系統(tǒng),所述雙向同步方法包括:
分別為所述雙向同步系統(tǒng)中的兩個(gè)數(shù)據(jù)同步系統(tǒng)創(chuàng)建專屬用戶;
在數(shù)據(jù)同步服務(wù)初始啟動(dòng)時(shí),設(shè)置同步事務(wù)的過濾用戶為本數(shù)據(jù)同步系統(tǒng)中創(chuàng)建的專屬用戶;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢達(dá)夢(mèng)數(shù)據(jù)庫股份有限公司,未經(jīng)武漢達(dá)夢(mèng)數(shù)據(jù)庫股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010714023.4/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





