TWI628551B - Data library copying method and device based on log parsing - Google Patents
Data library copying method and device based on log parsing Download PDFInfo
- Publication number
- TWI628551B TWI628551B TW105136561A TW105136561A TWI628551B TW I628551 B TWI628551 B TW I628551B TW 105136561 A TW105136561 A TW 105136561A TW 105136561 A TW105136561 A TW 105136561A TW I628551 B TWI628551 B TW I628551B
- Authority
- TW
- Taiwan
- Prior art keywords
- database
- data
- merged
- statement
- log
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computing Systems (AREA)
Abstract
本發明提供一種基於日誌解析的資料庫複製方法及裝置,用以解決現有技術當主端解析得到的資料庫重播語句數量非常大時,異地資料庫複製效率低的技術問題,其係根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,再將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,將合併後的行物件發送給目標資料庫,以使目標資料庫根據合併後的行物件進行資料庫重播,該方法在發送行物件給目標資料庫之前,首先對行物件進行合併,從而大大減少了資料量,提高了資料庫複製效率。
Description
本發明屬於資料庫複製技術領域,尤其是關於一種基於日誌解析的資料庫複製方法及裝置。
隨著應用系統的不斷發展,系統對於資料庫的依賴與日俱增。資料庫應用場景的豐富也導致資料庫之間的複製需求與要求日趨旺盛。資料庫複製是在資料庫之間對資料和資料庫物件進行複製和分發,並進行同步以確保其一致性的一類技術。
現有技術中,基於日誌解析的資料庫複製技術,通過主端將來源資料庫引擎產生的日誌解析成資料庫重播語句,並通過異地網路將解析後的大量資料重播語句發送至目標資料庫,然後由備端根據接收到的資料重播語句進行資料庫重播,並將重播得到的資料儲存到目標資料庫,從而實現將來源資料庫的資料複製到目標資料庫。
上述方法存在的問題是:當主端解析得到的資料庫重播語句數量非常大時,異地網路傳輸會比較慢,因而導致整個資料庫異地複製的時間會非常長,降低了異地資料庫複製效率。
本發明提供一種基於日誌解析的資料庫複製方法,用以解決
現有技術當主端解析得到的資料庫重播語句數量非常大時,異地資料庫複製效率低的技術問題。
一方面,本發明實施例提供的一種基於日誌解析的資料庫複製方法,該方法包括:根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據該主鍵標識和合併後的語句生成合併後的行物件;將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播。
可選地,該根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
可選地,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句;將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語句。
可選地,將該合併後的行物件發送給目標資料庫之前,還包括:對該合併後的行對象進行資料加密壓縮。
可選地,根據來源資料中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據源結構化查詢語言MySQL資料庫中的二進位日誌(Binary Log日誌),將該Binary Log日誌解析為行物件;將該合併後的行物件發送給目標資料庫,以使該目標資料庫
根據該合併後的行物件進行資料庫重播,包括:將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
另一方面,本發明實施例提供的一種基於日誌解析的資料庫複製裝置,該裝置包括:解析單元,用於根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件;合併單元,用於根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據該主鍵標識和合併後的語句生成合併後的行物件;發送單元,用於將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播。
可選地,該解析單元,具體用於:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
可選地,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句;將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語句。
可選地,該裝置還包括加密單元,具體用於:對該合併後的行對象進行資料加密壓縮。
可選地,該解析單元根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據源結構化查詢語言MySQL資料庫中的二進位日誌(Binary Log日誌),將該Binary Log日誌解析為行物件;該發送單元將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播,包括:
將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
本發明實施例提供的方法,根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,將合併後的行物件發送給目標資料庫,以使目標資料庫根據合併後的行物件進行資料庫重播,該方法在發送行物件給目標資料庫之前,首先對行物件進行合併,從而大大減少了資料量,從而在提高了將行物件從來源資料庫發送到目標資料庫的速度,提高了資料庫複製效率。
101-103、201-209‧‧‧步驟
301‧‧‧解析單元
302‧‧‧合併單元
303‧‧‧加密單元
304‧‧‧發送單元
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的基於日誌解析的資料庫複製方法流程圖;圖2為本發明實施例提供的基於日誌解析的資料庫複製方法詳細流程圖;圖3為本發明實施例提供的基於日誌解析的資料庫複製裝置示意圖。
為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發
明一部份實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本發明保護的範圍。
下面結合說明書附圖對本發明實施例作進一步詳細描述。
如圖1所示,本發明實施例提供的基於日誌解析的資料庫複製方法,包括:步驟101、根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件;步驟102、根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件;步驟103、將合併後的行物件發送給目標資料庫,以使目標資料庫根據該合併後的行物件進行資料庫重播。
來源資料庫可以是甲骨文Oracle資料庫,SQL(Structured Query Language,結構化查詢語言)資料庫,MySQL(My Structured Query Language,關聯式結構化查詢語言)資料庫等等,目標資料庫與來源資料庫類型相同,可以相應的是Oracle資料庫,SQL資料庫,MySQL資料庫等等。
資料庫日誌中記錄有對資料進行操作的資料庫語句,例如查詢資料語句,刪除資料語句,以及更新資料語句等。
上述步驟101中,根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,其中一個行物件對應一個資料庫語句,對應同一行的多個行物件具有相同的主鍵標識,例如,對資料庫表A的第一行從時間先
後順序看,分別有3個資料庫語句,且第一行對應的主鍵標識為A1,其中,第1個資料庫語句是對第一行有一個資料插入的語句,因此第一行對應一個行物件1,行物件1對應的主鍵標識為A1,對應的資料庫語句為對第一行進行資料插入的操作;第2個資料庫語句是對第一行有一個資料刪除的語句,因此第一行對應一個行物件2,行物件2對應的主鍵標識為A1,對應的資料庫語句為刪除第一行資料的刪除操作;第3個資料庫語句是對第一行有一個資料更新的語句,因此第一行對應一個行物件3,行物件3對應的主鍵標識為A1,對應的資料庫語句為更新第一行的資料的更新操作。步驟101中,通過讀取資料庫日誌,可以將資料庫日誌解析為多個行物件。
步驟102中,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,例如,如上例所述,表A的第一行對應有3個資料庫操作,可以將具有相同主鍵標識的行物件對應的語句進行合併,即對同一個行的多個動作陳述式進行合併,合併之後,一個行只對應一個行物件,且只有一條合併後的語句。因而大大減少了總的行物件的數量。
步驟103、將合併後的行物件發送給目標資料庫,以使目標資料庫根據該合併後的行物件進行資料庫重播。由於步驟102對行物件進行了合併,因而大大減少了行物件的數量,從而在傳輸至目標資料庫時,提高了傳輸的速度。
本發明實施例提供的方法,根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語
句生成合併後的行物件,將合併後的行物件發送給目標資料庫,以使目標資料庫根據合併後的行物件進行資料庫重播。該方法在發送行物件給目標資料庫之前,首先對行物件進行合併,從而大大減少了資料量,從而在提高了將行物件從來源資料庫發送到目標資料庫的速度,提高了資料庫複製效率。
具體地,在對資料庫日誌進行解析時,可以將資料庫日誌解析成多張表,然後將一張表的一行作為一個物件,一個物件對應一行的一個資料庫動作陳述式,或者是一個物件對應一行的多個資料庫動作陳述式;或者是將一張表整體作為一個物件,對於解析的方法,本發明不做具體限定。
可選地,該根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;上述方法,將來源資料庫中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件,一個行物件對應一行的一條資料庫動作陳述式,因此一個行物件只對應一行一次操作的資料庫動作陳述式,例如針對表B第2行,在一個時間段內有2個操作,分別是刪除語句和更新語句,則改行解析為兩個行物件,分別對應改行的兩個資料庫動作陳述式。該方法將資料庫日誌解析為以一行的一個資料庫動作陳述式為最小單位,可為後續資料庫的複製提供充分詳細的資訊,因而方便了資料
庫的複製,提高了效率。
基於上述資料庫日誌解析方式,可根據下列方式對具有相同主鍵標識的行物件進行合併。
可選地,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
上述方法,針對每一張行物件表,可分配一個執行緒進行行物件對應的語句進行合併的操作,從而可以併發地將根據來源資料庫解析得到的行物件進行合併,從而提高行物件合併的效率,提高系統效率。
對於將具有相同主鍵標識的行物件對應的語句進行合併的規則有很多,本發明實施例提供的行物件對應的語句進行合併的規則如下:可選地,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句;將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;
將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語句。
上述方法,根據上述規則的組合,可對任意具有相同主鍵標識的行物件對應的語句進行合併,例如一行前後有以下操作:刪除,插入,更新,則可以將刪除,插入,更新分別對應的3個語句合併為一條語句,首先將刪除語句和插入語句合併為插入語句,然後將插入語句和更新語句合併為更新語句,因此合併只有只剩下一條更新語句,對於合併後的更新語句的具體內容根據實際應用而定,本發明不做限定。因此,通過上述預先設定的規則,可對具有相同主鍵標識的行物件對應的語句進行合併,然後根據合併後語句以及根據改行對應的主鍵標識,生產一個新的行物件,該新的行物件為該行合併後的行物件,由此可見,通過上述規則,可將具有相同主鍵標識的多個行物件合併為一個行物件,大大減少了資料量,在將合併後的行物件傳輸至目標資料庫時,由於資料量的減少而提高了發送效率。
另外,在將合併後的行物件發送給目標資料庫之前,可對合併後的行物件做一些預處理,例如加密,或者是不加密,以及還可以是對資料做壓縮,或者不壓縮,具體根據實際需要而定。
可選地,本發明實施例提供的方法,在將該合併後的行物件發送給目標資料庫之前,還包括:對該合併後的行對象進行資料加密壓縮。
該方法中,在將合併後的行物件發送給目標資料庫之前進行加密和壓縮操作,從而提高資料發送的安全性,以及進一步降低了資料發送量。
以來源資料庫和目標資料庫都是MySQL資料庫,並且資料庫日誌是Binary Log日誌的場景為例,進一步詳述本發明提供的資料庫複製方法。該方法包括:根據源結構化查詢語言MySQL資料庫中的二進位日誌(Binary Log日誌),將該Binary Log日誌解析為行物件;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件;將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
針對來源資料庫和目標資料庫都是MySQL資料庫,並且資料庫日誌是Binary Log日誌的場景,該方法可通過類比MySQL dump協定將Binary Log日誌拉取到本地,並根據Binary Log日誌格式將其解析為行物件,然後根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,將合併後的行物件發送給目標MySQL資料庫,以使目標MySQL資料庫根據合併後的行物件進行MySQL資料庫重播。
下面對本發明實施例提供的基於日誌解析的資料庫複製方法做詳細描述。
步驟201、主端對資料庫日誌進行解析;步驟202、主端進行資料庫行物件合併操作;步驟203、主端進行資料傳輸序列化;
步驟204、主端進行資料庫加密壓縮;步驟205、主端進行主端異地網路資料發送;步驟206、備端進行備端異地網路資料接收;步驟207、備端進行資料解壓縮解密;步驟208、備端進行資料反序列化;步驟209、備端進行資料重播操作,將重播後的資料儲存到目標資料庫。
本發明實施例提供的方法,根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,將合併後的行物件發送給目標資料庫,以使目標資料庫根據合併後的行物件進行資料庫重播,該方法在發送行物件給目標資料庫之前,首先對行物件進行合併,從而大大減少了資料量,從而在提高了將行物件從來源資料庫發送到目標資料庫的速度,提高了資料庫複製效率。
基於相同的技術構思,本發明實施例還提供基於日誌解析的資料庫複製裝置。本發明實施例提供的基於日誌解析的資料庫複製方法裝置如圖3所示。
解析單元301,用於根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件;合併單元302,用於根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據該主鍵標識和合併後的語句生成合併後的行物件;
發送單元304,用於將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播。
可選地,該解析單元301,具體用於:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
可選地,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句;將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語句。可選地,該裝置還包括加密單元303,具體用於:
對該合併後的行對象進行資料加密壓縮。
以來源資料庫和目標資料庫都是MySQL資料庫,並且資料庫日誌是Binary Log日誌的場景為例,進一步詳述本發明提供的資料庫複製裝置。
該解析單元301根據源結構化查詢語言MySQL資料庫中的二進位日誌Binary Log日誌,將該Binary Log日誌解析為行物件;該合併單元302根據預先設定的規則,對具有相同主鍵標識的行物件進行合併;該發送單元304將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
本發明實施例提供的方法,根據來源資料庫中的資料庫日誌,將資料庫日誌解析為行物件,根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件,將合併後的行物件發送給目標資料庫,以使目標資料庫根據合併後的行物件進行資料庫重播,該方法在發送行物件給目標資料庫之前,首先對行物件進行合併,從而大大減少了資料量,從而在提高了將行物件從來源資料庫發送到目標資料庫的速度,提高了資料庫複製效率。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方
塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括優選實施例以及落入本發明申請範圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明申請專利範圍及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
Claims (8)
- 一種基於日誌解析的資料庫複製方法,其特徵在於,包括:根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據該主鍵標識和合併後的語句生成合併後的行物件;將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播;其中,該根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
- 如請求項1中所述的基於日誌解析的資料庫複製方法,其中,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句; 將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語句。
- 如請求項1所述的基於日誌解析的資料庫複製方法,其中,將該合併後的行物件發送給目標資料庫之前,還包括:對該合併後的行對象進行資料加密壓縮。
- 如請求項1或3所述的基於日誌解析的資料庫複製方法,其中,根據來源資料中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據源結構化查詢語言MySQL資料庫中的二進位日誌(Binary Log日誌),將該Binary Log日誌解析為行物件;將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播,包括:將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
- 一種基於日誌解析的資料庫複製裝置,其特徵在於,包括:解析單元,用於根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件;合併單元,用於根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據該主鍵標識和合併後的語句生成合併後的行物件; 發送單元,用於將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播;其中,該解析單元,具體用於:根據來源資料庫中的資料庫日誌,將該資料中的資料庫日誌解析為至少一張行物件表;其中一張行物件表包含至少一個行物件;一個行物件對應一行的一條資料庫動作陳述式;根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行對象,包括:針對每一張行物件表,為該行物件表分配一個執行緒,並調用該執行緒根據預先設定的規則,將具有相同主鍵標識的行物件對應的語句合併成一個語句,並根據主鍵標識和合併後的語句生成合併後的行物件。
- 如請求項5中所述的基於日誌解析的資料庫複製裝置,其中,該預先設定的規則包含下列一項或任幾項的組合:將多條進行資料插入的語句合併成一條資料插入語句;將多條進行資料刪除的語句合併成一條資料刪除語句;將多條進行資料更新的語句合併成一條資料更新語句;將先進行資料插入,後進行資料刪除的兩條語句合併為一條資料刪除語句;將先進行資料插入,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料刪除,後進行資料插入的兩條語句合併為一條資料插入語句;將先進行資料刪除,後進行資料更新的兩條語句合併為一條資料更新語句;將先進行資料更新,後進行資料刪除的兩條語句合併為一條資料刪除語 句。
- 如請求項5所述的基於日誌解析的資料庫複製裝置,其中,該裝置還包括加密單元,具體用於:對該合併後的行對象進行資料加密壓縮。
- 如請求項5或7所述的基於日誌解析的資料庫複製裝置,其中,該解析單元根據來源資料庫中的資料庫日誌,將該資料庫日誌解析為行物件,包括:根據源結構化查詢語言MySQL資料庫中的二進位日誌(Binary Log日誌),將該Binary Log日誌解析為行物件;該發送單元將該合併後的行物件發送給目標資料庫,以使該目標資料庫根據該合併後的行物件進行資料庫重播,包括:將該合併後的行物件發送給目標MySQL資料庫,以使該目標MySQL資料庫根據該合併後的行物件進行MySQL資料庫重播。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510776844.XA CN105955970A (zh) | 2015-11-12 | 2015-11-12 | 一种基于日志解析的数据库复制方法及装置 |
??201510776844.X | 2015-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201717074A TW201717074A (zh) | 2017-05-16 |
TWI628551B true TWI628551B (zh) | 2018-07-01 |
Family
ID=56917189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105136561A TWI628551B (zh) | 2015-11-12 | 2016-11-10 | Data library copying method and device based on log parsing |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN105955970A (zh) |
TW (1) | TWI628551B (zh) |
WO (1) | WO2017080431A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955970A (zh) * | 2015-11-12 | 2016-09-21 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN106844574A (zh) * | 2017-01-05 | 2017-06-13 | 中国银联股份有限公司 | 一种远程数据同步的方法和装置 |
CN107122431A (zh) * | 2017-04-14 | 2017-09-01 | 浙江数链科技有限公司 | 一种实时计算平台及基于实时计算平台的数据计算方法 |
CN107169094B (zh) * | 2017-05-12 | 2020-10-13 | 北京小米移动软件有限公司 | 信息聚合方法及装置 |
CN109101627B (zh) * | 2018-08-14 | 2022-03-22 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109408589B (zh) * | 2018-09-14 | 2020-08-14 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
CN109656935B (zh) * | 2018-11-23 | 2023-12-01 | 创新先进技术有限公司 | 用于数据库的数据回放的方法和系统 |
CN111382152B (zh) * | 2018-12-27 | 2023-10-20 | 杭州海康威视数字技术股份有限公司 | 数据表处理方法、装置及存储介质 |
CN111444199B (zh) * | 2019-01-17 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、存储介质和处理器 |
CN110134653B (zh) * | 2019-05-17 | 2021-09-07 | 杭州安恒信息技术股份有限公司 | 一种利用日志辅助数据库审计方法及系统 |
CN110297866A (zh) * | 2019-05-20 | 2019-10-01 | 平安普惠企业管理有限公司 | 基于日志分析的数据同步方法及数据同步装置 |
CN110674147B (zh) * | 2019-08-28 | 2023-02-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN110569223A (zh) * | 2019-09-16 | 2019-12-13 | 京东数字科技控股有限公司 | 数据库日志处理方法以及装置 |
CN113761052B (zh) * | 2020-11-27 | 2024-10-18 | 北京沃东天骏信息技术有限公司 | 数据库同步方法和装置 |
CN114647659A (zh) * | 2020-12-17 | 2022-06-21 | 金篆信科有限责任公司 | 数据处理方法、装置、电子设备、存储介质 |
CN113111050B (zh) * | 2021-04-27 | 2023-07-07 | 山东福生佳信科技股份有限公司 | 数据库对比方法及装置 |
CN113220646A (zh) * | 2021-06-03 | 2021-08-06 | 北京锐安科技有限公司 | 一种数据解析方法、装置、计算机设备和存储介质 |
CN114090609A (zh) * | 2021-10-26 | 2022-02-25 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
CN114969200B (zh) * | 2022-04-18 | 2023-09-19 | 中移互联网有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090007065A1 (en) * | 2007-06-29 | 2009-01-01 | Alcatel-Lucent | Logging system and method for computer software |
CN101719149A (zh) * | 2009-12-03 | 2010-06-02 | 联动优势科技有限公司 | 数据同步方法及装置 |
TW201301062A (zh) * | 2011-06-23 | 2013-01-01 | Alibaba Group Holding Ltd | 實現增量資料抽取的方法、裝置及系統 |
CN104933127A (zh) * | 2015-06-12 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 基于MariaDB的跨机房数据库同步设备及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN102129478B (zh) * | 2011-04-26 | 2012-10-03 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103246745B (zh) * | 2013-05-22 | 2016-03-09 | 中国工商银行股份有限公司 | 一种基于数据仓库的数据处理装置及方法 |
CN103793514B (zh) * | 2014-02-11 | 2017-09-19 | 华为技术有限公司 | 数据库同步方法及数据库 |
CN105955970A (zh) * | 2015-11-12 | 2016-09-21 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
-
2015
- 2015-11-12 CN CN201510776844.XA patent/CN105955970A/zh active Pending
-
2016
- 2016-11-08 WO PCT/CN2016/105007 patent/WO2017080431A1/zh active Application Filing
- 2016-11-10 TW TW105136561A patent/TWI628551B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090007065A1 (en) * | 2007-06-29 | 2009-01-01 | Alcatel-Lucent | Logging system and method for computer software |
CN101719149A (zh) * | 2009-12-03 | 2010-06-02 | 联动优势科技有限公司 | 数据同步方法及装置 |
TW201301062A (zh) * | 2011-06-23 | 2013-01-01 | Alibaba Group Holding Ltd | 實現增量資料抽取的方法、裝置及系統 |
CN104933127A (zh) * | 2015-06-12 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 基于MariaDB的跨机房数据库同步设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201717074A (zh) | 2017-05-16 |
WO2017080431A1 (zh) | 2017-05-18 |
CN105955970A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI628551B (zh) | Data library copying method and device based on log parsing | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
US11475034B2 (en) | Schemaless to relational representation conversion | |
WO2020147392A1 (zh) | 数据库之间的数据同步方法和系统 | |
US10599533B2 (en) | Cloud storage using merkle trees | |
CN107590277B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN107958010B (zh) | 用于在线数据迁移的方法及系统 | |
US8244686B2 (en) | High throughput, reliable replication of transformed data in information systems | |
US10467192B2 (en) | Method and apparatus for updating data table in keyvalue database | |
WO2015109250A1 (en) | CREATING NoSQL DATABASE INDEX FOR SEMI-STRUCTURED DATA | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
US10545988B2 (en) | System and method for data synchronization using revision control | |
CN110633378A (zh) | 一种支持超大规模关系网络的图数据库构建方法 | |
US20180129712A1 (en) | Data provenance and data pedigree tracking | |
US11226986B2 (en) | Data table partitioning management method and apparatus | |
WO2016023372A1 (zh) | 数据存储处理方法及装置 | |
CN109165262A (zh) | 一种关系型大表的分片集群系统及其分片方法 | |
US10025680B2 (en) | High throughput, high reliability data processing system | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
Chunduri et al. | Concept generation in formal concept analysis using MapReduce framework | |
CN111026764B (zh) | 一种数据存储方法、装置、电子产品及存储介质 | |
US10963426B1 (en) | Method of providing access controls and permissions over relational data stored in a hadoop file system | |
Zhang et al. | Remove-win: a design framework for conflict-free replicated data types | |
US20220245104A1 (en) | Hashing for deduplication through skipping selected data | |
Ghosh et al. | NoSQL Database: An Advanced Way to Store, Analyze and Extract Results From Big Data |