一种目标事务的识别方法及装置与流程

文档序号:33157605发布日期:2023-02-04 00:00阅读:22来源:国知局
1.本发明涉及智能运维领域,具体涉及一种目标事务的识别方法及装置。
背景技术
::2.事务是数据库运行中的一个逻辑单位,涉及数据库访问操作以及其他各种数据库操作。3.通常在数据库中运行时间比较长,操作的数据比较多的事务称之为大事务。大事务在数据库中频繁发生会锁定太多数据,造成大量的阻塞和锁超时,回滚需要较长的时间,容易造成主从延迟,甚至触发主数据库和从数据库之间的切换。因此,在应用开发中应尽量避免发生大事务。现有技术中,在数据库运行中定期对大事务进行检查,通过事务的执行时间或者事务的操作更新行数来确定大事务。在实际应用中,上述对大事务检查的方法存在遗漏大事务的情况,因此,如何更可靠地对大事务进行识别成为本领域亟待解决的重要课题。技术实现要素:4.针对现有技术中的问题,本发明实施例提供一种目标事务的识别方法及装置,能够至少部分地解决现有技术中存在的问题。5.第一方面,本发明提出一种目标事务的识别方法,包括:6.接收数据库的日志文件;7.遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;8.若判断获知所述事务的日志偏移量大于第一预设值,则将所述事务识别为大事务。9.进一步地,所述遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量包括:10.获得每个事务的结束位置标识;11.根据当前事务的结束位置标识与当前事务的上一个事务的结束位置标识,获得当前事务的日志偏移量;其中,当前事务为日志文件中除第一个事务以外的任何一个事务。12.进一步地,所述接收数据库的日志文件包括:13.接收多个数据库的日志文件。14.进一步地,本发明实施例提供的目标事务的识别方法还包括:15.若判断获知所述事务的日志偏移量大于第二预设值且小于等于所述第一预设值,则将所述事务识别为风险事务。16.进一步地,本发明实施例提供的目标事务的识别方法还包括:17.若判断获知所述事务的日志偏移量小于等于第三预设值,则将所述事务对应的数据删除。18.进一步地,本发明实施例提供的目标事务的识别方法还包括:19.存储所述大事务对应的日志数据。20.进一步地,所述大事务对应的日志数据包括结构化查询语言语句;相应地,所述存储所述大事务对应的日志数据包括:21.对结构化查询语言语句中的对象数据进行参数化和/或对相同语法结构的结构化查询语言语句进行去重并记录重复次数。22.第二方面,本发明提供一种目标事务的识别装置,包括:23.接收模块,用于接收数据库的日志文件;24.获取模块,用于遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;25.识别模块,用于在判断获知所述事务的日志偏移量大于第一预设值之后,将所述事务识别为大事务。26.第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述目标事务的识别方法。27.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述目标事务的识别方法。28.第五方面,本发明提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述目标事务的识别方法。29.本发明实施例提供的目标事务的识别方法及装置,接收数据库的日志文件,遍历日志文件,获取日志文件中每个事务的日志偏移量,若判断获知事务的日志偏移量大于第一预设值,则将事务识别为大事务,通过日志文件中的事务的日志偏移量进行大事务的识别,提高了大事务识别的可靠性。附图说明30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:31.图1是本发明第一实施例提供的目标事务的识别方法的流程示意图。32.图2是本发明第二实施例提供的目标事务的识别方法的流程示意图。33.图3是本发明第三实施例提供的工具服务器的结构示意图。34.图4是本发明第四实施例提供的目标事务的识别装置的结构示意图。35.图5是本发明第五实施例提供的目标事务的识别装置的结构示意图。36.图6是本发明第六实施例提供的目标事务的识别装置的结构示意图。37.图7是本发明第七实施例提供的目标事务的识别装置的结构示意图。38.图8是本发明第八实施例提供的目标事务的识别装置的结构示意图。39.图9是本发明第九实施例提供的电子设备的实体结构示意图。具体实施方式40.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。41.为了便于理解本技术提供的技术方案,下面先对本技术技术方案的相关内容进行说明。42.为避免生产系统产生大事务,在测试环境中对进行测试时,需要全面地识别大事务,将大事务造成的风险在测试环境识别出来,避免将问题带入到生产系统。为了保证生产系统的安全和稳定,也需要进行大事务的识别,并且大事务的识别不能耗费大量的系统资源,避免影响生产系统的正常使用。因此,本发明实施例提出一种目标事务的识别方法,能够更全面地进行大事务的识别,并且通过部署在单独的服务器上进行大事务的识别,几乎不影响生产系统的正常使用。43.下面以工具服务器作为执行主体为例,对本发明实施例提供的目标事务的识别方法的具体实现过程进行说明。工具服务器即部署了本发明实施例提供的目标事务的识别方法的服务器。44.图1是本发明第一实施例提供的目标事务的识别方法的流程示意图,如图1所示,本发明实施例提供的目标事务的识别方法,包括:45.s101、接收数据库的日志文件;46.具体地,数据库服务器向工具服务器发送数据库的日志文件。工具服务器会接收所述日志文件。其中,数据库的日志文件是数据库的全量日志。47.例如,当前主流数据库为了灾备和事务完整性的需要,会将主数据库的日志文件传输到备份数据库并重新执行,如mysql数据库主从同步机制、db2数据库的qrep工具等。利用上述日志文件的传输方法,可以较方便的获得数据库的全量日志。在本发明实施例中,工具服务器可以通过备份数据库的方式接收日志文件,但不需要进行执行。接收的日志文件可以存储到临时堆栈中。48.s102、遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;49.具体地,所述工具服务器在接收到日志文件之后,会从所述日志文件的第一行开始,遍历所述日志文件,找出所述日志文件中的每个事务,并计算出每个事务的日志偏移量,事务的日志偏移量即事务的大小。事务的日志偏移量的大小与事务处理的数据行数和列数正相关,有利于提高大事务识别的准确性。50.s103、若判断获知所述事务的日志偏移量大于第一预设值,则将所述事务识别为大事务。51.具体地,对于所述日志文件中的每个事务,所述工具服务器将事务的日志偏移量与第一预设值进行比较,如果事务的日志偏移量大于第一预设值,那么将该事务识别为大事务。如果事务的日志偏移量不大于第一预设值,那么该事务不是大事务。对于大事务,所述工具服务器会记录下来,反馈给相关人员进行处理。其中,所述第一预设值根据实际经验进行设置,本发明实施例不做限定。52.本发明实施例提供的目标事务的识别方法,接收数据库的日志文件,遍历日志文件,获取日志文件中每个事务的日志偏移量,若判断获知事务的日志偏移量大于第一预设值,则将事务识别为大事务,通过日志文件中的事务的日志偏移量进行大事务的识别,提高了大事务识别的可靠性。53.现有技术中定期对大事务进行检查,如果在两次检查之间大事务执行完成,那么就会对大事务漏检。操作的数据比较通常以事务的行数为依据,存在事务的行数较多,但实际数据量并不大的情况。而本发明实施例提供的目标事务的识别方法,不存在由于检测时间差对大事务漏检的情况,也不会将行数较多而实际数据量不大事务识别为大事务的情况,因此本发明实施例提供的目标事务的识别方法,相对于现有技术中的大事务的识别方法,对大事务的识别更可靠。54.图2是本发明第二实施例提供的目标事务的识别方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量包括:55.s201、获得每个事务的结束位置标识;56.具体地,事务在日志文件中都有唯一的结束位置标识,所述工具服务器从所述日志文件能够获得每个事务的结束位置标识。事务的结束位置标识,记录了事务在日志中的结束字节。57.s202、根据当前事务的结束位置标识与当前事务的上一个事务的结束位置标识,获得当前事务的日志偏移量;其中,当前事务为日志文件中除第一个事务以外的任何一个事务。58.具体地,对于日志文件中的第一个事务,第一个事务的结束位置标识可以直接作为第一个事务的日志偏移量。从日志文件中的第二个事务开始,计算当前事务的结束位置标识与当前事务的上一个事务的结束位置标识的差值,获得当前事务的日志偏移量。其中,当前事务为日志文件中除第一个事务以外的任何一个事务。59.在上述各实施例的基础上,进一步地,所述接收数据库的日志文件包括:60.接收多个数据库的日志文件。61.具体地,当数据库服务器以集群的形式出现时,数据库集群中的多个数据库服务器向所述工具服务器发送数据库日志文件,所述工具服务器会接收到多个数据库日志文件。为了提高对目标事务的识别效率,所述工具服务器在接收到多个数据库的日志文件之后,可以开启多个线程并行进行目标事务的识别。通过工具服务器对大事务进行识别,可以减少数据库服务器对资源的消耗,基本不会影响数据库服务器的正常使用,不会对正在提供服务的数据库服务器造成负载压力。并且工具服务器可以灵活配置,为不同的数据库服务器提供大事务识别的服务。62.在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别方法还包括:63.若判断获知所述事务的日志偏移量大于第二预设值且小于等于所述第一预设值,则将所述事务识别为风险事务。64.具体地,对于所述日志文件中的每个事务,所述工具服务器将事务的日志偏移量与第一预设值进行比较,如果事务的日志偏移量小于等于所述第一预设值,继续将事务的日志偏移量与第二预设值进行比较,如果事务的日志偏移量大于第二预设值,那么将所述事务识别为风险事务。对于风险事务可以进行密切监控和预防性修改。其中,第二预设值根据实际需要进行设置,本发明实施例不做限定。可理解的是,第二预设值小于第一预设值。65.例如,第一预设值为800m,第二预设值为第一预设值的一半,400m。66.在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别方法还包括:67.若判断获知所述事务的日志偏移量小于等于第三预设值,则将所述事务对应的数据删除。68.具体地,所述工具服务器将事务的日志偏移量与第三预设值进行比较,如果事务的日志偏移量小于等于第三预设值,说明不需要关注该事务,可以将事务对应的数据删除,以节省存储空间。其中,第三预设值根据实际需要进行设置,本发明实施例不做限定。可理解的是,第三预设值小于等于第一预设值。69.例如,如果只关注大事务,那么可以设置第三预设值等于第一预设值,将不是大事务的事务数据删除。70.例如,如果同时关注大事务和风险事务,那么可以设置第三预设值等于第二预设值,保留大事务和风险事务的事务数据,删除既不是大事务也不是风险事务的事务数据。71.在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别方法还包括:72.存储所述大事务对应的日志数据。73.具体地,所述工具服务器在判断出所述事务为大事务之后,会将大事务对应的日志数据存储到本地,以供相关人员查看。74.在上述各实施例的基础上,进一步地,所述大事务对应的日志数据包括结构化查询语言语句;相应地,所述存储所述大事务对应的日志数据包括:75.对结构化查询语言语句中的对象数据进行参数化处理和/或对相同语法结构的结构化查询语言语句进行去重并记录重复次数。76.具体地,所述大事务对应的日志数据包括结构化查询语言(structuredquerylanguage,简称sql)语句。由于大事务通常包括的sql语句较多,全部存储会占用很多空间,并且sql语句中的对象数据以及重复的sql语句对大事务产生原因的分析没有什么帮助。所述工具服务器可以对sql语句中的对象数据进行参数化处理,即将对象数据用预设字符替代,以节省所需的存储空间。对于具有相同语法结构的sql语句,可以只保留一个sql语句,从而节省存储空间。对具有相同语法结构的sql语句的数量进行统计,记录具有相同语法结构的sql语句的重复次数。其中,对象数据是指sql语句中除了sql以外的数据,包括但不限于数据表名称、列名称、字段名称、约束条件等。预设字符根据实际需要进行设置,比如设置为“***”,本发明实施例不做限定。77.例如,sql语句:insertintostudents(姓名,家乡,生日)values(‘小明’,‘xxx’,‘2010-xx-xx’),insertinto和values为sql,students为数据表名称,姓名、家乡和生日为列名称,‘小明’,‘xxx’,‘2010-xx-xx’为各列插入的数据,students(姓名,家乡,生日)和(‘小明’,‘xxx’,‘2010-xx-xx’)都是对象数据,将对象数据用预设字符“***”替代,对上述sql语句中的对象数据进行参数化处理后得到:insertinto***values***。78.例如,某大数据对应的日志数据存在多个创建表结构的语句,如下所示:79.createtable_name180.(字段名1数据类型1约束条件1)81.createtable_name282.(字段名2数据类型2约束条件2)83.createtable_name384.(字段名3数据类型3约束条件3)85.对上述每个sql语句中的对象数据进行参数化处理,获得相同语法结构的sql语句如下:86.create***87.(***数据类型1***)88.create***89.(***数据类型2***)90.create***91.(***数据类型1***)92.对上述相同语法结构的sql语句进行去重并记录重复次数获得:create***93.(***数据类型***),3次。94.图3是本发明第三实施例提供的工具服务器的结构示意图,如图3所示,本发明实施例提供的工具服务器包括日志接收模块301、日志堆栈模块302、探测模块303和归档模块304,其中:95.日志接收模块301用于接收数据库的日志文件,日志堆栈模块302用于临时存储日志文件,探测模块303用于进行目标事务识别,归档模块304用于存储目标事务的日志数据。其中,目标事务为大事务或者风险事务。96.探测模块303遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;在判断获知所述事务的日志偏移量大于第一预设值之后,将所述事务识别为大事务。在判断获知所述事务的日志偏移量大于第二预设值且小于等于所述第一预设值之后,则将所述事务识别为风险事务。97.归档模块304对结构化查询语言语句中的对象数据进行参数化和/或对相同语法结构的结构化查询语言语句进行去重并记录重复次数。98.图4是本发明第四实施例提供的目标事务的识别装置的结构示意图,如图4所示,本发明实施例提供的目标事务的识别装置包括接收模块401、获取模块402和识别模块403,其中:99.接收模块401用于接收数据库的日志文件;获取模块402用于遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;识别模块403用于在判断获知所述事务的日志偏移量大于第一预设值之后,将所述事务识别为大事务。100.具体地,数据库服务器向接收模块401发送数据库的日志文件。接收模块401会接收所述日志文件。其中,数据库的日志文件是数据库的全量日志。101.在接收到日志文件之后,获取模块402会从所述日志文件的第一行开始,遍历所述日志文件,找出所述日志文件中的每个事务,并计算出每个事务的日志偏移量,事务的日志偏移量即事务的大小。事务的日志偏移量的大小与事务处理的数据行数和列数正相关,有利于提高大事务识别的准确性。102.对于所述日志文件中的每个事务,识别模块403将事务的日志偏移量与第一预设值进行比较,如果事务的日志偏移量大于第一预设值,那么将该事务识别为大事务。如果事务的日志偏移量不大于第一预设值,那么该事务不是大事务。对于大事务,所述工具服务器会记录下来,反馈给相关人员进行处理。其中,所述第一预设值根据实际经验进行设置,本发明实施例不做限定。103.本发明实施例提供的目标事务的识别装置,接收数据库的日志文件,遍历日志文件,获取日志文件中每个事务的日志偏移量,若判断获知事务的日志偏移量大于第一预设值,则将事务识别为大事务,通过日志文件中的事务的日志偏移量进行大事务的识别,提高了大事务识别的可靠性。104.图5是本发明第五实施例提供的目标事务的识别装置的结构示意图,如图5所示,在上述各实施例的基础上,进一步地,获取模块402包括第一获得单元4021和第二获得单元4022,其中:105.第一获得单元4021用于获得每个事务的结束位置标识;第二获得单元4022用于根据当前事务的结束位置标识与当前事务的上一个事务的结束位置标识,获得当前事务的日志偏移量;其中,当前事务为日志文件中除第一个事务以外的任何一个事务。106.在上述各实施例的基础上,进一步地,接收模块401具体用于:107.接收多个数据库的日志文件。108.图6是本发明第六实施例提供的目标事务的识别装置的结构示意图,如图6所示,在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别装置还包括判断模块404,其中:109.判断模块404用于在判断获知所述事务的日志偏移量大于第二预设值且小于等于所述第一预设值之后,将所述事务识别为风险事务。110.图7是本发明第七实施例提供的目标事务的识别装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别装置还包括删除模块405,其中:111.删除模块405用于在判断获知所述事务的日志偏移量小于等于第三预设值之后,将所述事务对应的数据删除。112.图8是本发明第八实施例提供的目标事务的识别装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的目标事务的识别装置还包括存储模块406,其中:113.存储模块406用于存储所述大事务对应的日志数据。114.在上述各实施例的基础上,进一步地,所述大事务对应的日志数据包括结构化查询语言语句;相应地,存储模块406具体用于:115.对结构化查询语言语句中的对象数据进行参数化和/或对相同语法结构的结构化查询语言语句进行去重并记录重复次数。116.本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。117.需要说明的是,本发明实施例提供的目标事务的识别方法及装置可用于金融领域,也可用于除金融领域之外的任意
技术领域
:,本发明实施例对目标事务的识别方法及装置的应用领域不做限定。118.图9是本发明第九实施例提供的电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)901、通信接口(communicationsinterface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行如下方法:接收数据库的日志文件;遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;若判断获知所述事务的日志偏移量大于第一预设值,则将所述事务识别为大事务。119.此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。120.本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收数据库的日志文件;遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;若判断获知所述事务的日志偏移量大于第一预设值,则将所述事务识别为大事务。121.本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收数据库的日志文件;遍历所述日志文件,获取所述日志文件中每个事务的日志偏移量;若判断获知所述事务的日志偏移量大于第一预设值,则将所述事务识别为大事务。122.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。123.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。124.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。125.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。126.在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。127.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1