一种解析数据库日志中事务分布的方法、系统及装置制造方法及图纸

技术编号:29304508 阅读:18 留言:0更新日期:2021-07-17 01:41
本发明专利技术公开了一种解析数据库日志中事务分布的方法、系统及装置,获取数据库对应的二进制日志文件,并将二进制日志文件的二进制内容进行自主解析,得到二进制日志文件的解析文本;在对二进制内容进行解析的过程中,根据表征各事务分布情况的关键字,自主得到二进制日志文件对应的各事务的分布信息;按照预设大事务区分规则,从各事务的分布信息中自主区分出大事务的分布信息,以便基于大事务的分布信息优化数据库中大事务的处理。可见,本申请可自动解析数据库对应的二进制日志文件,并自动分析出日志文件中大事务的分布信息,从而提高了日志分析效率,同时本申请基于大事务的分布信息优化数据库中大事务的处理,有助于提高数据库性能。库性能。库性能。

【技术实现步骤摘要】
一种解析数据库日志中事务分布的方法、系统及装置


[0001]本专利技术涉及数据库性能优化领域,特别是涉及一种解析数据库日志中事务分布的方法、系统及装置。

技术介绍

[0002]MySQL binlog是一种不可读的二进制日志文件,主要用于记录MySQL(一种大型数据库)内部的增删改查等更新数据库内容的操作。目前,对binlog中的事务进行分析对MySQL性能起着重要的作用,主要是binlog中的大事务(指的是在MySQL中运行时间较长、长时间未提交的事务),这是因为大事务的运行会长时间占用系统资源,导致事务大量阻塞,严重影响数据库的性能;且在主从数据库同步过程中,大事务也是造成主从延迟最常见的一个原因。
[0003]现有技术中,分析MySQL binlog中事务的方法为:利用MySQL自带的mysqlbinlog工具或第三方的开发工具(binlog2sql、myflash等工具),将binlog解析成可读的文本文件,供用户查看,以通过人工分析可读的文本文件得到binlog中事务的分布情况,并从中确定出大事务的分布情况及相关信息,从而为优化大事务的处理提供依据,有助于提高数据库性能。但是,人工分析文本文件所花费的时间较长,导致日志分析效率较低。
[0004]因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。

技术实现思路

[0005]本专利技术的目的是提供一种解析数据库日志中事务分布的方法、系统及装置,可自动解析数据库对应的二进制日志文件,并自动分析出日志文件中大事务的分布信息,从而提高了日志分析效率,同时本申请基于大事务的分布信息优化数据库中大事务的处理,有助于提高数据库性能。
[0006]为解决上述技术问题,本专利技术提供了一种解析数据库日志中事务分布的方法,包括:
[0007]获取数据库对应的二进制日志文件,并将所述二进制日志文件的二进制内容进行自主解析,得到所述二进制日志文件的解析文本;
[0008]在对所述二进制内容进行解析的过程中,根据表征各事务分布情况的关键字,自主得到所述二进制日志文件对应的各事务的分布信息;
[0009]按照预设大事务区分规则,从各事务的分布信息中自主区分出大事务的分布信息,以便基于所述大事务的分布信息优化所述数据库中大事务的处理。
[0010]优选地,获取数据库对应的二进制日志文件的过程,包括:
[0011]监控数据库对应的二进制日志文件的索引文件是否发生改变;
[0012]若是,则触发发生改变前的索引文件对应的本地二进制日志文件的备份,并将备份的二进制日志文件传输至远端,以便在远端获取数据库对应的二进制日志文件,而后在
远端执行解析获取的二进制日志文件中事务分布的操作。
[0013]优选地,将备份的二进制日志文件传输至远端的过程,包括:
[0014]将备份的二进制日志文件以数据块为单位传输至远端;
[0015]且所述解析数据库日志中事务分布的方法还包括:
[0016]根据哈希算法计算未传输至远端的目标数据块的第一哈希值;其中,所述目标数据块为任一数据块;
[0017]在所述目标数据块传输至远端后,根据哈希算法计算远端接收的目标数据块的第二哈希值;
[0018]在备份的二进制日志文件对应的最后一个数据块传输至远端后,判断所述目标数据块的第一哈希值与其第二哈希值是否一致;
[0019]若所有数据块均一致,则确定备份的二进制日志文件在传输过程中未损坏;否则,则确定备份的二进制日志文件在传输过程中损坏。
[0020]优选地,将所述二进制日志文件的二进制内容进行自主解析,得到所述二进制日志文件的解析文本的过程,包括:
[0021]将所述二进制日志文件分解成多个二进制文件,并将各二进制文件均转换为可读二进制文件,以读取各可读二进制文件的二进制内容;
[0022]根据二进制文本对应关系,对各可读二进制文件的二进制内容进行翻译,得到各可读二进制文件的翻译文本;
[0023]将各可读二进制文件的翻译文本进行合并,得到所述二进制日志文件的解析文本。
[0024]优选地,根据表征各事务分布情况的关键字,自主得到所述二进制日志文件对应的各事务的分布信息的过程,包括:
[0025]根据表征各事务开始的关键字及表征各事务结束的关键字,相应计算各事务的大小;
[0026]根据表征各事务开始时间的关键字及表征各事务结束时间的关键字,相应计算各事务的开始时间及结束时间;
[0027]根据表征各事务id信息的GTID号,计算事务的总数量;
[0028]根据表征各事务开始位置的关键字及表征各事务结束位置的关键字,相应计算各事务的开始位置及结束位置;
[0029]将各事务计算得到的信息进行汇总,得到各事务的分布信息。
[0030]优选地,所述解析数据库日志中事务分布的方法还包括:
[0031]根据大事务的开始位置及结束位置,从所述解析文本中摘取出所述大事务对应的SQL内容;
[0032]将事务的总数量、大事务的总数量、大事务的分布信息及其对应的SQL内容、大事务的优化处理建议进行可视化展示。
[0033]优选地,预设大事务区分规则的设置过程,包括:
[0034]获取用于监控数据库的服务器的CPU平均使用率、数据库的QPS信息及数据库的平均主从延迟时间;
[0035]判断所述CPU平均使用率是否超过预设使用率阈值、所述QPS信息是否超过预设数
量阈值、所述平均主从延迟时间是否超过预设时间阈值;
[0036]若所述CPU平均使用率超过预设使用率阈值和/或所述QPS信息超过预设数量阈值和/或所述平均主从延迟时间超过预设时间阈值,则将事务大小大于预设第一阈值且执行时间超过预设第一时间阈值的事务作为大事务;否则,将事务大小大于预设第二阈值且执行时间超过预设第二时间阈值的事务作为大事务;其中,预设第一阈值小于预设第二阈值;预设第一时间阈值小于预设第二时间阈值。
[0037]优选地,获取用于监控数据库的服务器的CPU平均使用率、数据库的QPS信息及数据库的平均主从延迟时间的过程,包括:
[0038]根据busy=(CPU1+CPU2+

CPUn)/count1计算用于监控数据库的服务器的CPU平均使用率;其中,busy为CPU平均使用率;CPUn为第n次采集的所述服务器的CPU使用率;count1为CPU使用率的总采集次数;
[0039]根据QPS=(com_delete+com_insert+com_update)/diff_time计算数据库的QPS信息;其中,QPS为数据库每秒提交的事务数量;com_delete为数据库每秒的数据删除次数,是一个累积值;com_insert为数据库每秒的数据插入次数,是一个累积值;com_update为数据库每秒的数据更新次数,是一个累积值;diff_time为时间差;
...

【技术保护点】

【技术特征摘要】
1.一种解析数据库日志中事务分布的方法,其特征在于,包括:获取数据库对应的二进制日志文件,并将所述二进制日志文件的二进制内容进行自主解析,得到所述二进制日志文件的解析文本;在对所述二进制内容进行解析的过程中,根据表征各事务分布情况的关键字,自主得到所述二进制日志文件对应的各事务的分布信息;按照预设大事务区分规则,从各事务的分布信息中自主区分出大事务的分布信息,以便基于所述大事务的分布信息优化所述数据库中大事务的处理。2.如权利要求1所述的解析数据库日志中事务分布的方法,其特征在于,获取数据库对应的二进制日志文件的过程,包括:监控数据库对应的二进制日志文件的索引文件是否发生改变;若是,则触发发生改变前的索引文件对应的本地二进制日志文件的备份,并将备份的二进制日志文件传输至远端,以便在远端获取数据库对应的二进制日志文件,而后在远端执行解析获取的二进制日志文件中事务分布的操作。3.如权利要求2所述的解析数据库日志中事务分布的方法,其特征在于,将备份的二进制日志文件传输至远端的过程,包括:将备份的二进制日志文件以数据块为单位传输至远端;且所述解析数据库日志中事务分布的方法还包括:根据哈希算法计算未传输至远端的目标数据块的第一哈希值;其中,所述目标数据块为任一数据块;在所述目标数据块传输至远端后,根据哈希算法计算远端接收的目标数据块的第二哈希值;在备份的二进制日志文件对应的最后一个数据块传输至远端后,判断所述目标数据块的第一哈希值与其第二哈希值是否一致;若所有数据块均一致,则确定备份的二进制日志文件在传输过程中未损坏;否则,则确定备份的二进制日志文件在传输过程中损坏。4.如权利要求1所述的解析数据库日志中事务分布的方法,其特征在于,将所述二进制日志文件的二进制内容进行自主解析,得到所述二进制日志文件的解析文本的过程,包括:将所述二进制日志文件分解成多个二进制文件,并将各二进制文件均转换为可读二进制文件,以读取各可读二进制文件的二进制内容;根据二进制文本对应关系,对各可读二进制文件的二进制内容进行翻译,得到各可读二进制文件的翻译文本;将各可读二进制文件的翻译文本进行合并,得到所述二进制日志文件的解析文本。5.如权利要求1所述的解析数据库日志中事务分布的方法,其特征在于,根据表征各事务分布情况的关键字,自主得到所述二进制日志文件对应的各事务的分布信息的过程,包括:根据表征各事务开始的关键字及表征各事务结束的关键字,相应计算各事务的大小;根据表征各事务开始时间的关键字及表征各事务结束时间的关键字,相应计算各事务的开始时间及结束时间;根据表征各事务id信息的GTID号,计算事务的总数量;
根据表征各事务开始位置的关键字及表征各事务结束位置的关键字,相应计算各事务的开始位置及结束位置;将各事务计算得到的信息进行汇总,得到各事务的分布信息。6.如权利要求5所述的解析数据库日志中事务分布的方法,其特征在于,所述解析数据库日志中事务分布的方法还包括:根据大事务的开始位置及结束位置,从所述解析文本中摘取出所述大事务对应的SQL内容;将事务的总数量、大事务的总数量、大事务...

【专利技术属性】
技术研发人员:王绍晖
申请(专利权)人:山东英信计算机技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1