数据库同步验证及监控方法技术

技术编号:6800714 阅读:272 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种数据库同步验证及监控方法,包括:S1:由待验证主数据库及其从数据库中采集数据库表信息,包括数据库名、表名和采集时间;S2:通过对采集到的所述数据库表信息进行数据分析比对,检查主数据库与每一从数据库之间的数据一致性;S3:根据检查结果判断是否存在数据不同步,根据判断结果选择性触发Web警示或邮件/短信通知。该方法能够同时对多台数据库和多个数据表进行同步验证,能够及时准确定位到表的数据同步状态,并及时通知数据库维护人员。

【技术实现步骤摘要】

本专利技术涉及计算机
,更具体地,涉及数据库的验证及监控。
技术介绍
数据库是一个系统或网站的核心部分,对数据库的监控是必不可少的。然而,随着数据库中数据量的日益增长,现有系统及网站通常采用读写分离和多主多从的方式来实现其高可用性。例如,图1所示的一组应用数据库包括一个主(Master)库和一个或多个从(Slave)库。在对数据库执行写操作或更新操作时,通过主(Master)数据库进行写入更新,并且在将数据写入主(Master)数据库后,这些数据会被同步到另外的一台或多台从 (Slave)库中;而在对数据库执行读取操作时,读取的是这些从(Slave)库中的数据。然而,传统的数据库监控不能满足类似上述的多台同步数据库中针对表的监控。 传统方案基本上是依靠开源软件或人工进行监控和判断。开源软件监控方式是对整个库表进行同步状态监控,若发现数据不同步,则发送邮件告知目前同步状态异常,但并不能具体告知是库中的哪个表出现了异常。这样的监控方式在灵活性、可定制性、可操作性、可扩展性以及时性上都无法得到有效保障。因此,需要一种改进的、能够同时对多台数据库和多个数据表进行同步验证、及时准确定位到表的数据同步状态、及时通知数据库维护人员的、自定制同步验证和监控的方法。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题在于如何实现对多台同步数据库中的表的同步状况的自定制实时验证和监控。( 二 )技术方案为解决上述技术问题,本专利技术的技术方案提供了一种,包括以下步骤Sl 由待验证主数据库及其从数据库中采集数据库表信息,包括数据库名、表名和采集时间;S2:通过对采集到的所述数据库表信息进行数据分析比对,检查主数据库与每一从数据库之间的数据一致性;S3 根据检查结果判断是否存在数据不同步,若存在,则选择性触发Web警示或邮件/短信通知。其中,所述步骤Sl包括对待验证的数据库和数据表名进行约定,通过数据库表名查询指令的方式采集数据表记录集。其中,步骤S2中,每一所述数据分析比对执行至少三次。其中,步骤S3进一步包括初次检测到数据不同步状况时,仅触发Web警示;连续检测到数据不同步状况时,则触发邮件/短信通知。其中,所所述Web警示或邮件/短信通知包括突出显示存在数据不同步状况的数据库表。(三)有益效果根据本专利技术的,能够在数据库表同步发生异常时,第一时间通过邮件或短信或其他方式将不同步的表通知到数据库管理人员;可通过WEB页面灵活地对多服务器、多数据库、多个数据表同时进行日常监控,以减轻数据库管理人员的日常工作量,并能够保障及时、准确、有效地将数据库的运行情况展示在管理员面前;同时本技术方案还可以与其他开源监控软件进行整合(例如网络监控软件Nagios)。附图说明图1是现有应用数据库的示意图;图2是根据本专利技术的的流程图;图3是根据本专利技术的的一个实施例的示意图。具体实施例方式下文中,将结合附图和具体实施例详细描述本专利技术。下述实施例仅用于解释本专利技术的技术方案的目的。因此,本专利技术的技术方案不应该由本实施例限定。下述实施例中所使用的要素同样也不应用于限定本专利技术的技术方案。图2是示出了根据本专利技术的的流程图。如图2所示,本专利技术的主要包括以下步骤Sl 由待验证主数据库及其从数据库中采集数据库表信息;本步骤中,分别从主数据库和从数据库中采集数据库表信息,包括但不限于数据库名、表名和采集时间,并将其存储在监控数据库中。如前所述,本技术方案能够具体告知哪个库中的哪个表出现了异常。这一有益效果是通过“数据采集”来实现的。在采集数据时,对待验证的数据库和数据表名进行约定,然后通过数据库表名查询指令的方式采集数据表记录集,例如select count (*) from tabIename οS2 :通过对采集到的所述数据库表信息进行数据分析比对,同步检查主数据库与每一从数据库之间的数据一致性;具体地,在将数据表记录集记录写入到监控数据库中后,由后台程序对保存在监视数据库里的值进行三次及以上的分析对比,即检查主数据库与每一从数据库之间的数据一致性,以确保主、从数据库中的表数据信息的同步一致性;如果检测到数据不一致,则通过多种可行方式警示维护人员,同时告知维护人员具体是库中的哪个数据库的哪个表出现了异常。S3:根据检查结果判断是否存在异常状况,根据判断结果选择性触发Web展示或邮件/短信通知。具体地,将对比后的结果通过Web方式进行展示;如果数据发生异常,则将通过 Web警示或邮件/短信方式通知数据库维护人员。下面将对根据本专利技术的的具体实施例进行详细说明。图3例示出了包括一个主数据库Master和三台从数据库Slavel、Slave2和 Slave3的数据库系统,实际上,本专利技术适用于多台从数据库的情况。在图3所示的实施例中,为了获取监控数据,在master、slavel、slave2和slave3 上分别执行下列语句select count (1) from $t account_file,并将获取的监控数据写入到监控数据库中的table_COimt数据表中。举例来说,假设插入到table_COunt数据表中的数据为(‘Γ,‘ account, file‘,‘ orders ‘,‘ 511 ‘,‘ 511',‘ 511',‘ 511 ‘ , null, null, null, null, ‘ 201106131000' , ‘ 0'),其表示id 1,被统计表的名称为 account_file, 所在数据库为orders,分别采集了四台服务器的aCCOimt_file表的记录,值为master 5111 slavel 51l|slave2 51l|slave3 511,采集数据的时间为2011年6月13日下午一点整,最后面的0为status字段值;当Matus = 0时,数据正常;当Matus大于0时,则说明有异常出现。接着,对所采集的数据执行分析对比。仍以一个主数据库和三个从数据库为例,对比过程可描述如下权利要求1.一种,其特征在于,包括Sl 由待验证主数据库及其从数据库中采集数据库表信息,包括数据库名、表名和采集时间;S2:通过对采集到的所述数据库表信息进行数据分析比对,检查主数据库与每一从数据库之间的数据一致性;S3 根据检查结果判断是否存在数据不同步,根据判断结果选择性触发Web警示或邮件/短信通知。2.根据权利要求1所述的,其特征在于,所述步骤Sl包括 对待验证的数据库和数据表名进行约定,通过数据库表名查询指令的方式采集数据表记录集。3.根据权利要求1所述的,其特征在于,步骤S2中,每一所述数据分析比对执行至少三次。4.根据权利要求1所述的,其特征在于,步骤S3进一步包括初次检测到数据不同步状况时,仅触发Web警示;连续检测到数据不同步状况时,则触发邮件/短信通知。5.根据权利要求1所述的,其特征在于,所述Web警示或邮件/短信通知包括突出显示存在数据不同步状况的数据库表。全文摘要本专利技术提供了一种,包括S1由待验证主数据库及其从数据库中采集数据库表信息,包括数据库名、表名和采集时间;S2通过对采集到的所述数据库表信息进行数据分析比对,检查主数据库与每一从数据库之间的数据一致性;S3根据检查结果判断是否存在数据不同步,根据判断结果本文档来自技高网...

【技术保护点】
1.一种数据库同步验证及监控方法,其特征在于,包括:S1:由待验证主数据库及其从数据库中采集数据库表信息,包括数据库名、表名和采集时间;S2:通过对采集到的所述数据库表信息进行数据分析比对,检查主数据库与每一从数据库之间的数据一致性;S3:根据检查结果判断是否存在数据不同步,根据判断结果选择性触发Web警示或邮件/短信通知。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘奇许荟
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:11

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

1