CN105955970A - 一种基于日志解析的数据库复制方法及装置 - Google Patents
一种基于日志解析的数据库复制方法及装置 Download PDFInfo
- Publication number
- CN105955970A CN105955970A CN201510776844.XA CN201510776844A CN105955970A CN 105955970 A CN105955970 A CN 105955970A CN 201510776844 A CN201510776844 A CN 201510776844A CN 105955970 A CN105955970 A CN 105955970A
- Authority
- CN
- China
- Prior art keywords
- data
- statement
- row
- database
- row object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures 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数据库回放。
本申请实施例提供的方法,根据源数据库中的数据库日志,将数据库日志解析为行对象,根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象,将合并后的行对象发送给目标数据库,以使目标数据库根据合并后的行对象进行数据库回放,该方法在发送行对象给目标数据库之前,首先对行对象进行合并,从而大大减少了数据量,从而在提高了将行对象从源数据库发送到目标数据库的速度,提高了数据库复制效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图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日志,将所述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,具体用于:
对所述合并后的行对象进行数据加密压缩。
可选地,所述发送单元304还用于:
根据源结构化查询语言MySQL数据库中的二进制日志Binary Log日志,将所述Binary Log日志解析为行对象;
根据预先设定的规则,对具有相同主键标识的行对象进行合并;
将所述合并后的行对象发送给目标MySQL数据库,以使所述目标MySQL数据库根据所述合并后的行对象进行MySQL数据库回放。
本申请实施例提供的方法,根据源数据库中的数据库日志,将数据库日志解析为行对象,根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象,将合并后的行对象发送给目标数据库,以使目标数据库根据合并后的行对象进行数据库回放,该方法在发送行对象给目标数据库之前,首先对行对象进行合并,从而大大减少了数据量,从而在提高了将行对象从源数据库发送到目标数据库的速度,提高了数据库复制效率。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于日志解析的数据库复制方法,其特征在于,包括:
根据源数据库中的数据库日志,将所述数据库日志解析为行对象;
根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据所述主键标识和合并后的语句生成合并后的行对象;
将所述合并后的行对象发送给目标数据库,以使所述目标数据库根据所述合并后的行对象进行数据库回放。
2.如权利要求1所述的方法,其特征在于,所述根据源数据库中的数据库日志,将所述数据库日志解析为行对象,包括:
根据源数据库中的数据库日志,将所述数据中的数据库日志解析为至少一张行对象表;其中一张行对象表包含至少一个行对象;一个行对象一行的一条数据库操作语句;
根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象,包括:
针对每一张行对象表,为所述行对象表分配一个线程,并调用该线程根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象。
3.如权利要求1或2所述的方法,其特征在于,所述预先设定的规则包含下列一项或任几项的组合:
将多条进行数据插入的语句合并成一条数据插入语句;
将多条进行数据删除的语句合并成一条数据删除语句;
将多条进行数据更新的语句合并成一条数据更新语句;
将先进行数据插入,后进行数据删除的两条语句合并为一条数据删除语句;
将先进行数据插入,后进行数据更新的两条语句合并为一条数据更新语句;
将先进行数据删除,后进行数据插入的两条语句合并为一条数据插入语句;
将先进行数据删除,后进行数据更新的两条语句合并为一条数据更新语句;
将先进行数据更新,后进行数据删除的两条语句合并为一条数据删除语句。
4.如权利要求1所述的方法,其特征在于,将所述合并后的行对象发送给目标数据库之前,还包括:
对所述合并后的行对象进行数据加密压缩。
5.如权利要求1、2和4中任一项所述的方法,其特征在于,根据源数据中的数据库日志,将所述数据库日志解析为行对象之前,该方法还包括:
根据源结构化查询语言MySQL数据库中的二进制日志Binary Log日志,将所述Binary Log日志解析为行对象;
根据预先设定的规则,对具有相同主键标识的行对象进行合并;
将所述合并后的行对象发送给目标MySQL数据库,以使所述目标MySQL数据库根据所述合并后的行对象进行MySQL数据库回放。
6.一种基于日志解析的数据库复制装置,其特征在于,包括:
解析单元,用于根据源数据库中的数据库日志,将所述数据库日志解析为行对象;
合并单元,用于根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据所述主键标识和合并后的语句生成合并后的行对象;
发送单元,用于将所述合并后的行对象发送给目标数据库,以使所述目标数据库根据所述合并后的行对象进行数据库回放。
7.如权利要求6所述的装置,其特征在于,所述解析单元,具体用于:
根据源数据库中的数据库日志,将所述数据中的数据库日志解析为至少一张行对象表;其中一张行对象表包含至少一个行对象;一个行对象一行的一条数据库操作语句;
根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象,包括:
针对每一张行对象表,为所述行对象表分配一个线程,并调用该线程根据预先设定的规则,将具有相同主键标识的行对象对应的语句合并成一个语句,并根据主键标识和合并后的语句生成合并后的行对象。
8.如权利要求6或7所述的装置,其特征在于,所述预先设定的规则包含下列一项或任几项的组合:
将多条进行数据插入的语句合并成一条数据插入语句;
将多条进行数据删除的语句合并成一条数据删除语句;
将多条进行数据更新的语句合并成一条数据更新语句;
将先进行数据插入,后进行数据删除的两条语句合并为一条数据删除语句;
将先进行数据插入,后进行数据更新的两条语句合并为一条数据更新语句;
将先进行数据删除,后进行数据插入的两条语句合并为一条数据插入语句;
将先进行数据删除,后进行数据更新的两条语句合并为一条数据更新语句;
将先进行数据更新,后进行数据删除的两条语句合并为一条数据删除语句。
9.如权利要求6所述的方法,其特征在于,所述装置还包括加密单元,具体用于:
对所述合并后的行对象进行数据加密压缩。
10.如权利要求6、7和9中任一项所述的装置,其特征在于,所述发送单元还用于:
根据源结构化查询语言MySQL数据库中的二进制日志Binary Log日志,将所述Binary Log日志解析为行对象;
根据预先设定的规则,对具有相同主键标识的行对象进行合并;
将所述合并后的行对象发送给目标MySQL数据库,以使所述目标MySQL数据库根据所述合并后的行对象进行MySQL数据库回放。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510776844.XA CN105955970A (zh) | 2015-11-12 | 2015-11-12 | 一种基于日志解析的数据库复制方法及装置 |
PCT/CN2016/105007 WO2017080431A1 (zh) | 2015-11-12 | 2016-11-08 | 一种基于日志解析的数据库复制方法及装置 |
TW105136561A TWI628551B (zh) | 2015-11-12 | 2016-11-10 | Data library copying method and device based on log parsing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510776844.XA CN105955970A (zh) | 2015-11-12 | 2015-11-12 | 一种基于日志解析的数据库复制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105955970A true CN105955970A (zh) | 2016-09-21 |
Family
ID=56917189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510776844.XA Pending CN105955970A (zh) | 2015-11-12 | 2015-11-12 | 一种基于日志解析的数据库复制方法及装置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN105955970A (zh) |
TW (1) | TWI628551B (zh) |
WO (1) | WO2017080431A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017080431A1 (zh) * | 2015-11-12 | 2017-05-18 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN106844574A (zh) * | 2017-01-05 | 2017-06-13 | 中国银联股份有限公司 | 一种远程数据同步的方法和装置 |
CN107122431A (zh) * | 2017-04-14 | 2017-09-01 | 浙江数链科技有限公司 | 一种实时计算平台及基于实时计算平台的数据计算方法 |
CN107169094A (zh) * | 2017-05-12 | 2017-09-15 | 北京小米移动软件有限公司 | 信息聚合方法及装置 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109408589A (zh) * | 2018-09-14 | 2019-03-01 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
CN109656935A (zh) * | 2018-11-23 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 用于数据库的数据回放的方法和系统 |
CN110134653A (zh) * | 2019-05-17 | 2019-08-16 | 杭州安恒信息技术股份有限公司 | 一种利用日志辅助数据库审计方法及系统 |
CN110297866A (zh) * | 2019-05-20 | 2019-10-01 | 平安普惠企业管理有限公司 | 基于日志分析的数据同步方法及数据同步装置 |
CN110569223A (zh) * | 2019-09-16 | 2019-12-13 | 京东数字科技控股有限公司 | 数据库日志处理方法以及装置 |
CN111382152A (zh) * | 2018-12-27 | 2020-07-07 | 杭州海康威视数字技术股份有限公司 | 数据表处理方法、装置及存储介质 |
CN113220646A (zh) * | 2021-06-03 | 2021-08-06 | 北京锐安科技有限公司 | 一种数据解析方法、装置、计算机设备和存储介质 |
CN113761052A (zh) * | 2020-11-27 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据库同步方法和装置 |
CN114090609A (zh) * | 2021-10-26 | 2022-02-25 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
CN114647659A (zh) * | 2020-12-17 | 2022-06-21 | 金篆信科有限责任公司 | 数据处理方法、装置、电子设备、存储介质 |
CN114969200A (zh) * | 2022-04-18 | 2022-08-30 | 中移互联网有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444199B (zh) * | 2019-01-17 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、存储介质和处理器 |
CN110674147B (zh) * | 2019-08-28 | 2023-02-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN113111050B (zh) * | 2021-04-27 | 2023-07-07 | 山东福生佳信科技股份有限公司 | 数据库对比方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103246745A (zh) * | 2013-05-22 | 2013-08-14 | 中国工商银行股份有限公司 | 一种基于数据仓库的数据处理装置及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245203B2 (en) * | 2007-06-29 | 2012-08-14 | Alcatel Lucent | Logging system and method for computer software |
CN101719149B (zh) * | 2009-12-03 | 2012-02-08 | 联动优势科技有限公司 | 数据同步方法及装置 |
CN102129478B (zh) * | 2011-04-26 | 2012-10-03 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN102841897B (zh) * | 2011-06-23 | 2016-03-02 | 阿里巴巴集团控股有限公司 | 一种实现增量数据抽取的方法、装置及系统 |
CN103793514B (zh) * | 2014-02-11 | 2017-09-19 | 华为技术有限公司 | 数据库同步方法及数据库 |
CN104933127A (zh) * | 2015-06-12 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 基于MariaDB的跨机房数据库同步设备及方法 |
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103246745A (zh) * | 2013-05-22 | 2013-08-14 | 中国工商银行股份有限公司 | 一种基于数据仓库的数据处理装置及方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017080431A1 (zh) * | 2015-11-12 | 2017-05-18 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN106844574A (zh) * | 2017-01-05 | 2017-06-13 | 中国银联股份有限公司 | 一种远程数据同步的方法和装置 |
CN107122431A (zh) * | 2017-04-14 | 2017-09-01 | 浙江数链科技有限公司 | 一种实时计算平台及基于实时计算平台的数据计算方法 |
CN107169094A (zh) * | 2017-05-12 | 2017-09-15 | 北京小米移动软件有限公司 | 信息聚合方法及装置 |
CN107169094B (zh) * | 2017-05-12 | 2020-10-13 | 北京小米移动软件有限公司 | 信息聚合方法及装置 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109101627B (zh) * | 2018-08-14 | 2022-03-22 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109408589B (zh) * | 2018-09-14 | 2020-08-14 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
CN109408589A (zh) * | 2018-09-14 | 2019-03-01 | 新华三大数据技术有限公司 | 数据同步方法及装置 |
CN109656935A (zh) * | 2018-11-23 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 用于数据库的数据回放的方法和系统 |
CN109656935B (zh) * | 2018-11-23 | 2023-12-01 | 创新先进技术有限公司 | 用于数据库的数据回放的方法和系统 |
CN111382152B (zh) * | 2018-12-27 | 2023-10-20 | 杭州海康威视数字技术股份有限公司 | 数据表处理方法、装置及存储介质 |
CN111382152A (zh) * | 2018-12-27 | 2020-07-07 | 杭州海康威视数字技术股份有限公司 | 数据表处理方法、装置及存储介质 |
CN110134653B (zh) * | 2019-05-17 | 2021-09-07 | 杭州安恒信息技术股份有限公司 | 一种利用日志辅助数据库审计方法及系统 |
CN110134653A (zh) * | 2019-05-17 | 2019-08-16 | 杭州安恒信息技术股份有限公司 | 一种利用日志辅助数据库审计方法及系统 |
CN110297866A (zh) * | 2019-05-20 | 2019-10-01 | 平安普惠企业管理有限公司 | 基于日志分析的数据同步方法及数据同步装置 |
CN110569223A (zh) * | 2019-09-16 | 2019-12-13 | 京东数字科技控股有限公司 | 数据库日志处理方法以及装置 |
CN113761052A (zh) * | 2020-11-27 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据库同步方法和装置 |
CN114647659A (zh) * | 2020-12-17 | 2022-06-21 | 金篆信科有限责任公司 | 数据处理方法、装置、电子设备、存储介质 |
CN113220646A (zh) * | 2021-06-03 | 2021-08-06 | 北京锐安科技有限公司 | 一种数据解析方法、装置、计算机设备和存储介质 |
WO2022253131A1 (zh) * | 2021-06-03 | 2022-12-08 | 北京锐安科技有限公司 | 数据解析方法、装置、计算机设备和存储介质 |
CN114090609A (zh) * | 2021-10-26 | 2022-02-25 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
CN114969200B (zh) * | 2022-04-18 | 2023-09-19 | 中移互联网有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN114969200A (zh) * | 2022-04-18 | 2022-08-30 | 中移互联网有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017080431A1 (zh) | 2017-05-18 |
TW201717074A (zh) | 2017-05-16 |
TWI628551B (zh) | 2018-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955970A (zh) | 一种基于日志解析的数据库复制方法及装置 | |
CN107590277B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
WO2019178979A1 (zh) | 报表数据查询方法、装置、存储介质和服务器 | |
US10467192B2 (en) | Method and apparatus for updating data table in keyvalue database | |
CN109857803B (zh) | 数据同步方法、装置、设备、系统及计算机可读存储介质 | |
CN113204598B (zh) | 一种数据同步方法、系统及存储介质 | |
CN105049287A (zh) | 日志处理方法及装置 | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
CN111770360B (zh) | 一种视频稿件采编及审核的全流程留痕的方法和系统 | |
CN104462903B (zh) | 业务系统权限的处理方法和装置 | |
CN104750744B (zh) | 一种基于Oracle数据库的压缩数据同步方法及装置 | |
CN110222114A (zh) | 数据库中数据双向同步的方法及设备 | |
CN106022143A (zh) | 一种数据库密级标志安全网关操作的方法、装置及系统 | |
US10700934B2 (en) | Communication control device, communication control method, and computer program product | |
CN104778252B (zh) | 索引的存储方法和装置 | |
CN109213955B (zh) | 数据处理方法及相关设备 | |
CN109165262A (zh) | 一种关系型大表的分片集群系统及其分片方法 | |
CN105204782A (zh) | 一种实现数据存储的方法及装置 | |
CN105468733A (zh) | 一种基于源端数据重删的卷复制方法 | |
CN114127707A (zh) | 用于处理写请求的系统、计算节点和方法 | |
CN110489247A (zh) | 一种数据实时集成方法及装置 | |
CN115657090A (zh) | Gnss北斗定位模块接口数据低延时解析处理方法 | |
CN104780038A (zh) | 一种分布式协同加密方法及装置 | |
CN113537931A (zh) | 电子印章的生成及使用电子印章进行验证的方法及装置 | |
CN114510534A (zh) | 数据同步方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1225128 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160921 |
|
RJ01 | Rejection of invention patent application after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1225128 Country of ref document: HK |