首页 / 专利库 / 电脑编程 / 算法 / 一种监听数据库日志的方法和装置

一种监听数据库日志的方法和装置

阅读:549发布:2023-05-26

专利汇可以提供一种监听数据库日志的方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种监听 数据库 日志的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据第一从库最新生成的日志确定信息指纹;根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的 位置 ;从所述位置监听第二从库的日志。该实施方式克服 现有技术 在切换监听从属数据库的日志时,效率低、不能无缝监听的技术 缺陷 ,进而达到无缝监听数据库、提高切换监听从库时监听效率的有益效果。,下面是一种监听数据库日志的方法和装置专利的具体信息内容。

1.一种监听数据库日志的方法,其特征在于,包括:
根据第一从库最新生成的日志确定信息指纹;
根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置
从所述位置监听第二从库的日志。
2.根据权利要求1所述的方法,其特征在于,所述信息指纹是由日志中提取的一组词、或日志中提取的一组词和每个词的权重,通过提取算法确定。
3.根据权利要求2所述的方法,其特征在于,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
4.根据权利要求1-3之一所述的方法,其特征在于,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
获取第二从库中的日志;
将第二从库中的日志与信息指纹逐一比对;
当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
5.一种监听数据库日志的装置,其特征在于,包括:
指纹确定模,用于根据第一从库最新生成的日志确定信息指纹;
位置确定模块,用于根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置;
监听模块,用于从所述位置监听第二从库的日志。
6.根据权利要求5所述的装置,其特征在于,所述信息指纹是由日志中提取的一组词、或日志中提取的一组词和每个词的权重,通过提取算法确定。
7.根据权利要求6所述的装置,其特征在于,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
8.根据权利要求5-7之一所述的装置,其特征在于,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
获取第二从库中的日志;
将第二从库中的日志与信息指纹逐一比对;
当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
9.一种监听数据库日志装置,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。

说明书全文

一种监听数据库日志的方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种监听数据库日志的方法和装置。

背景技术

[0002] 当现有技术在监听数据库中一个从库的日志时,若出现该从库宕机的情况,往往多载入监听部分的日志文件,切换从属数据库后重复监听,达到不丢失消息的技术效果。
[0003] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
[0004] 1.重复监听载入部分的日志文件,导致效率低的技术缺陷
[0005] 2.不能做到无缝监听,可能产生重复消息的技术缺陷。

发明内容

[0006] 有鉴于此,本发明实施例提供一种监听数据库日志的方法,能够克服现有技术在切换监听从属数据库的日志时效率低、不能无缝监听的技术缺陷,进而达到无缝监听数据库、提高切换监听从库效率的有益效果。
[0007] 为实现上述目的,根据本发明实施例的一个方面,提供了一种监听数据库日志的方法,包括:
[0008] 根据第一从库最新生成的日志确定信息指纹;
[0009] 根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置
[0010] 从所述位置监听第二从库的日志。
[0011] 可选地,所述信息指纹是由日志中提取的一组词、或日志中提取
[0012] 的一组词和每个词的权重,通过提取算法确定。
[0013] 可选地,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
[0014] 可选地,根据所述信息指纹,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
[0015] 获取第二从库中的日志;
[0016] 将第二从库中的日志与信息指纹逐一比对;
[0017] 当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
[0018] 根据本发明实施例的再一个方面,提供一种监听数据库日志的装置,包括:
[0019] 指纹确定模,用于根据第一从库最新生成的日志确定信息指纹;
[0020] 位置确定模块,用于根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置;
[0021] 监听模块,用于从所述位置监听第二从库的日志。
[0022] 可选地,所述信息指纹是由日志中提取的一组词、或日志中提取的一组词和每个词的权重,通过提取算法确定。
[0023] 可选地,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
[0024] 可选地,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
[0025] 获取第二从库中的日志;
[0026] 将第二从库中的日志与信息指纹逐一比对;
[0027] 当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
[0028] 根据本发明实施例的另一个方面,提供一种监听数据库日志的电子设备,包括:
[0029] 一个或多个处理器;
[0030] 存储装置,用于存储一个或多个程序,
[0031] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明监听数据库日志的方法。
[0032] 根据本发明实施例的另一个方面,提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明监听数据库日志的方法。
[0033] 上述发明中的一个实施例具有如下优点或有益效果:
[0034] 本发明通过利用信息指纹确定第二从库中与第一从库最新生成的日志对应位置,方便后续从匹配的位置之后继续监听日志的技术手段,克服了现有技术在切换监听的从属数据库时不能无缝监听的技术缺陷,达到了无需重复监听日志、提高切换监听从属数据库时效率的有益效果。
[0035] 上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明
[0036] 附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0037] 图1是根据本发明实施例的监听数据库日志的方法的主要流程的示意图;
[0038] 图2是根据本发明实施例的监听数据库日志的方法的具体实施例的示意图;
[0039] 图3是根据本发明实施例的监听数据库日志的装置的主要模块的示意图;
[0040] 图4是本发明实施例可以应用于其中的示例性系统架构图;
[0041] 图5是适于用来实现本发明实施例的终端设备或服务器计算机系统的结构示意图。

具体实施方式

[0042] 以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0043] 图1是根据本发明实施例的监听数据库日志的方法的主要流程的示意图,如图1所示,
[0044] 步骤S101、根据第一从库最新生成的日志确定信息指纹;
[0045] 步骤S102、根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置;
[0046] 步骤S103、从所述位置监听第二从库的日志。
[0047] 在关系型数据库中,实行一主多从模式,即一个主库,多个从属数据库(简称:从库),主从之间依赖日志进行记录关系型数据库内部的主从复制以及增量恢复。日志严格按照顺序存储及复制,如果顺序错误可能造成日志记录的数据不一致的情况发生。然而日志在每个从属数据库不同时刻所对应的位置(position)都是自增量,故无法依据在不同从库中的位置直接找到内容相同的日志。
[0048] 本发明的目的在于:当不能继续监听原本的从属数据库时,无缝监听其他从属数据库的日志,达到降低现有技术在监听数据库的日志时效率低、不能无缝监听的技术缺陷。
[0049] 所述第一从库是指关系型数据库中原始被监听的从属数据库;
[0050] 所述第二从库是指除原始被监听的从属数据库之外的其他一个从属数据库或主库。
[0051] 所述信息指纹是指从第一从库最新生成的日志中提取的特征信息,能够代表该最新的日志,但不能代表其他日志。在第二从库的日志匹配到所述信息指纹后,就可以确定该日志的位置,进而方便后续继续监听第二从库所述位置后的日志。
[0052] 本发明通过利用信息指纹,确定第一从库最新生成的日志在第二从库对应的位置的技术手段,达到方便后续从匹配的位置之后继续监听日志的技术效果,克服了现有技术在确定数据库监听日志时需要获取重复的日志,导致不能无缝监听的技术缺陷。由于本发明可以达到无缝监听的技术效果,无需重复监听日志,进而达到提高切换监听从属数据库效率的有益效果。
[0053] 可选地,所述信息指纹是由日志中提取的一组词、或日志中提取的一组词和每个词的权重,通过提取算法确定。
[0054] 由于日志具有不变性,提取日志的特征信息可以方便在第二从库中识别出与第一从库最新生成的日志对应的日志。通过在第一从库中对最新的日志提取信息指纹,使得仅用信息指纹就可以在第二从库中查询对应的日志,克服了现有技术需要重新监听大量重复日志的技术缺陷,进而达到节约查询成本、提高查询效率的技术效果。
[0055] 可选地,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
[0056] 通过采用MD5(Message Digest Algorithm 5,信息-摘要算法5)、Sha1算法(Secure Hash Algorithm,安全哈希算法)、或布隆过滤器算法可以用于确保生成的信息指纹的一致性。
[0057] 可选地,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
[0058] 获取第二从库中的日志;
[0059] 将第二从库中的日志与信息指纹逐一比对;
[0060] 当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
[0061] 相同的日志在不同的从属数据库的位置不同,故在第二从库中定位所述指纹信息时,需要根据生成的信息指纹逐条对比,在第二从库中确定与第一从库最新生成的日志相对应日志,进而在第二从库中确定匹配的位置,达到精确定位的技术效果。由于在第二从库确定了匹配日志的位置,就可以从匹配位置后面的日志开始监听,进而达到无缝监听的技术效果。
[0062] 下面以一具体实施例详细说明本方法。
[0063] 图2是根据本发明实施例的监听数据库日志的方法的具体实施例的示意图。如图2所示,假设一种行取款时发送短信的服务器需要通过监听MySQL数据库的二进制日志(binlog)确定短信的发送。图中的从1、从2、从3、从4代表四个从库。可以先将该服务器伪装成从5监听从4的二进制日志。但是当从4突然宕机,所述服务器不得不监听其他从库或主库的二进制日志。在本实施例中,假设切换为监听从2的二进制日志。如图2所示,每一个从库中代表二进制日志的“Update set row1”相同;而每一从库在表达同一个二进制日志时的位置(position)不同,每一时刻数据库中的数据都有可能改写。故可以利用该服务器中最新获取的二进制日志确定信息指纹,然后在从2中查询与所述信息指纹对应的日志,进而确定所述信息指纹对应日志的位置。当确定从2中对应的位置后,从该位置继续监听后续的二进制日志,进而达到无缝监听的技术效果。其中,本实施例所用的提取信息指纹的方法为MD5,实施该代码的语言为Java。具体代码如下:
[0064] MessageDigest md5=MessageDigest.getInstance("MD5");
[0065] byte[]bytes=md5.digest(binlog.getBytes());
[0066] 上述代码的可以理解为:MessageDigest为Java中的一个类;MessageDigest.getInstance("MD5")为获取MD5算法的实例,可以认为创造了一个工具;
md5.digest(binlog.getBytes())中,binlog.getBytes()为mysql变更的二进制日志。通过上述创建的工具对二进制日志进行处理,得出信息指纹。
[0067] 根据本发明实施例的再一个方面,提供一种监听数据库日志的装置300,包括:
[0068] 模块301、指纹确定模块,用于根据第一从库最新生成的日志确定信息指纹;
[0069] 模块302、位置确定模块,用于根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置;
[0070] 模块303、监听模块,用于从所述位置监听第二从库的日志。
[0071] 可选地,所述信息指纹是由日志中提取的一组词、或日志中提取的一组词和每个词的权重,通过提取算法确定。
[0072] 可选地,所述算法包括:MD5、Sha1算法、或布隆过滤器算法。
[0073] 可选地,根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置,包括:
[0074] 获取第二从库中的日志;
[0075] 将第二从库中的日志与信息指纹逐一比对;
[0076] 当确定第二从库中的一条日志与述信息指纹匹配,则将第二从库中所述日志对应的位置确定为第一从库最新生成的日志对应第二从库中的位置。
[0077] 图4示出了可以应用本发明实施例的监听数据库日志的方法或监听数据库日志的装置的示例性系统架构400。
[0078] 如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0079] 用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
[0080] 终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0081] 服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
[0082] 需要说明的是,本发明实施例所提供的监听数据库日志的方法一般由服务器405执行,相应地,监听数据库日志的装置一般设置于服务器405中。
[0083] 应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0084] 下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0085] 如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
[0086] 以下部件连接至I/O接口505:包括键盘鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
[0087] 特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
[0088] 需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0089] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0090] 描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
[0091] 作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
[0092] 根据第一从库最新生成的日志确定信息指纹;
[0093] 根据所述信息指纹,确定所述第一从库最新生成的日志对应第二从库中的位置;
[0094] 从所述位置监听第二从库的日志。
[0095] 根据本发明实施例的技术方案,可以达到如下有益效果:
[0096] 本发明通过利用信息指纹确定第二从库中与第一从库最新生成的日志对应位置,方便后续从匹配的位置之后继续监听的技术手段,克服了现有技术不能无缝监听的技术缺陷,达到了无需重复监听日志、不会产生重复消息、提高切换监听从属数据库时效率的有益效果。
[0097] 上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈