数据库日志信息源监测方法的研究与实现以SQL?Server数据库为例 下载本文

内容发布更新时间 : 2024/5/23 19:31:00星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

数据库日志信息源监测方法的研究与实现以SQL Server数据库为例

作者:范霖君

来源:《中国新通信》2015年第06期

【摘要】 随着信息时代的到来,数据集成技术发挥着越来越重要的作用。一般情况下,数据集成系统的组成部分包括监视智能代理与集成器两个方面,其中监视智能代理最为重要的作用就是对信息源的数据变化进行有效监测。监测方法多种多样,本文针对基于SQL Server数据库日志的信息源监测方法进行了研究,指出了通过对SQL Server数据库日志的分析与研究,实现对数据库的更新检测。

【关键词】 SQL Server数据库 事务日志 信息源监测

随着互联网技术的不断发展与普及,信息在数量、分布方面都快速增长,在存储格式方面也呈现出越来越大的差异性。如何在浩淼复杂的信息中快速获取所需信息成为了研究的重点问题。

当前,Internet中主要采用客户主动查询与访问信息源的方式对信息进行获取,这就导致信息源在整个过程中处于被动地位,一方面给客户造成过重的负担,另一方面给异质信息源数据的集成带来了困难。数据集成技术的出现很好的解决了上述问题。 一、信息源监视代理机制及更新检测方法 1.1信息源监视代理机制

信息源监视代理器的系统结构中包含了非常多的功能模块,其中最为关键的功能之一就是对监测目标的更新进行检测。在这些功能模块中,计时器的主要作用是对按照周期进行报送的监测目标的周期进行检测,如果周期到来则向事件处理模块发送报告;通信终端的主要作用是实现与集成器之间的双向通信,一方面接收集成器提交的命令信息,另一方面向集成器发送增量文件;事件检测器的主要作用是通过对日志进行分析,对其事件进行检测,并将检测结果向事件处理模块发送信息。

1.2基于日志的数据源更新检测方法

与其他的检查分析方法相比,日志分析方法在理论方面具有较高的效率。一般情况下,在监控周期中对基表变化进行反映的日志仅仅包含少量的数据,在对这些数据进行有效的分析之后就能够获取所需的增量。从总体上来讲,基于日志分析的检测分析方法主要工作包括以下两个方面:

龙源期刊网 http://www.qikan.com.cn

第一,通过日志监视器对数据源日记进行周期性的分析,将分析所得到的结果提交到日记分析流中。一般情况下,日志分析流与基表之间是相互对应的,在日志分析流中记录着其对应基表的元组变化及分析结果。

第二,按照时段对日志分析流进行截取之后得到日记分析对象,在对其完成分析之后将结果输出到增量文件中。这两个方面的工作是并发执行的,在运行的过程中保持着相互独立的状态,通过日志分析流而产生相互之间的作用。 二、SQL Server数据库日志概述 2.1 SQL Server数据库日志的架构

在Microsoft SQL Server 数据库中应该至少包含数据文件及事务日志文件各一个,且两者不会在同一个文件中出现。事务日志的主要作用是对数据库中的修改及对应的事务进行记录。事务日志对事务及修改进行记录的作用主要包括:对个别事务进行恢复、对未完成的事务进行启动恢复、将数据库还原到故障点。

事务日志的特点为:第一,事务日志实际上是文件,在对其管理的过程中能够更加方便可靠;第二,日志记录与页的格式可以与数据页的格式不同;第三,事务日志能够在几个文件中实现,还能够进行自动增长。 2.2事务日志的读取

SQL Server数据库中并没有指出非常标准的SQL命令,因此在对事务日志信息读取的过程中存在一定的复杂性。即使在SQL Server数据库中已经配备了系统表,但是在对事务日志信息进行读取的过程中依旧非常困难。然而,DBCC LOG命令属于SQL Server数据库的日志读取接口,对于SQL Server无文档的DBCC LOG命令而言,其提供了一种非常有效的事务日志读取手段,能够对内存中的各种活动日志记录进行读取。 三、SQL Server数据库日志更新检测方法 3.1相关技术分析 3.1.1 JAVA

JAVA是一门跨平台的面向对象编程语言,其主要的特点包括以下几个方面:

第一,JAVA能够在不同的操作系统平台中进行运行,其数据类型与计算机操作系统不存在联系;

第二,JAVA是面向对象的,通过对数据与方法的封装在类而具备了简便性;

龙源期刊网 http://www.qikan.com.cn

第三,JAVA与其他编程语言相比更加安全与可靠。 3.1.2 JDBC

JDBC(Java Database Connectivity)是一种用于执行SQL语句的JAVA API,其建立的基础为X/Open SQL Call Level Interface,与数据库管理系统是相互独立的,能够对大多数的关系数据库进行访问。JDBC的结构主要包括两个层:第一层为JDBC API,主要的作用是实现应用程序与JDBC管理器之间的连接;第二层为JDBC Driver API,主要的作用是实现驱动器与JDBC管理器之间的连接。

3.2 SQL Server数据库日志分析的类

第一,SQL ServerConnector类。其主要功能是依据数据库类型与连接参数对JDBC连接驱动器进行调用,从而实现JDBC与数据库之间的连接。

第二,SQL ServerUtil类。其主要功能是实现各种辅助性的工作。 第三,SQL ServerLogRead类,其主要功能是对日志进行读取。

第四,TypesOfDataAnal类,其主要功能是对不同类型的行数据进行分析工作。 第五,DeleteAnalyser类,其主要功能是对执行删除操作的日志进行记录与分析工作。 第六,UpdateAnalyser类,其主要功能是对执行修改操作的日志进行记录与分析工作。 第七,SQL ServerLogAnalyse类,其主要功能是依据日志的类型对分析器进行调用。 3.3更新检测模块结构

更新检测模块的基础为日志读取与日志分析抽象类,其主要的内容包括对读取前的初始化操作进行声明,同时对日志记录进行读取及释放内存。日志记录的读取方法主要包括两种,一种方法指的是按照上层ECA模块指定的起始LSN进行读取,另一种方法指的是按照上次读取的日志记录进行读取。在更新检测模块的主类中,主要是通过数据库具体信息数组与运行信息类对象实现初始化工作,创建日志读取线程LogReadThread和日志分析主线程LogAnalyseMainThread。 四、总结

与Oracle等数据库相比,SQL Server数据库所具有的功能与接口并不十分完备,其事务日志更新检测方法在实现的过程中具有一定的复杂程度。本文对基于SQL Server数据库日志的信息源监测方法进行了研究,通过对事务日志的读取与分析实现了对SQL Server数据库更新