CN117762692A - 一种数据库异常数据处理方法及系统 - Google Patents
一种数据库异常数据处理方法及系统 Download PDFInfo
- Publication number
- CN117762692A CN117762692A CN202311824978.5A CN202311824978A CN117762692A CN 117762692 A CN117762692 A CN 117762692A CN 202311824978 A CN202311824978 A CN 202311824978A CN 117762692 A CN117762692 A CN 117762692A
- Authority
- CN
- China
- Prior art keywords
- database
- abnormal data
- abnormal
- data
- cell
- 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
Links
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 241
- 238000003672 processing method Methods 0.000 title claims description 13
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012544 monitoring process Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000004590 computer program Methods 0.000 claims description 14
- 230000005856 abnormality Effects 0.000 claims description 11
- 238000011835 investigation Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 240000007087 Apium graveolens Species 0.000 description 3
- 235000015849 Apium graveolens Dulce Group Nutrition 0.000 description 3
- 235000010591 Appio Nutrition 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种数据库异常数据处理方法及系统,该方法包括:将Mysql数据库设置为主数据库,并搭建与主数据库所对应的备份数据库;备份数据库将主数据库中的全量数据进行备份,全量数据包括异常数据;通过celery服务中的celery生产者监听备份数据库中的异常数据;通过celery生产者将异常数据存入redis消息队列中;通过celery服务中的celery执行器从redis消息队列中获取异常数据,celery执行器并执行异常数据对应的异常脚本任务;将执行结果更新至主数据库;本方法利用celery服务备份异常数据,与传统的使用mysql数据库的binlog进行备份相比,使备份数据与重启批量任务可以并行进行,无需等待备份异常数据结束后才可以重启批量任务,从而避免批量任务出现阻塞问题;该系统具有相同的有益效果。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据库异常数据处理方法及系统。
背景技术
随着大数据时代的到来,技术人员会将各种数据存入数据库中,需要数据时,通过执行数据库就可以拿到存入数据库中的数据,方便、快捷。
账务核心批量是基于SpringBatch开发的批量任务,即批量提交异步任务,且批量任务执行时间长,逻辑复杂,而且多在晚间进行,一旦账务核心批量任务遇到异常情况,必须由开发人员和运维人员晚间进行修复,又因为逻辑复杂,使修复时间久,导致批量任务执行时间变得更长;否则账务核心批量任务就会停留在异常情况出现的数据,导致账务核心批量任务出现阻塞的情况,严重影响到下游系统后续的数据抽取、报表生成、数据报送和业务开展。
鉴于此,提供一种可以避免批量任务出现阻塞的数据库异常数据处理方法及系统是本领域技术人员亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明的目的为提供一种数据库异常数据处理方法及系统,可以快速处理同一时间内多个异常数据,实现高并发,并保证批量任务的可靠性,从而可以避免批量任务出现阻塞问题;
本发明的第一个目的为提供一种数据库异常数据处理方法;
本发明提供的技术方案如下:
一种数据库异常数据处理方法,包括如下步骤:
将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
通过所述celery生产者将所述异常数据存入redis消息队列中;
通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
将执行结果更新至所述主数据库。
优选地,所述备份数据库将所述主数据库中的全量数据进行备份,具体包括:
在所述主数据库中建立异常数据表;
当批量任务出现异常时,所述主数据库将所述异常数据存入所述异常数据表中;
所述备份数据库将实时备份所述主数据库的全量数据,其中,所述全量数据包括所述异常数据表的所述异常数据。
优选地,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务,具体包括:
对所述备份数据库建立数据库会话;
通过所述数据库会话对所述备份数据库进行访问,并备份所有所述异常数据到.sql文件中;
跳过备份至所述.sql文件中的所述异常数据,重启批量任务。
优选地,所述跳过备份至所述.sql文件中的所述异常数据,具体包括:
通过celery服务监测到所述异常数据表中的异常数据没有超过异常数量阈值且配置为自动跳过时:
将所述异常数据在所述异常数据表中的数据状态字段修改为异常;
将所述异常数据在所述异常数据表中的异常批量任务号字段添加为该次批量任务的唯一序列;
将所述异常借据表的处理状态修改为已处理,便可由脚本执行自动跳过所述异常数据。
优选地,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务之后,还包括步骤:
当所述celery执行器执行完所述异常脚本任务后,所述celery生产者再次进入监听状态。
优选地,所述当所述celery执行器执行完所述异常脚本任务后,celery生产者再次进入监听状态之后,还包括步骤:
当所述celery服务监控到所述批量任务执行结束时,将所述唯一序列表所对应的异常数据备份到异常数据历史表中。
优选地,所述将执行结果更新至所述主数据库中,具体包括:
通过复现异常对所述异常数据进行问题排查,以获取非异常数据;
所述问题排查完毕后,并将所述非异常数据更新至所述主数据库中。
本发明的第二个目的为提供一种数据库异常数据处理系统;
本发明提供的技术方案如下:
一种数据库异常数据处理系统,包括:设置模块、备份模块、监听模块、存储模块、执行模块和更新模块;
所述设置模块,用于将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
所述备份模块,用于所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
所述监听模块,用于通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
所述存储模块,用于通过所述celery生产者将所述异常数据存储至redis消息队列中;
所述执行模块,用于通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
所述更新模块,用于将执行结果更新至所述主数据库中。
本发明的第三个目的为提供一种电子设备;
本发明提供的技术方案如下:
一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行数据库异常数据处理方法任意一项所述的方法步骤。
本发明的第四个目的为提供一种计算机可读存储介质;
本发明提供的技术方案如下:
一种计算机可读存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于使计算机执行数据库异常数据处理方法任意一项所述的方法步骤。
本发明提供的一种数据库异常数据处理方法,包括如下步骤:将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;通过所述celery生产者将所述异常数据存入redis消息队列中;通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;将执行结果更新至所述主数据库;本方法通过利用celery服务备份异常数据,与传统的使用mysql数据库的binlog进行备份相比,使备份数据与重启批量任务可以并行进行,无需等待备份异常数据结束后才可以重启批量任务,从而避免批量任务出现阻塞问题,同样可以节约批量任务的执行时间。
本发明还提供了一种数据库异常数据处理系统,由于该系统与该数据库异常数据处理方法解决相同的技术问题,属于相同的技术构思,理应具有相同的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种数据库异常数据处理方法的流程图;
图2为本发明实施例中一种数据库异常数据处理方法的拓扑图;
图3为本发明实施例中一种数据库异常数据处理系统的结构示意图;
图4为本发明实施例中一种电子设备的结构示意图。
具体实施方式
为了使本领域的技术人员更好地理解本申请中的技术方案,下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1至图2所示,本发明实施例提供一种数据库异常数据处理方法,包括如下步骤:
S1.将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
S2.所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
S3.通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
S4.通过所述celery生产者将所述异常数据存入redis消息队列中;
S5.通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
S6.将执行结果更新至所述主数据库。
步骤S1至步骤S2中,针对账务核心批量任务,是一个非常消耗服务器资源的应用,因此将Mysql数据库设置为主数据库,并搭建与该主数据库所对应的备份数据库,有效缓解了请求服务器的压力;其中,将该主数据库的事务提交属性配置为自动提交,将备份数据库的事务提交属性配置为手动提交;通过备份数据库将主数据库中的全部借据数据进行备份,从而实现主从数据库中的借据数据实时同步。
步骤S3中,部署celery服务到单独主机,配置celery服务的数据库与redis消息队列,并监控账务核心批量任务的备份数据库,即通过celery服务中的celery生产者监听备份数据库中的异常借据,从而实现监控批量任务的目的;本实施例中,采用的Celery服务是一个支持实时处理、异步任务和定时调度的分布式系统,适用于处理大量消息的情况;Celery服务本身不提供消息队列,但支持多种消息队列软件,如redis、Rabbitmq等,在处理耗时又耗资源的异步任务时,可以把异步任务作为一个子线程从主应用中剥离出来或者被分配到资源充足的其他主机上后台执行,其执行结果支持存储到存储数据库中永久保存,供用户查询。
步骤S4中,celery生产者可以利用用户自定义应用监控指标,实时收集监控数据,自定义监控指标的异常数据,因此通过celery生产者将异常借据存入redis消息队列中,本实施例中利用celery创建定时任务存入数据库表中,celery生产者定时把异常借据推入redis消息队列,代替传统的线程池,不会有任务数限制,当告警策略即异常借据达到上万条时不会堵塞。
步骤S5中,编写监控到异常借据时所需要执行的异常脚本任务,然后通过celery执行器从redis消息队列中读取异常借据,并通过celery执行器执行异常借据对应的异常脚本任务,异常脚本任务包括对备份数据库建立数据库会话、发送运维监控邮件与短信给运维与开发人员、备份指定表、跳过异常以及监控批量任务结束将该异常借据表备份到异常借据表的历史表中,且异常借据表的历史表中的处理状态均为已处理状态。
步骤S6中,将开发人员和运维人员修复完的异常借据更新至该主数据库中,便于批量任务再次执行。
具体的,在本方法中当账务核心批量某些借据出现异常时,通过监控告诉运维人员与开发人员,运维人员通过上述配置,即可跳过异常借据,同时备份异常借据相关数据,让批量任务继续执行,开发人员则可以针对出现异常的借据的备份数据进行修复,即不会影响整体批量的执行,同时可以缩小由于少量借据的异常带来的整体不良影响;通过Celery监控执行备份异常数据任务,则不需要通过备份Mysql的binlog的方式备份异常数据,通过利用Mysql的可重复读的事务隔离机制实现异常借据数据的备份,提高备份数据的效率,同时无需等待备份异常数据结束后才可以重启批量任务,从而避免批量任务出现阻塞问题以及批量任务因异常出现导致耗时增加的风险。
优选地,所述备份数据库将所述主数据库中的全量数据进行备份,具体包括:
A1.在所述主数据库中建立异常数据表;
A2.当批量任务出现异常时,所述主数据库将所述异常数据存入所述异常数据表中;
A3.所述备份数据库将实时备份所述主数据库的全量数据,其中,所述全量数据包括所述异常数据表的所述异常数据。
步骤A1中,在主数据库中建立异常借据表,用于存储账务系统核心批量任务产生的异常借据。
步骤A2中,当批量任务出现异常时,主数据库将该异常借据存入上述步骤建立的异常数据表中,便于后续使用。
步骤A3中,步骤S1中创建的备份数据库会实时备份主数据库中的全量数据,其中,全量数据包括异常借据表的异常借据,备份异常借据数据利用了Mysql可重复读的事务隔离级别进行备份,抛弃传统的通过binlog的方式备份数据库的方式,提高效率,方便快捷。
优选地,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务,具体包括:
B1.对所述备份数据库建立数据库会话;
B2.通过所述数据库会话对所述备份数据库进行访问,并备份所有所述异常数据到.sql文件中;
B3.跳过备份至所述.sql文件中的所述异常数据,重启批量任务。
步骤B1中,对备份数据库(BACK_DB)建立数据库会话,在不关闭此会话同时手动提交事务的情况下,使用此会话查询该数据库,不管数据库本身数据是否发生变更,返回的数据不会发生变化;所以此时并不会影响批量任务继续进行,也不会对该会话下的数据产生影响;然后通过发送运维监控邮件与短信给运维人员和开发人员。
步骤B2中,在账务核心系统中,借据之间不存在关联关系,互相隔离,因此只需要备份该借据的相关数据库信息即可,备份数据使用步骤B1中建立的数据库会话,并备份为insert语句并生成.sql格式的文件,执行完毕后关闭该会话;另外,还要备份SpringBatch的执行批量相关基础表,实现将数据迁移到批量异常复现应用中,可以断点续跑。
步骤B3中,执行完上述步骤后即可跳过异常,重启批量任务;若设置为自动跳过异常(auto_skip_exception=true),同时异常借据表(batch_loan_exception)中的异常借据没有超过异常借据数量阈值(exception_num)时,由脚本自动执行跳过备份至.sql文件中的异常数据的具体步骤。否则由运维人员和开发人员自行决定是否跳过异常,重启批量任务。在该步骤中无需等待步骤B2是否已经备份完成,只需要等待步骤B1的数据库会话执行完成即可开始。
优选地,所述跳过备份至所述.sql文件中的所述异常数据,具体包括:
通过celery服务监测到所述异常数据表中的异常数据没有超过异常数量阈值且配置为自动跳过时:
将所述异常数据在所述异常数据表中的数据状态字段修改为异常;
将所述异常数据在所述异常数据表中的异常批量任务号字段添加为该次批量任务的唯一序列;
将所述异常借据表的处理状态修改为已处理,便可由脚本执行自动跳过所述异常数据。
在实际运用过程中,若选择跳过备份至.sql文件中的异常借据时(auto_skip_exception=true),同时celery服务监测到异常借据表(batch_loan_exception)中的异常借据没有超过异常借据数量阈值(exception_num)时,则将异常借据在异常借据表中的借据批量异常状态(batch_ex_status)改为异常,用EX表示,用“其他”表示非异常;将异常借据在异常借据表中的异常批量任务号(ex_batch_no)添加为该次批量任务的唯一序列(BATCH_NO),该异常批量任务号,表示出现异常时的批量任务编号,并修改异常借据表(batch_loan_exception)的处理状态为已处理,用PROCESS表示,此时,可以随时执行批量任务,当批量任务重新执行之后,将不会查询异常借据表中借据批量异常状态为异常的借据,并加入到批量处理逻辑中,从而实现跳过执行该异常借据。
优选地,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务之后,还包括步骤:
当所述celery执行器执行完所述异常脚本任务后,celery生产者再次进入监听状态。
在实际运用过程中,当celery执行器执行完异常脚本任务后,celery生产者将再次进入监听状态,对批量任务进行监控以保证批量任务在可以将所有的财务数据执行完毕,且在执行过程中遇到异常借据不会使批量任务进行阻塞。
优选地,所述当所述celery执行器执行完所述异常脚本任务后,celery生产者再次进入监听状态之后,还包括步骤:
当所述celery服务监控到所述批量任务执行结束时,将所述唯一序列表所对应的异常数据备份到异常数据历史表中。
在实际运用过程中,当celery服务监控到批量任务执行结束时,将唯一序列表所对应的异常借据备份到异常借据历史表中,celery服务中的执行器处理完异常数据将处理结果更新到账务系统对应的异常数据历史表中,以使得每个异常数据都有迹可循;同时对于长期占用资源的异步任务,通过设置任务超时时间可以使当前执行器自我销毁程序重建来释放资源。
优选地,所述将执行结果更新至所述主数据库中,具体包括:
通过复现异常对所述异常数据进行问题排查,以获取非异常数据;
所述问题排查完毕后,并将所述非异常数据更新至所述主数据库中。
在实际运用过程中,运维人员或者开发人员通过复现异常对异常借据进行问题排查,并对异常借据进行处理,从而得到非异常借据,当问题排查完毕后,并将非异常借据更新至主数据库中,从而使用该账务系统批量任务系统执行完该借据的全部数据。
如图3所示,本发明还提供了一种数据库异常数据处理系统,包括:设置模块、备份模块、监听模块、存储模块、执行模块和更新模块;
所述设置模块,用于将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
所述备份模块,用于所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
所述监听模块,用于通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
所述存储模块,用于通过所述celery生产者将所述异常数据存储至redis消息队列中;
所述执行模块,用于通过celery服务中的celery执行器从所述redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
所述更新模块,用于将执行结果更新至所述主数据库中。
在实际运用过程中,设置了设置模块、备份模块、监听模块、存储模块、执行模块和更新模块;设置模块与备份模块连接;监听模块分别与备份模块和存储模块连接;执行模块分别与存储模块和更新模块连接;设置将Mysql数据库设置为主数据库,并搭建与主数据库所对应的备份数据库后,进入备份模块;备份模块则通过备份数据库将主数据库中的全量数据进行备份后,且全量数据包括异常数据,进入监听模块;监听模块通过celery服务中的celery生产者监听到备份数据库中的异常数据后,进入存储模块;存储模块则通过celery生产者将异常数据存储至redis消息队列后,进入执行模块;执行模块则通过celery服务中的celery执行器从redis消息队列中获取异常数据,celery执行器并执行异常数据对应的异常脚本任务后,进入更新模块;更新模块则将执行结果更新至主数据库中;本系统通过设置备份模块、监听模块、存储模块、执行模块和更新模块,利用备份模块、监听模块、存储模块、执行模块和更新模块来对异常数据进行备份并处理,与传统的使用mysql数据库的binlog进行备份相比,使备份数据与重启批量任务可以并行进行,无需等待备份异常数据结束后才可以重启批量任务,从而避免批量任务出现阻塞问题,同样可以节约批量任务的执行时间。
进一步的,本申请实施例还公开了一种电子设备,图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据库异常数据处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据库异常数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括数据库异常数据处理设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其他形式的存储介质中。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据库异常数据处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请中如若使用了流程图,则该流程图是用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库异常数据处理方法,其特征在于,包括如下步骤:
将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
通过所述celery生产者将所述异常数据存入redis消息队列中;
通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
将执行结果更新至所述主数据库。
2.根据权利要求1所述的数据库异常数据处理方法,其特征在于,所述备份数据库将所述主数据库中的全量数据进行备份,具体包括:
在所述主数据库中建立异常数据表;
当批量任务出现异常时,所述主数据库将所述异常数据存入所述异常数据表中;
所述备份数据库将实时备份所述主数据库的全量数据,其中,所述全量数据包括所述异常数据表的所述异常数据。
3.根据权利要求1所述的数据库异常数据处理方法,其特征在于,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务,具体包括:
对所述备份数据库建立数据库会话;
通过所述数据库会话对所述备份数据库进行访问,并备份所有所述异常数据到.sql文件中;
跳过备份至所述.sql文件中的所述异常数据,重启批量任务。
4.根据权利要求3所述的数据库异常数据处理方法,其特征在于,所述跳过备份至所述.sql文件中的所述异常数据,具体包括:
通过celery服务监测到所述异常数据表中的异常数据没有超过异常数量阈值且配置为自动跳过时:
将所述异常数据在所述异常数据表中的数据状态字段修改为异常;
将所述异常数据在所述异常数据表中的异常批量任务号字段添加为该次批量任务的唯一序列;
将所述异常借据表的处理状态修改为已处理,便可由脚本执行自动跳过所述异常数据。
5.根据权利要求4所述的数据库异常数据处理方法,其特征在于,所述通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务之后,还包括步骤:
当所述celery执行器执行完所述异常脚本任务后,celery生产者再次进入监听状态。
6.根据权利要求5所述的数据库异常数据处理方法,其特征在于,所述当所述celery执行器执行完所述异常脚本任务后,celery生产者再次进入监听状态之后,还包括步骤:
当所述celery服务监控到所述批量任务执行结束时,将所述唯一序列表所对应的异常数据备份到异常数据历史表中。
7.根据权利要求1所述的数据库异常数据处理方法,其特征在于,所述将执行结果更新至所述主数据库中,具体包括:
通过复现异常对所述异常数据进行问题排查,以获取非异常数据;
所述问题排查完毕后,并将所述非异常数据更新至所述主数据库中。
8.一种数据库异常数据处理系统,其特征在于,包括:设置模块、备份模块、监听模块、存储模块、执行模块和更新模块;
所述设置模块,用于将Mysql数据库设置为主数据库,并搭建与所述主数据库所对应的备份数据库;其中,所述主数据库的事务提交属性为自动提交,所述备份数据库的事务提交属性为手动提交;
所述备份模块,用于所述备份数据库将所述主数据库中的全量数据进行备份,其中,所述全量数据包括异常数据;
所述监听模块,用于通过celery服务中的celery生产者监听所述备份数据库中的所述异常数据;
所述存储模块,用于通过所述celery生产者将所述异常数据存储至redis消息队列中;
所述执行模块,用于通过celery服务中的celery执行器从redis消息队列中获取所述异常数据,所述celery执行器并执行所述异常数据对应的异常脚本任务;
所述更新模块,用于将执行结果更新至所述主数据库中。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序用于使计算机执行权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824978.5A CN117762692A (zh) | 2023-12-27 | 2023-12-27 | 一种数据库异常数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311824978.5A CN117762692A (zh) | 2023-12-27 | 2023-12-27 | 一种数据库异常数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762692A true CN117762692A (zh) | 2024-03-26 |
Family
ID=90325546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311824978.5A Pending CN117762692A (zh) | 2023-12-27 | 2023-12-27 | 一种数据库异常数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762692A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180027006A1 (en) * | 2015-02-24 | 2018-01-25 | Cloudlock, Inc. | System and method for securing an enterprise computing environment |
CN111324617A (zh) * | 2020-02-09 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种数据库在线热备份的方法和设备 |
CN114153660A (zh) * | 2021-11-29 | 2022-03-08 | 平安壹账通云科技(深圳)有限公司 | 一种数据库备份方法、装置、服务器及介质 |
US20230208876A1 (en) * | 2021-12-22 | 2023-06-29 | Abnormal Security Corporation | Url rewriting |
CN117076229A (zh) * | 2022-05-09 | 2023-11-17 | 网联清算有限公司 | 一种数据备份检查方法、装置及电子设备 |
-
2023
- 2023-12-27 CN CN202311824978.5A patent/CN117762692A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180027006A1 (en) * | 2015-02-24 | 2018-01-25 | Cloudlock, Inc. | System and method for securing an enterprise computing environment |
CN111324617A (zh) * | 2020-02-09 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种数据库在线热备份的方法和设备 |
CN114153660A (zh) * | 2021-11-29 | 2022-03-08 | 平安壹账通云科技(深圳)有限公司 | 一种数据库备份方法、装置、服务器及介质 |
US20230208876A1 (en) * | 2021-12-22 | 2023-06-29 | Abnormal Security Corporation | Url rewriting |
CN117076229A (zh) * | 2022-05-09 | 2023-11-17 | 网联清算有限公司 | 一种数据备份检查方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10453010B2 (en) | Computer device, method, and apparatus for scheduling business flow | |
CN108076098B (zh) | 一种业务处理方法及系统 | |
CN109634728B (zh) | 作业调度方法、装置、终端设备及可读存储介质 | |
CN110716793B (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
US10866866B2 (en) | Query fault processing method and processing apparatus | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN115994053A (zh) | 数据库备机的并行回放方法、装置、电子设备及介质 | |
CN110032444B (zh) | 一种分布式系统及分布式任务处理方法 | |
CN109445800A (zh) | 一种基于分布式系统的版本自动部署方法及系统 | |
CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
CN113658351A (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN117762692A (zh) | 一种数据库异常数据处理方法及系统 | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
CN114579260A (zh) | 一种事务处理方法及系统 | |
CN109144788B (zh) | 一种重建osd的方法、装置及系统 | |
CN108733704B (zh) | 多数据库数据处理方法、装置及存储介质和电子设备 | |
CN111930475B (zh) | 启动ett运行的方法及装置 | |
CN109710690B (zh) | 一种业务驱动计算方法及系统 | |
CN117675185A (zh) | 基于事务消息的密码协议事务管理方法、介质及装置 | |
CN117709878A (zh) | 一种审批业务自动化处理方法、装置、设备及存储介质 | |
CN114528156A (zh) | 异构容灾方案的数据库切换方法、电子设备和介质 | |
CN111930550A (zh) | 一种客户端修复方法、装置、设备及介质 | |
CN115016830A (zh) | 物联网终端设备的运维方法、装置、系统及处理器 | |
CN114363401A (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 |