CN106649756A - 日志同步方法及装置 - Google Patents

日志同步方法及装置 Download PDF

Info

Publication number
CN106649756A
CN106649756A CN201611221452.8A CN201611221452A CN106649756A CN 106649756 A CN106649756 A CN 106649756A CN 201611221452 A CN201611221452 A CN 201611221452A CN 106649756 A CN106649756 A CN 106649756A
Authority
CN
China
Prior art keywords
log information
source database
read
data base
database
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
Application number
CN201611221452.8A
Other languages
English (en)
Inventor
吴晓飞
宋昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201611221452.8A priority Critical patent/CN106649756A/zh
Publication of CN106649756A publication Critical patent/CN106649756A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Abstract

本发明公开了一种日志同步方法及装置,涉及计算机网络技术领域。其中方法包括:与源数据库建立连接;从源数据库中读取日志信息;将日志信息分配给与目的数据库建立连接的线程;由所述线程将所述日志信息写入目的数据库。由于利用了中间件,源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。

Description

日志同步方法及装置
技术领域
本发明涉及计算机网络技术领域,具体涉及一种日志同步方法及装置。
背景技术
基于分布式文件存储的数据库,一般由特定语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。由于单一数据库的处理能力有限,因此在分布式文件存储数据库的解决方案中,基于源数据库,按照业务或功能建立多个目标数据库,从而降低对源数据库的访问压力。当源数据库中的某个数据表发生变化时,需要保证关注该数据表的目标数据库中的该数据表与源数据库中的该数据表发生一致的变化,与此同时,还需要同步源数据库中的日志信息与目的数据库中的日志信息。
现有的日志信息的同步方法是,当需要同步日志信息时,首先建立目的数据库与源数据库的连接。但是,根据现有的分布式文件存储数据库处理机制,一旦有新的目的数据库与源数据库建立连接,则会触发主数据库的选举机制,在选举过程中,源数据库的对外访问能力将受到影响。如果经过选取导致换主,还需要进行一系列的后续操作,如通知业务访问端、修改元信息等,将会进一步影响数据库的性能。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的日志同步方法及装置。
根据本发明的一个方面,提供了一种日志同步方法,其包括:
与源数据库建立连接;
从源数据库中读取日志信息;
将日志信息分配给与目的数据库建立连接的线程;
由所述线程将所述日志信息写入目的数据库。
根据本发明的另一方面,提供了一种日志同步装置,其包括:
日志读取模块,适于与源数据库建立连接,从源数据库中读取日志信息,将日志信息分配给线程处理模块;
线程处理模块,适于与目的数据库建立连接,将所述日志信息写入目的数据库。
根据本发明提供的日志同步方法及装置,首先与源数据库建立连接,从源数据库中读取日志信息;将日志信息分配给与目的数据库建立连接的线程,由线程将日志信息写入目的数据库。由于利用了中间件,源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的日志同步方法的流程示意图;
图2示出了根据本发明另一个实施例的日志同步方法的流程示意图;
图3示出了根据本发明一个实施例的日志同步装置的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种日志同步方法,该方法为一种第三方解决方案,即通过开发的第三方工具实现将源数据库的日志信息同步给目的数据库。举例来说,通过中间件实现本发明实施例的方法,中间件与源数据库之间建立用于读取日志的连接,中间件与目的数据库之间建立用于写入日志的连接。中间件执行如下实施例提供的方法,能够提升源数据库和目的数据库之间的日志同步效率。由于利用了中间件,源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。
图1示出了根据本发明一个实施例的日志同步方法的流程示意图。该方法由中间件执行,如图1所示,该方法包括如下步骤:
步骤S101,与源数据库建立连接。
首先,中间件预先与源数据库建立用于读取日志的连接。具体地,源数据库开设一日志读取端口,中间件访问该日志读取端口读取日志信息。中间件相当于第三方的工具,它的接入不会影响分布式系统中数据库之间的连接关系,因而不会触发分布式文件存储数据库系统的主数据库选举机制。
步骤S102,从源数据库中读取日志信息。
利用所建立的连接,中间件从源数据库中读取日志信息,具体地中间件访问源数据库为其开设的日志读取端口读取日志信息。
步骤S103,将日志信息分配给与目的数据库建立连接的线程。
中间件内部预先创建了用于处理日志信息的线程,该线程与目的数据库之前建立有用于写入日志信息的连接。具体地,目的数据库开设一日志写入端口,中间件的线程访问该日志写入端口向目的数据库写入日志信息。
步骤S104,由线程将日志信息写入目的数据库。
利用所建立的连接,中间件的线程将日志信息写入目的数据库,具体地线程访问目的数据库为其开设的日志写入端口向目的数据库写入日志信息。
利用本实施例提供的日志同步方法,首先与源数据库建立连接,从源数据库中读取日志信息;将日志信息分配给与目的数据库建立连接的线程,由线程将日志信息写入目的数据库。由于利用了中间件,源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。
图2示出了根据本发明另一个实施例的日志同步方法的流程示意图。该方法由中间件执行,如图2所示,该方法包括如下步骤:
步骤S201,与源数据库建立一条用于读取日志信息的连接,以及创建线程,且该线程与目的数据库建立一条用于写入日志信息的连接。
中间件预先与源数据库建立用于读取日志信息的连接。一般情况下,中间件与源数据库之间建立一条用于读取日志信息的连接,即可满足中间件的处理需求。所谓建立连接具体为源数据库开设一个日志读取端口,中间件通过访问该日志读取端口的方式读取日志信息。
中间件还预先创建有线程,该线程与目的数据库建立一条用于写入日志信息的连接。具体地,目的数据库为线程开设一个日志写入端口,线程访问该日志写入端口向目的数据库写入日志信息。
步骤S202,从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。
本方法实施例适用于MongoDB分布式数据库系统。MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是面向集合的数据库系统。所谓面向集合,是指数据被分组存储在数据集中,被称为一个集合。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。这种存储形式被称为BSON(Binary SerializedDocument Format)。
日志信息用来存储所执行的数据操作,在MongoDB系统中,日志称为oplog。MongoDB oplog是一个capped collection(有固定大小的集合),创建capped collection时,createCollection可以设置最大字节数和最大文档数等参数,当这个集合的总大小超过最大字节数或者总文档数超过最大文档数时,在新插入文档时就会自动删除一些集合内最先插入的文档,相当于一片环形的存储空间。oplog(local.oplog.rs集合)默认情况下配置为可用磁盘空间的5%,当oplog写满时,就会开始删除最先写入的oplog,一次正常的insert操作包含如下步骤:将文档写入指定的集合;将写入操作记录到oplog;如果oplog满了,删除最先写入的oplog。由此可见,在MongoDB系统中,源数据库的日志记录的是距离当前时间最近的一段时间内的日志信息。
本方法中,中间件可以指定数据集合,从源数据库中读取指定数据集合对应的oplog。中间件也可以指定时间段,从源数据库中读取指定时间段内的oplog。也即,中间件可以有选择地从源数据库中读取oplog。举例来说,假如目的数据库只需同步源数据库中命名为beijing的数据集合对应的日志,则中间件从源数据库中读取beijing.oplog.rs。假如目的数据库只需同步源数据库最近一天内的日志,则中间件从源数据库中读取最近一天内所产生的日志信息。
本步骤为本实施例的可选步骤。在没有指定数据集合和指定时间段的情况下,中间件可以从源数据库中读取当前所有日志信息。
步骤S203,判断数据操作是否为敏感操作,若是,则执行步骤S204;若否,执行步骤S206。
在某些特定情况下,源数据库会产生一些敏感操作,例如删除整个数据库、删除某个数据集合、修改元信息等等,这些敏感操作有可能是误操作。中间件在读取到存储数据操作的日志信息后,对数据操作进行判断,如果判断为敏感操作,可先行等待一段时间,暂时不同步给目的数据库。
步骤S204,等待预设延迟时间。
该预设延迟时间可根据实际经验来设定,本发明对此不作限制。
步骤S205,在等待过程中,若从源数据库读取到撤销执行数据操作的日志信息,则丢弃撤销执行数据操作的日志信息和对应的所述执行数据操作的日志信息。
在等待过程中,若从源数据库读取到撤销执行数据操作的日志信息,则表明之前读取到的敏感操作为误操作,该误操作被撤销,因而,中间件丢弃撤销执行数据操作的日志信息和对应的之前执行数据操作的日志信息,无需将其同步至目的数据库。
通过执行以上步骤S203至步骤S205,使得中间件可对一些特定情况执行特定处理,避免了将误操作的日志信息同步给目的数据库,使目的数据库的性能受到影响。
步骤S206,将读取的日志信息保存到本地。
本实施例中,中间件可将从源数据库中读取的日志信息保存到本地,相当于对源数据库的日志信息进行备份。从上面的描述可知,在MongoDB系统中,源数据库的日志记录的是距离当前时间最近的一段时间内的日志信息。如果源数据库出现问题导致整个数据库数据丢失时,仅仅通过源数据库的日志无法恢复全部数据。在这种情况下,中间件保存到本地的日志信息可用来辅助源数据库恢复数据。当然,此种情况下,中间件应该保证实时读取源数据库的所有日志信息,而非仅读取指定数据集合的日志信息或指定时间段内的日志信息。
步骤S207,对日志信息进行解析,按照设定规则对日志信息的相关字段进行修改。
本实施例中间件还具有修改日志信息的功能,相关修改的设定规则可根据目的数据库的需求灵活设置。举例来说,目的数据库需要将源数据库的beijing.oplog.rs拷贝成shanghai.oplog.rs,日志信息内容一致,但命名不同。对应的,中间件可设置修改命名的设定规则,中间件对beijing.oplog.rs的日志信息进行解析,查找到命名字段,将命名字段统一替换为新的命名shanghai。经过修改后,写入到目的数据库的日志信息的命名均为shanghai。
中间件还可对日志信息的其它相关字段进行修改,以符合目的数据库的需求,本发明对此相关字段不作限制。
步骤S208,判断源数据库和目的数据库的版本信息是否一致,若是,执行步骤S210;若否,执行步骤S209。
在某些情况下,源数据库和目的数据库之间的版本不同,导致其日志之间存在差异。以MongoDB为例,对于一些管理命令,一些版本中将其置入admin数据库中,而另一些版本将其置入各个数据库中。
考虑到版本之间的兼容问题,中间件可预先获知不同版本的差异信息,通过相关处理消除版本之间的差异问题。中间件判断源数据库和目的数据库的版本信息是否一致,若不一致,则执行步骤S209。
步骤S209,对日志信息进行解析,按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
中间件所读取的日志信息是符合源数据库的版本要求的日志信息,中间件对其进行解析,利用预先获知的不同版本的差异信息,按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
步骤S210,将日志信息分配给与目的数据库建立连接的线程。
中间件内部预先创建了用于处理日志信息的线程,该线程与目的数据库之前建立有用于写入日志信息的连接。具体地,目的数据库开设一日志写入端口,中间件的线程访问该日志写入端口向目的数据库写入日志信息。
步骤S211,由线程将日志信息写入目的数据库。
利用所建立的连接,中间件的线程将日志信息写入目的数据库,具体地线程访问目的数据库为其开设的日志写入端口向目的数据库写入日志信息。
利用本实施例提供的日志同步方法,首先与源数据库建立连接,从源数据库中读取日志信息;将日志信息分配给与目的数据库建立连接的线程,由线程将日志信息写入目的数据库。由于利用了中间件,源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。进一步的,中间件可从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息同步给目的数据库,增加了空间/时间的灵活性;中间件可对一些特定情况执行特定处理,避免了将误操作的日志信息同步给目的数据库,使目的数据库的性能受到影响;另外,中间件还可根据目的数据库的需求灵活设置一些设定规则,提供修改日志信息的功能,而且,中间件还可改善不同数据库版本之间的兼容问题,进一步提升了日志同步的可扩展性。
图3示出了根据本发明一个实施例的日志同步装置的功能框图。如图3所示,该装置包括:日志读取模块301和线程处理模块302。
日志读取模块301,适于与源数据库建立连接,从源数据库中读取日志信息,将日志信息分配给线程处理模块302。
日志读取模块301预先与源数据库建立用于读取日志信息的连接。一般情况下,日志读取模块301与源数据库之间建立一条用于读取日志信息的连接,即可满足中间件的处理需求。所谓建立连接具体为源数据库开设一个日志读取端口,日志读取模块301通过访问该日志读取端口的方式读取日志信息。
线程处理模块302,适于与目的数据库建立连接,将所述日志信息写入目的数据库。
日志读取模块301进一步适于:从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。以MongoDB为例,日志读取模块301可以指定数据集合,从源数据库中读取指定数据集合对应的oplog。日志读取模块301也可以指定时间段,从源数据库中读取指定时间段内的oplog。也即,日志读取模块301可以有选择地从源数据库中读取oplog。举例来说,假如目的数据库只需同步源数据库中命名为beijing的数据集合对应的日志,则日志读取模块301从源数据库中读取beijing.oplog.rs。假如目的数据库只需同步源数据库最近一天内的日志,则日志读取模块301从源数据库中读取最近一天内所产生的日志信息。
进一步的,该装置还可包括:解析模块303和处理模块304。
解析模块303,适于对日志信息进行解析。处理模块304,适于按照设定规则对日志信息的相关字段进行修改。
本装置还具有修改日志信息的功能,相关修改的设定规则可根据目的数据库的需求灵活设置。举例来说,目的数据库需要将源数据库的beijing.oplog.rs拷贝成shanghai.oplog.rs,日志信息内容一致,但命名不同。对应的,该装置可设置修改命名的设定规则,解析模块303对beijing.oplog.rs的日志信息进行解析,查找到命名字段,处理模块304将命名字段统一替换为新的命名shanghai。经过修改后,写入到目的数据库的日志信息的命名均为shanghai。
进一步的,该装置还可包括:第一判断模块305,适于判断源数据库和目的数据库的版本信息是否一致。
解析模块303还适于若第一判断模块305判断出源数据库和目的数据库的版本信息不一致,则对日志信息进行解析。
处理模块304还适于按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
进一步的,该装置还可包括:保存模块306,适于将读取的日志信息保存到本地。
该装置可将从源数据库中读取的日志信息保存到本地,相当于对源数据库的日志信息进行备份。从上面的描述可知,在MongoDB系统中,源数据库的日志记录的是距离当前时间最近的一段时间内的日志信息。如果源数据库出现问题导致整个数据库数据丢失时,仅仅通过源数据库的日志无法恢复全部数据。在这种情况下,装置保存到本地的日志信息可用来辅助源数据库恢复数据。当然,此种情况下,该装置应该保证实时读取源数据库的所有日志信息,而非仅读取指定数据集合的日志信息或指定时间段内的日志信息。
日志读取模块301进一步适于:从源数据库中读取执行数据操作的日志信息。
进一步的,该装置还可包括:等待模块307和丢弃模块308。
等待模块307,适于等待预设延迟时间。
丢弃模块308,适于在等待过程中,若日志读取模块301从源数据库读取到撤销执行数据操作的日志信息,则丢弃执行数据操作的日志信息和撤销执行数据操作的日志信息。
进一步的,该装置还可包括:第二判断模块309,适于判断数据操作是否为敏感操作,其中敏感操作包含删除整个数据库、删除某个数据集合、修改元信息等等;等待模块307具体适于:若第二判断模块309判断出数据操作为敏感操作,则等待预设延迟时间。
利用本实施例提供的日志同步装置,首先与源数据库建立连接,从源数据库中读取日志信息;将日志信息分配给与目的数据库建立连接的线程,由线程将日志信息写入目的数据库。由于利用了日志同步装置(相当于中间件),源数据库和目的数据库之间并未直接建立连接,不会改变分布式系统中数据库之间的连接关系,因而不会触发因新建连接而导致的主数据库选举机制,也就不会引起因主数据块选举机制导致的数据库性能受影响的问题。进一步的,本装置可从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息同步给目的数据库,增加了空间/时间的灵活性;本装置可对一些特定情况执行特定处理,避免了将误操作的日志信息同步给目的数据库,使目的数据库的性能受到影响;另外,本装置还可根据目的数据库的需求灵活设置一些设定规则,提供修改日志信息的功能,而且,本装置还可改善不同数据库版本之间的兼容问题,进一步提升了日志同步的可扩展性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的日志同步装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
A1、一种日志同步方法,其包括:
与源数据库建立连接;
从源数据库中读取日志信息;
将日志信息分配给与目的数据库建立连接的线程;
由所述线程将所述日志信息写入目的数据库。
A2、根据A1所述的方法,其中,所述从源数据库中读取日志信息进一步包括:
从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。
A3、根据A1或A2所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:对所述日志信息进行解析,按照设定规则对日志信息的相关字段进行修改。
A4、根据A1所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:
判断源数据库和目的数据库的版本信息是否一致;
若不一致,则对日志信息进行解析,按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
A5、根据A1所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:
将读取的日志信息保存到本地。
A6、根据A1所述的方法,其中,所述从源数据库中读取日志信息具体为:从源数据库中读取执行数据操作的日志信息;
在所述从源数据库中读取执行数据操作的日志信息之后,所述方法还包括:
等待预设延迟时间;
在等待过程中,若从源数据库读取到撤销执行数据操作的日志信息,则丢弃撤销执行数据操作的日志信息和对应的所述执行数据操作的日志信息。
A7、根据A6所述的方法,其中,在所述等待预设延迟时间之前,所述方法还包括:判断数据操作是否为敏感操作;
所述等待预设延迟时间具体为:若判断出所述数据操作为敏感操作,则等待预设延迟时间。
本发明还公开了:B8、一种日志同步装置,其包括:
日志读取模块,适于与源数据库建立连接,从源数据库中读取日志信息,将日志信息分配给线程处理模块;
线程处理模块,适于与目的数据库建立连接,将所述日志信息写入目的数据库。
B9、根据B8所述的装置,其中,所述日志读取模块进一步适于:从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。
B10、根据B8或B9所述的装置,其中,所述装置还包括:
解析模块,适于对所述日志信息进行解析;
处理模块,适于按照设定规则对日志信息的相关字段进行修改。
B11、根据B8所述的装置,其中,所述装置还包括:
第一判断模块,适于判断源数据库和目的数据库的版本信息是否一致;
解析模块,适于若所述第一判断模块判断出源数据库和目的数据库的版本信息不一致,则对日志信息进行解析;
处理模块,适于按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
B12、根据B8所述的装置,其中,所述装置还包括:保存模块,适于将读取的日志信息保存到本地。
B13、根据B8所述的装置,其中,所述日志读取模块进一步适于:从源数据库中读取执行数据操作的日志信息;
所述装置还包括:
等待模块,适于等待预设延迟时间;
丢弃模块,适于在等待过程中,若所述日志读取模块从源数据库读取到撤销执行数据操作的日志信息,则丢弃所述执行数据操作的日志信息和撤销执行数据操作的日志信息。
B14、根据B13所述的装置,所述装置还包括:第二判断模块,适于判断数据操作是否为敏感操作;
所述等待模块具体适于:若所述第二判断模块判断出所述数据操作为敏感操作,则等待预设延迟时间。

Claims (10)

1.一种日志同步方法,其包括:
与源数据库建立连接;
从源数据库中读取日志信息;
将日志信息分配给与目的数据库建立连接的线程;
由所述线程将所述日志信息写入目的数据库。
2.根据权利要求1所述的方法,其中,所述从源数据库中读取日志信息进一步包括:
从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。
3.根据权利要求1或2所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:对所述日志信息进行解析,按照设定规则对日志信息的相关字段进行修改。
4.根据权利要求1所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:
判断源数据库和目的数据库的版本信息是否一致;
若不一致,则对日志信息进行解析,按照目的数据库的版本信息对日志信息进行处理,得到符合目的数据库的版本要求的日志信息。
5.根据权利要求1所述的方法,其中,在所述从源数据库中读取日志信息之后,所述方法还包括:
将读取的日志信息保存到本地。
6.根据权利要求1所述的方法,其中,所述从源数据库中读取日志信息具体为:从源数据库中读取执行数据操作的日志信息;
在所述从源数据库中读取执行数据操作的日志信息之后,所述方法还包括:
等待预设延迟时间;
在等待过程中,若从源数据库读取到撤销执行数据操作的日志信息,则丢弃撤销执行数据操作的日志信息和对应的所述执行数据操作的日志信息。
7.根据权利要求6所述的方法,其中,在所述等待预设延迟时间之前,所述方法还包括:判断数据操作是否为敏感操作;
所述等待预设延迟时间具体为:若判断出所述数据操作为敏感操作,则等待预设延迟时间。
8.一种日志同步装置,其包括:
日志读取模块,适于与源数据库建立连接,从源数据库中读取日志信息,将日志信息分配给线程处理模块;
线程处理模块,适于与目的数据库建立连接,将所述日志信息写入目的数据库。
9.根据权利要求8所述的装置,其中,所述日志读取模块进一步适于:从源数据库中读取指定数据集合对应的日志信息和/或指定时间段内的日志信息。
10.根据权利要求8或9所述的装置,其中,所述装置还包括:
解析模块,适于对所述日志信息进行解析;
处理模块,适于按照设定规则对日志信息的相关字段进行修改。
CN201611221452.8A 2016-12-26 2016-12-26 日志同步方法及装置 Pending CN106649756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611221452.8A CN106649756A (zh) 2016-12-26 2016-12-26 日志同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611221452.8A CN106649756A (zh) 2016-12-26 2016-12-26 日志同步方法及装置

Publications (1)

Publication Number Publication Date
CN106649756A true CN106649756A (zh) 2017-05-10

Family

ID=58831383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611221452.8A Pending CN106649756A (zh) 2016-12-26 2016-12-26 日志同步方法及装置

Country Status (1)

Country Link
CN (1) CN106649756A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008921A (zh) * 2017-12-26 2018-05-08 北京百度网讯科技有限公司 分布式存储环境下的复制数据的方法及服务器
CN109830106A (zh) * 2019-03-15 2019-05-31 天津自贸试验区蓝高科技有限公司 一种快速采集车辆外观信息的方法
CN110019498A (zh) * 2017-08-14 2019-07-16 北京京东尚科信息技术有限公司 日志同步方法及装置、存储介质、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN104506496A (zh) * 2014-12-10 2015-04-08 山大地纬软件股份有限公司 基于Oracle Streams技术的准实时数据增量分发中间件及方法
CN105824865A (zh) * 2015-12-09 2016-08-03 广东亿迅科技有限公司 一种分布式数据库间数据同步系统
CN105930493A (zh) * 2016-05-04 2016-09-07 北京思特奇信息技术股份有限公司 一种不同数据库间数据同步的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129478A (zh) * 2011-04-26 2011-07-20 广州从兴电子开发有限公司 数据库同步方法及系统
CN104506496A (zh) * 2014-12-10 2015-04-08 山大地纬软件股份有限公司 基于Oracle Streams技术的准实时数据增量分发中间件及方法
CN105824865A (zh) * 2015-12-09 2016-08-03 广东亿迅科技有限公司 一种分布式数据库间数据同步系统
CN105930493A (zh) * 2016-05-04 2016-09-07 北京思特奇信息技术股份有限公司 一种不同数据库间数据同步的方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019498A (zh) * 2017-08-14 2019-07-16 北京京东尚科信息技术有限公司 日志同步方法及装置、存储介质、电子设备
CN110019498B (zh) * 2017-08-14 2022-04-12 北京京东尚科信息技术有限公司 日志同步方法及装置、存储介质、电子设备
CN108008921A (zh) * 2017-12-26 2018-05-08 北京百度网讯科技有限公司 分布式存储环境下的复制数据的方法及服务器
CN108008921B (zh) * 2017-12-26 2019-06-25 北京百度网讯科技有限公司 分布式存储环境下的复制数据的方法及服务器
CN109830106A (zh) * 2019-03-15 2019-05-31 天津自贸试验区蓝高科技有限公司 一种快速采集车辆外观信息的方法

Similar Documents

Publication Publication Date Title
US8370311B2 (en) Using versioning to back up multiple versions of a stored object
US20030055828A1 (en) Methods for synchronizing on-line and off-line transcript projects
US20180375875A1 (en) Access control for database
CN106933703A (zh) 一种数据库数据备份的方法、装置及电子设备
CN110659256A (zh) 多机房同步方法、计算设备及计算机存储介质
CN108156030B (zh) 一种配置策略同步的方法及装置
CN106649756A (zh) 日志同步方法及装置
CN108536745A (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
US9037539B2 (en) Data synchronization
CN104834749A (zh) 一种移动终端与pc端的文件同步方法及同步系统
CN106155838A (zh) 一种数据库备份数据恢复方法及装置
CN104462342B (zh) 数据库快照同步处理方法及装置
KR101588375B1 (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
CN108279905A (zh) 一种组件中引入库文件的方法及装置
WO2017067397A1 (zh) 一种数据恢复方法和装置
CN106557572A (zh) 一种安卓应用程序文件的提取方法及系统
CN109918439A (zh) 数据同步方法及其应用的环路检测方法和相关装置
CN108256019A (zh) 数据库主键生成方法、装置、设备及其存储介质
CN105045728B (zh) 一种本地缓存方法
CN111026764B (zh) 一种数据存储方法、装置、电子产品及存储介质
US7600149B2 (en) Failure transparency for update applications under single-master configuration
JP2003281118A (ja) 文書管理装置、文書編集装置、文書管理方法、文書編集方法及びプログラム
CN115328922B (zh) 用于单向链表的数据管理方法、装置及系统
CN105095015B (zh) 一种磁盘快照的建立方法及装置
CN109460385B (zh) 一种电子政务系统留痕的数据存取方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170510