CN100359482C - 数据库表更新的动态监控系统及方法 - Google Patents

数据库表更新的动态监控系统及方法 Download PDF

Info

Publication number
CN100359482C
CN100359482C CNB2004100534236A CN200410053423A CN100359482C CN 100359482 C CN100359482 C CN 100359482C CN B2004100534236 A CNB2004100534236 A CN B2004100534236A CN 200410053423 A CN200410053423 A CN 200410053423A CN 100359482 C CN100359482 C CN 100359482C
Authority
CN
China
Prior art keywords
monitoring
subscriber
trigger
meter
database
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.)
Expired - Lifetime
Application number
CNB2004100534236A
Other languages
English (en)
Other versions
CN1673972A (zh
Inventor
卫万勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Baosight Software Co Ltd
Original Assignee
Shanghai Baosight Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Baosight Software Co Ltd filed Critical Shanghai Baosight Software Co Ltd
Priority to CNB2004100534236A priority Critical patent/CN100359482C/zh
Publication of CN1673972A publication Critical patent/CN1673972A/zh
Application granted granted Critical
Publication of CN100359482C publication Critical patent/CN100359482C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种数据库表更新的动态监控系统,包括:监控表,其存储所有用户表的表名以及其生命标志;监控触发器,该触发器与所述用户表一一对应,可截获相应用户表的插入、更新、删除操作;监控表备份,系统在应用部分为监控表配备了一个备份;监控模块,其通过数据库连接器访问监控表,获得用户表的生命标志,将获得的用户表生命标志同监察院控表备份进行对比,以发现更改;发布接口,输出实时的数据库表更新通知。本发明所要解决的技术问题是提供一种数据库表更新的动态监控系统及方法,其可以简单地发现关系型数据库中任意表的实时更新,无论这种更新是来自前台的还是来自后台的,可以向客户系统提供数据库表更新的实时通知。

Description

数据库表更新的动态监控系统及方法
技术领域
本发明涉及一种数据库表更新的动态监控系统及方法
背景技术
在一个大型的客户服务器应用系统中,常常是很多个客户端和后台服务协同工作,基于同一个数据库共同完成一组相关的系统任务。由于多个客户端的存在,任一个客户端都可能对同一组数据库资源进行访问和操作,哪怕是进行了分组的访问权限设置。但由于缺乏动态的数据库更新通知机制,一个客户端在进行自己的操作前不可能知道相关的数据库资源是否已被其他的客户端所更改,除非进行先期的手动强制更新,因此而提交的操作事务常常会以失败而告终。
一个典型的例子是,一个大型的图书馆的图书借阅系统。当我们通过系统提交并成功得到了一个未借书籍的查询清单,但由于存在大量的借阅者,常常是就在我们浏览清单的时候,其中的某些书籍已经被其他的借阅者借走,而我们却并不知晓。因此,有可能使我们辛辛苦苦通过浏览清单后所提交的某些借阅请求被系统无情的拒绝。
此时,我们很希望系统能够拥有对数据库资源更新的动态监控机制,使我们可以时时刻刻都能得到最新的查询清单,无论是我们在浏览清单的时候。这样,我们将可以有效地避免一些不必要的操作和由此带来的失败。
在一个应用系统中,我们可以通过COM(组件对象模型)技术非常容易地实现对象间的实时通知,利用DCOM(分布式组件对象模型)和COM+(增强型组件对象模型)技术,我们甚至可以实现远程之间的实时通知。但是,在应用系统和数据库系统之间,要实现实时的通知却是非常困难的。
发明内容
本发明所要解决的技术问题是提供一种数据库表更新的动态监控系统及方法,其可以简单地发现关系型数据库中任意表的实时更新,无论这种更新是来自前台的还是来自后台的,可以向客户系统提供数据库表更新的实时通知。
为了解决上述技术问题,本发明采用了下述技术方案:提供一种数据库表更新的动态监控系统,包括:
监控表,其存储所有用户表的表名以及其生命标志;
监控触发器,该触发器将截获用户表的任意更新,维护监控表中相应纪录的表生命标志,该触发器与所述用户表一一对应,可截获相应用户表的插入、更新、删除操作;
监控表备份,系统在应用部分为监控表配备了一个备份;
监控模块,其通过数据库连接器访问监控表,获得用户表的生命标志,将获得的用户表生命标志同监控表备份进行对比,以发现更改;
发布接口,输出实时的数据库表更新通知。
同时,本发明还提供一种数据库表更新的动态监控方法,包括如下步骤:
1)、建立监控表:创建一个用户监控表,并在该表内填充所有用户表的表名以及其生命标志;
2)、准备监控触发器:删除现有的监控触发器,并为每一个用户表创建新的监控触发器,监控触发器截获用户表的任意更新,并维护监控表中的相应用户表的生命标志;
3)、创建监控表备份,系统在应用部分为监控表配备了一个备份;
4)、实时监控:访问监控表,获得用户表的生命标志,将获得的用户表的生命标志同监控表备份进行对比,以对用户表更新的事件进行实时的发布。
由于采用了上述技术方案,本发明的优点是:
(1)基于触发器的结构,充分利用既有的系统资源
触发器是关系型数据库的一项基本技术。经过配置,触发器可以发现数据库表的任意更新。基于关系型数据库触发器的设计,是我们可以充分利用既有的资源,无需额外的软硬件投资。
(2)基于标准的SQL(国际标准结构化查询语言)脚本设计,提供最大化的环境支持
SQL语言是一种国际标准的数据库语言。使用基于标准SQL语言脚本的设计,使我们的设计可以不经变更或很少的变更,适用于任何类型的关系型数据库系统。
(3)表生命状态设计,提供了一种全新的设计概念
表生命状态提供了一种解决关系型数据库表更新动态监控的全新概念。基于表生命状态概念的监控表和触发器设计结构,提供了一种简洁可靠的关系型数据库表实时监控策略。
(4)面向对象的全自动过程设计,支持透明的产品化集成封装和继承重载
(5)全自动的过程设计,无需客户系统进行任何形式的再开发工作。独立的可封装类,基于公开的接口,向客户系统提供数据库表更新的实时通知。所有的过程是透明的。
附图说明
图1是本发明的数据库表动态监控系统的结构示意图。
具体实施方式
图1描述的是一个完整的可封装的类,封装后的类可以独立工作,向客户系统提供数据库表更新的实时通知。以次类为基础,可以组建一个动态数据的应用系统,在该系统中,数据库的数据对客户是实时的。
这里,我们使用的数据库是MICROSOFT SQL SERVER 2000,开发系统使用的是MICROSOFT VISUAL BAISIC.NET。
如图1所示系统包括:
监控表,其存储所有用户表的表名以及其生命标志;
监控触发器,该触发器将截获用户表的任意更新,维护监控表中相应纪录的表生命标志,该触发器与所述用户表一一对应,可截获相应用户表的插入、更新、删除操作;
监控表备份,系统在应用部分为监控表配备了一个备份;
监控模块,其通过数据库连接器访问监控表,获得用户表的生命标志,将获得的用户表生命标志同监控表备份进行对比,以发现更改;
发布接口(图中未示),输出实时的数据库表更新通知,系统提供了两种类型的输出,事件和DataTable(数据表)类型的属性。客户可以由此获得实时的数据库表更新通知。
本发明的数据库表更新的动态监控方法包括如下步骤:
1、建立监控表步骤;
2、准备监控触发器步骤;
3、实时监控步骤;
4、清理步骤。
一、建立监控表:
1)、应用系统自动创建一个用户监控表:该表存储除监控表自己外的所有用户表的表名以及其生命标志。监控表结构如下:
Figure C20041005342300081
必须首先查询SYSOBJECTS(数据库系统对象表)系统表,以确认监控表的存在。如果监控表已经存在,则立即将其删除。并按上表格式重新创建监控表。使用简体中文排序规则。
注意:
监控表表名可以是任意的,但无论如何,他应该被视为系统的保留字,不能被另作他表名使用。
监控表应该在系统启动时,通过应用系统自动创建,在退出时自动删除。监控表可以看作是一个临时的表,其生命周期和应用系统的生命周期相同。在下面的描述中,除非特别声明,监控表不在我们的用户表之列。
2)、对监控表进行数据填充:填充的过程必须通过应用系统自动完成。因为,在应用系统每次启动之前,数据库表有可能已经进行了重新的定义。
填充的过程分为两个部分:
a:获取数据库中所有用户表表名:查询SYSOBJECTS系统表,以发现所有的用户表表名列表。
b:填充监控表:首先,必须将监控表中的数据全部清除;然后,通过查询SYSOBJECTS系统表,获取所有的用户表表名列表,并将其插入监控表中。
通过上述创建和填充两个步骤,我们已经获得了一个包含所有除监控表自己外的用户表表名的监控表。除表名字段外,该表还包含一个重要的生命标志字段,随后系统将使用这个字段进行数据库表更新的校验。
二、准备监控触发器
触发器是数据库表更新的动态监控机制的基础。
这里,使用“TBC_”作为监控触发器的保留字。为所有的除监控表外的用户表创建一个以“TBC_表名”格式命名的FOR INSERT,UPDATE,DELETE(插入、更新、删除)的触发器。因此,“TBC_表名”的所有命名应该被视作系统的保留字,不可以用于创建其他的数据库对象,否则系统将发生兼容性故障。
准备监控触发器的过程应该是自动的,其中包括两个步骤:
1)删除现有的监控触发器
由于系统启动之前,数据库有可能已经发生了重新的定义,有很多因素已经不可预见,为了确保系统的正常运作,我们应该对所有的监控触发器进行清理。
我们必须首先使用SQL语句查询SYSOBJECTS系统表,以发现一个监控触发器的存在。如果存在,则立即将其删除
对于所有用户表,我们必须执行一次清理。在Microsoft VisualBasic.Net中我们可以使用循环以遍历所有的用户表。
2)创建新的监控触发器
监控触发器清理完成后,我们必须紧跟着为每一个用户表创建新的监控触发器。监控触发器的类型必须为FOR INSERT,UPDATE,DELETE的。
监控触发器应包含必要的SQL语句,一旦触发器被触发,可以立即以当前时间更新指定用户表在监控表中的生命标志。
通过上述的删除和创建两个步骤,我们已经为所有的用户表创建了一个FOR INSERT,UPDATE,DELETE的触发器。至此,对表的任意更新操作,无论是来自于前台的还是来自于后台的,都将引发刚刚创建的触发器,导致监控表中对应表的生命标志发生最新的更改。
三、实时监控
上面,我们已经为数据库表更新的动态监控准备了必要的环境资源。下面,我们将通过三个简单的步骤发现并发布数据库表的更新。
这里,我们使用了一个系统定时器对监控表进行轮训,轮训的周期可以根据系统的具体情况进行相应的调整。
1)获取用户表的生命标志
由于监控触发器已经为所有的用户表在监控表中维护了最新的生命标志,因此在这里我们只需要通过一个简单的监控表访问,即可以获得所有表的生命标志。
2)更新校验
这里,我们在应用系统中为所有用户表的生命标志准备了一个备份。我们只需要将刚刚所获得所有用户表的生命标志同备份进行简单的逐一比对,即可以发现一个表的更新与否。
注意,非常重要的一步是,在进行新旧的比对后,必须对应用系统中的所有表的生命标志的备份进行无条件的更新,否则我们将总是会得到表的更新报告。
3)发布
系统最终的目的是将表更新的事件进行实时的发布,以通知所有的客户端。
这里,我们为不同的应用需求准备了两种类型的发布接口。
a:DataTable类型的属性
DataTable(数据表)是ADO.NET(微软的一种最新的数据访问技术)中的核心对象。表示内存中数据的一个表。DataTable对象是可以远程处理的ADO.NET对象。客户端可以通过类似上述第2)步的新旧比较,获得表的更新事件。
b:事件通知
这是一种令人心悦的通知方式。这种方式下,客户端不需要再做其它的工作,只需要在事件范围内执行相应的业务响应。
实现该方式,我们只需要声明一个公开的事件,并在表发生更改时执行触发。
至此,我们实现了对数据库表的动态监控。但是作为一个完整的系统,我们还需要必要的结束过程。
四、清理
应用系统结束之前,系统应该对环境进行清理。
系统的结束过程与初始化过程相对应,也包括两个主要的部分,这两个部分针对初始化过程中所创建的临时资源进行清理,主要包括两个数据库脚本。
1)删除监控触发器
对所有的监控触发器,使用SQL(国际标准结构化查询语言)语句逐一查询SYSOBJECTS(数据库系统对象表)系统表,如果指定的监控触发器存在,则立即删除。
2)删除监控表
使用SQL语句查询SYSOBJECTS系统表,如果指定的监控表存在,则立即删除。
至此,实现了对数据库表的动态监控的全部步骤。接下来,可以对系统进行封装,以展现给客户的是一个透明的系统。

Claims (8)

1、一种数据库表更新的动态监控系统,其特征在于,包括:
监控表,其存储所有用户表的表名以及其生命标志;
监控触发器,该触发器将截获用户表的任意更新,维护监控表中相应纪录的表生命标志,该触发器与所述用户表一一对应,可截获相应用户表的插入、更新、删除操作;
监控表备份,系统在应用部分为监控表配备了一个备份;
监控模块,其通过数据库连接器访问监控表,获得用户表的生命标志,将获得的用户表生命标志同监控表备份进行对比,以发现更改;
发布接口,输出实时的数据库表更新通知。
2、一种数据库表更新的动态监控方法,其特征在于,包括如下步骤:
1)、建立监控表:创建一个用户监控表,并在该表内填充所有用户表的表名以及其生命标志;
2)、准备监控触发器:删除现有的监控触发器,并为每一个用户表创建新的监控触发器,监控触发器截获用户表的任意更新,并维护监控表中的相应用户表的生命标志;
3)、创建监控表备份;
4)、实时监控:访问监控表,获得用户表的生命标志,将获得的用户表的生命标志同监控表备份进行对比,以对用户表更新的事件进行实时的发布。
3、根据权利要求2所述的数据库更新的动态监控方法,其特征在于,还包括步骤5)、清理:删除监控触发器以及监控表。
4、根据权利要求2所述的数据库更新的动态监控方法,其特征在于,所述的创建用户监控表前先确认监控表是否存在,如果监控表已经存在,则立即将其删除,并重新创建监控表。
5、根据权利要求4所述的数据库更新的动态监控方法,其特征在于,所述的监控表在系统启动时,通过应用系统自动创建,在退出时自动删除,也就是说监控表可以看作是一个临时的表,其生命周期和应用系统的生命周期相同。
6、根据权利要求2所述的数据库更新的动态监控方法,其特征在于,所述的填充步骤包括:首先,将监控表中的数据全部清除;然后,通过查询SYSOBJECTS系统表,获取所有的用户表表名列表,并将其插入监控表中。
7、根据权利要求2所述的数据库更新的动态监控方法,其特征在于,所述的监控触发器包含必要的SQL语句,一旦触发器被触发,可以立即以当前时间更新指定用户表在监控表中的生命标志。
8、根据权利要求2所述的数据库更新的动态监控方法,其特征在于,所述的发布形式为:事件或数据表类型的属性。
CNB2004100534236A 2004-08-04 2004-08-04 数据库表更新的动态监控系统及方法 Expired - Lifetime CN100359482C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100534236A CN100359482C (zh) 2004-08-04 2004-08-04 数据库表更新的动态监控系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100534236A CN100359482C (zh) 2004-08-04 2004-08-04 数据库表更新的动态监控系统及方法

Publications (2)

Publication Number Publication Date
CN1673972A CN1673972A (zh) 2005-09-28
CN100359482C true CN100359482C (zh) 2008-01-02

Family

ID=35046534

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100534236A Expired - Lifetime CN100359482C (zh) 2004-08-04 2004-08-04 数据库表更新的动态监控系统及方法

Country Status (1)

Country Link
CN (1) CN100359482C (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551649B (zh) * 2008-03-31 2011-06-29 上海宝信软件股份有限公司 支持单连接的设备监控装置及其实现方法
CN101753987B (zh) * 2008-12-02 2012-10-03 北京中星微电子有限公司 视频监控系统及该系统中的软件界面更新装置和方法
CN101770484B (zh) * 2008-12-31 2012-12-26 北大方正集团有限公司 一种网站更新实时发布的方法及系统
CN102214109B (zh) * 2010-04-08 2015-04-15 深圳市金蝶中间件有限公司 一种加载插件的方法及装置
CN102289433B (zh) * 2010-06-18 2015-03-25 中兴通讯股份有限公司 一种实现数据库触发器功能的方法及装置
CN102508833A (zh) * 2011-09-22 2012-06-20 用友软件股份有限公司 数据监控装置及方法
CN102722514B (zh) * 2011-12-30 2017-11-10 新奥特(北京)视频技术有限公司 一种远程动态创建数据库的方法
CN102662995B (zh) * 2012-03-15 2015-09-30 播思通讯技术(北京)有限公司 一种快速定位手机应用数据更新的方法
CN102662901A (zh) * 2012-04-11 2012-09-12 南方电网科学研究院有限责任公司 一种一体化电力信息总线参数同步的实现方法
CN102855319A (zh) * 2012-09-05 2013-01-02 国家电网公司 Oracle数据库操作监控系统
CN103870580A (zh) * 2014-03-24 2014-06-18 深圳市众鸿科技股份有限公司 一种基于对象的动态属性云管理平台及系统
CN105320576A (zh) * 2014-05-30 2016-02-10 中国电信股份有限公司 数据库备份装置与方法
CN110083651B (zh) * 2015-11-20 2021-06-29 杭州数梦工场科技有限公司 一种数据加载的方法和装置
CN107301186B (zh) * 2016-04-15 2020-10-09 中国移动通信集团重庆有限公司 一种无效数据的识别方法及装置
CN107784043B (zh) * 2016-08-31 2022-04-12 北京京东尚科信息技术有限公司 数据仓库数据表的监控方法、装置及系统
CN106599268A (zh) * 2016-12-22 2017-04-26 曙光信息产业(北京)有限公司 一种sql语句的处理方法和装置
CN108255848B (zh) * 2016-12-29 2022-06-24 阿里巴巴集团控股有限公司 实现条件更新的方法、设备及系统
CN107193736B (zh) * 2017-05-18 2020-07-28 恒生电子股份有限公司 测试方法、装置、电子设备以及存储介质
CN110413607B (zh) * 2018-04-28 2022-04-08 武汉斗鱼网络科技有限公司 一种分布式计数方法、服务器及系统
CN109857720B (zh) * 2018-12-20 2024-02-02 中国平安人寿保险股份有限公司 数据库表监控方法、装置、计算机装置及可读存储介质
CN109783574A (zh) * 2018-12-25 2019-05-21 沈阳通用软件有限公司 一种高效的数据库备份方法
CN110515807B (zh) * 2019-09-02 2023-07-14 北京启迪区块链科技发展有限公司 一种数据库表监控方法、装置、设备及存储介质
CN111162995A (zh) * 2019-12-26 2020-05-15 苏州浪潮智能科技有限公司 一种数据变更通知方法、装置、设备及可读存储介质
CN111367932B (zh) * 2020-03-06 2023-05-12 深圳市今天国际物流技术股份有限公司 数据库表单变更通知方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1092886A (zh) * 1992-12-08 1994-09-28 艾利森电话股份有限公司 用于数据库中进行备份的系统
US5680614A (en) * 1992-05-20 1997-10-21 Nec Corporation Relational database management system
US5680602A (en) * 1995-04-11 1997-10-21 International Business Machines Corporation Trigger generation in an active database management system
CN1367898A (zh) * 1999-07-07 2002-09-04 联合想象计算机公司 实时数据库对象的统计数字的采集
US6629106B1 (en) * 1999-02-26 2003-09-30 Computing Services Support Solutions, Inc. Event monitoring and correlation system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680614A (en) * 1992-05-20 1997-10-21 Nec Corporation Relational database management system
CN1092886A (zh) * 1992-12-08 1994-09-28 艾利森电话股份有限公司 用于数据库中进行备份的系统
US5680602A (en) * 1995-04-11 1997-10-21 International Business Machines Corporation Trigger generation in an active database management system
US6629106B1 (en) * 1999-02-26 2003-09-30 Computing Services Support Solutions, Inc. Event monitoring and correlation system
CN1367898A (zh) * 1999-07-07 2002-09-04 联合想象计算机公司 实时数据库对象的统计数字的采集

Also Published As

Publication number Publication date
CN1673972A (zh) 2005-09-28

Similar Documents

Publication Publication Date Title
CN100359482C (zh) 数据库表更新的动态监控系统及方法
CN101847100B (zh) 扩展软件应用的方法和装置
CN100492989C (zh) 使用插件进行业务扩展的系统及其方法
CN101438261B (zh) 执行逐步升级的方法及系统
CN101218565B (zh) 用于将主机环境迁移至新系统平台的方法和交易控制组件以及相关的分散客户端系统
CN104866599B (zh) 可视化报表的生产方法和系统
US7177865B2 (en) Data synchronization method and system
US20120036049A1 (en) System and method for software integration and factory deployment
US7107597B2 (en) Method of and system for controlling task-oriented systems utilizing an application programming interface
CN101799826B (zh) 一种基于虚拟视图的网络化数据共享系统及方法
US20060143193A1 (en) Method and apparatus for metadata driven business logic processing
CN105302575A (zh) 一种基础开发框架
CN105302721A (zh) 云计算平台中实现集中模拟服务器集成测试的系统及方法
CN102402526A (zh) 一种地理信息数据库管理方法及系统
CN1938679A (zh) 用于程序执行的系统和方法
RU50695U1 (ru) Система хранения и обработки данных
CN104794147A (zh) 异构数据库访问方法
CN105637478A (zh) 原生移动应用代码的计算机辅助开发
CN111930354B (zh) 一种用于软件开发的框架组件系统及其构建方法
CN109614084A (zh) web程序及其快速开发框架、开发方法与相关设备
CN114444478A (zh) 一种凭证可视化方法、装置、电子设备及存储介质
CN112732805A (zh) 一种资产管理方法及资产管理系统
CN109871394B (zh) 一种全量分布式高并发计算方法及装置
CN114116900B (zh) 一种基于mdd模型的高效交易系统及开发方法
CN105357306A (zh) 多平台数据共享系统及其数据共享方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080102