一种数据库模型匹配异常监测处理方法技术

技术编号:37640916 阅读:16 留言:0更新日期:2023-05-25 10:07
本发明专利技术属于数据库技术领域,本发明专利技术提供一种数据库模型匹配异常监测处理方法,通过定时执行预设的脚本发送数据库查询请求;查询数据库的表结构是否发生变化;根据线程池中各个测试线程的执行时间计算各个测试字段的线程延长时刻;如果测试字段的执行结束时间晚于线程延长时刻时判断数据库发生字段匹配异常产生异常告警。能够精准的获得测试线程的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,使得线程延长时刻定位的测试线程生命周期结束的预期时间更加稳定和准确,从而进一步判断数据库被修改后的字段是否和其他字段和业务兼容,能够提高线程延长时刻计算的速度,数据库匹配系统资源的占用率低。数据库匹配系统资源的占用率低。数据库匹配系统资源的占用率低。

【技术实现步骤摘要】
一种数据库模型匹配异常监测处理方法


[0001]本专利技术属于数据库
,具体涉及一种数据库模型匹配异常监测处理方法。

技术介绍

[0002]在数据库的表结构发生改变时,很容易联动的引起程序兼容性和数据质量的稳定性,会对未来接收到数据库中的数据产生影响,因此,如何监测数据库修改后的字段是否能与其它的字段的数据匹配是否在数据在处理过程中发生异常,对于数据库的是非常重要的,是预防数据缺失遗漏和保障数据库应用的稳定性的关键。
[0003]在现有技术中,例如,公告号为CN105095056B中国专利技术文献提供了一种数据仓库数据监控的方法,通过监控表列出和当日新增的数据量是否异常、数据源表结构监控的内容是监控数据源的表结构是否发生变化,包括新增字段、删除字段、修改字段类型、修改字段长度等;监控数据源表重点字段的取值,包括维度表的取值,通过监控在数据处理过程中的异常情况,通过系统预警和人工处理相结合的方法处理,保证数据处理过程中的可靠稳定。但是,该类方法只是监测字段是否发生变化,并无法知道该字段中的数据发生新增、删除、修改时是否与数据库中其他字段相兼容,在实际的应用过程中,往往字段匹配异常的兼容性问题是隐蔽的,在修改后一开始并未表现出来异常,在通过一段时间后,修改后字段中的数据项的增加从而表现出对数据库操作的线程处于长时间的阻塞状态,从而表现出数据库的这种字段匹配异常。

技术实现思路

[0004]本专利技术的目的在于提出一种数据库模型匹配异常监测处理方法,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
[0005]为了实现上述目的,根据本专利技术的一方面,提供一种数据库模型匹配异常监测处理方法,所述方法包括以下步骤:S100,定时执行预设的脚本发送数据库查询请求;所述数据库查询请求包括所需查询的表、查询的数据的起始时间以及结束时间;所需查询的表包括预设的数据库的表结构,所述数据库的表结构包括字段;S200,将所述数据库查询请求加入到数据库的线程池;S300,查询数据库的表结构是否发生变化,标记出数据库中表结构发生变化的字段记为测试字段,创建多个测试线程加入线程池对各个测试字段进行测试;S400,根据线程池中各个测试线程的执行时间计算各个测试字段的线程延长时刻;S500,如果测试字段的执行结束时间晚于线程延长时刻时判断数据库发生字段匹配异常,产生异常告警发送到管理员的移动设备或把异常告警记录到日志文件中。其中,字段匹配异常是指被修改后的字段引起的数据库的程序兼容性下降(直观的表现为线程处于长时间的阻塞状态甚至线程死锁带来的响应时间增加或者超时)或者由此引发的数据库在
该字段数据同步程序报错异常;进一步地,在S100中,所述数据库为Mysql数据库、oracle11g数据库、SQLServer数据库中任意一种。
[0006]进一步地,在S100中,定时执行预设的脚本发送数据库查询请求的方法为:每隔[3,8]小时执行一次预设的脚本,发送数据库查询请求。
[0007]进一步地,在S100中,预设的脚本至少包括多条查询表指令,所述查询表指令包括对数据库的类型,数据库连接方式、数据库表名、对应数据库名中任意一种或多种的查询指令,其中,对数据库表名的查询指令包括新增字段、删除字段、修改字段类型、修改字段长度的查询。
[0008]进一步地,在S300中,查询数据库的表结构是否发生变化,包括判断新增字段、删除字段、修改字段类型、修改字段长度是否发生变化;(这些字段的变化将导致数据同步程序报错、数据的兼容性发生问题,或代表业务发生错误的改变);如果新增字段、删除字段、修改字段类型、修改字段长度发生了变化,则判断数据库的表结构发生了变化。
[0009]进一步地,在S300中,测试线程是对数据库的增加表指令、删除表指令、修改表指令、查询表指令中任意一种或多种的指令操作的指令流,每个对数据库的指令操作的指令流形成一个线程即测试线程。
[0010]进一步地,在S400中,计算各个测试字段的线程延长时刻的方法为:依次计算对各个测试字段进行测试的稳态时间时段,具体为:获取依次获取对数据库的测试字段进行测试时数据库的线程池中的各个线程的指令流的执行时间,按照先后顺序将各个执行时间依次排列成序列记为ThSeq;依次由ThSeq中相邻的元素两两之间的大于0的差值构成的序列作为线程时变序列TGapSeq;(序列TGapSeq中每个差值的变化表示了测试线程对数据库进行测试中延迟的变化,在数据库的字段变化将导致的数据同步程序报错、数据的兼容性发生问题,或代表业务发生错误发生了变化后,序列TGapSeq中的差值在发生变化导致的存在数据丢失、损坏或不一致的情况的字段改变位置导致测试线程对数据库进行操作时产生的较大延时(线程处于长时间的阻塞状态甚至线程死锁带来的响应时间增加或者超时),这些字段改变位置在测试线程访问时产生的执行时间差值变化趋势会远大于字段无变化的位置的执行时间差值);记TGapSeq(h)为序列TGapSeq中的第h个元素,其中,h为TGapSeq中元素的序号;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)>TGapSeq(h+1)且TGapSeq(h)>TGapSeq(h

1)时,记此时的序号h为极大值序号Maxh;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)<TGapSeq(h+1)且TGapSeq(h)<TGapSeq(h

1)时,记此时的序号h为极小值序号Minh;(极大值序号Maxh是TGapSeq中差值首次递增的衰减时间,极小值序号Maxh是TGapSeq中差值首次衰减的拐点时间,这两个时间之间的时间段,即稳态时间时段能够表示出测试线程对数据库进行测试中线程时间的最稳定时段,用以在后续的线程延长时刻的计算中以准确的估计出这个时刻的大致时间);以差值TGapSeq(Maxh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimA;以差值TGapSeq(Minh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimB;取TimA到TimB之间的时间段为稳态时间时段steadT;
计算测试字段的线程延长时刻为:以TimA和TimB中最晚的时间为TS;取TS+steadT为线程延长时刻。
[0011]稳态时间时段是测试字段的测试线程的所有线程的生命周期中运行最稳定的时段,根据稳态时间时段计算得到的线程延长时刻则能够准确的提供一个测试字段的中测试线程生命周期结束的预期时间,能够精准的获得测试线程的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,会有一些由于数据库的字段发生改变后数据的不兼容导致的未达到闲置超时时长的阻塞等待线程导致的线程结束时间延长,从而会使测试线程在多次测试后测试线程生命周期结束的并发调度产生的较大的时延误差,进而使得线程延长时刻产生较大的偏差;为解决该问题,本专利技术提供了以下计算测试字段的线程延长时刻的方法:优选地,计算测试字段的线程延长时刻本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库模型匹配异常监测处理方法,其特征在于,所述方法包括以下步骤:S100,定时执行预设的脚本发送数据库查询请求;所述数据库查询请求包括所需查询的表、查询的数据的起始时间以及结束时间;所需查询的表包括预设的数据库的表结构,所述数据库的表结构包括字段;S200,将所述数据库查询请求加入到数据库的线程池;S300,查询数据库的表结构是否发生变化,标记出数据库中表结构发生变化的字段记为测试字段,创建多个测试线程加入线程池对各个测试字段进行测试;S400,根据线程池中各个测试线程的执行时间计算各个测试字段的线程延长时刻;S500,如果测试字段的执行结束时间晚于线程延长时刻时判断数据库发生字段匹配异常,产生异常告警发送到管理员的移动设备或把异常告警记录到日志文件中。2.根据权利要求1所述的一种数据库模型匹配异常监测处理方法,其特征在于,在S100中,所述数据库为Mysql数据库、oracle11g数据库、SQLServer数据库中任意一种。3.根据权利要求1所述的一种数据库模型匹配异常监测处理方法,其特征在于,在S100中,定时执行预设的脚本发送数据库查询请求的方法为:每隔[3,8]小时执行一次预设的脚本,发送数据库查询请求;预设的脚本至少包括多条查询表指令,所述查询表指令包括对数据库的类型,数据库连接方式、数据库表名、对应数据库名中任意一种或多种的查询指令,其中,对数据库表名的查询指令包括新增字段、删除字段、修改字段类型、修改字段长度的查询。4.根据权利要求1所述的一种数据库模型匹配异常监测处理方法,其特征在于,在S300中,查询数据库的表结构是否发生变化,包括判断新增字段、删除字段、修改字段类型、修改字段长度是否发生变化;如果新增字段、删除字段、修改字段类型、修改字段长度发生了变化,则判断数据库的表结构发生了变化。5.根据权利要求1所述的一种数据库模型匹配异常监测处理方法,其特征在于,在S400中,计算各个测试字段的线程延长时刻的方法为:依次计算对各个测试字段进行测试的稳态时间时段,具体为:获取依次获取对数据库的测试字段进行测试时数据库的线程池中的各个线程的指令流的执行时间,按照先后顺序将各个执行时间依次排列成序列记为ThSeq;依次由ThSeq中相邻的元素两两之间的大于0的差值构成的序列作为线程时变序列TGapSeq;记TGapSeq(h)为序列TGapSeq中的第h个元素,其中,h为TGapSeq中元素的序号;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)>TGapSeq(h+1)且TGapSeq(h)>TGapSeq(h
‑<...

【专利技术属性】
技术研发人员:王益斌庞新安
申请(专利权)人:湖南中青能科技有限公司
类型:发明
国别省市:

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

1