面向Web开发环境的关系型数据库数据回溯方法技术

技术编号:16175588 阅读:30 留言:0更新日期:2017-09-09 02:48
一种面向Web开发环境的关系型数据库数据回溯方法,包括以下步骤:第一步、建立Web环境SeeLog日志处理模型,过程如下:1.1自动获取SeeLog日志;1.2根据算法动态调整日志持久化行为;1.3采用日志分割策略进行持久化操作;第二步、采用TBack数据回溯机制进行数据库恢复,过程如下:一旦数据库在某一时间点发生故障,利用数据库事务日志进行数据回溯,将数据库恢复至故障发生之前的任意时间点;第三步、采用内存日志的自备份机制,将每个事务即时写入持久化层,保证内存日志不会丢失。本发明专利技术能实现低成本的数据备份并且可以不依赖于具体的关系型数据库种类和版本。

【技术实现步骤摘要】
面向Web开发环境的关系型数据库数据回溯方法
本专利技术涉及一种Web开发环境下关系型数据库数据回溯方法。
技术介绍
随着信息时代的发展,数据的妥善保存必不可少,数据通常保存在数据库中,一旦数据库发生故障,就会造成数据丢失。因此,数据库的备份恢复技术显得尤为重要。目前,系统应用层面的备份技术主要采用双机热备份的方式;而数据库层面,常见的数据库备份恢复方案主要有物理备份和逻辑备份两种。物理备份需要将数据库的物理文件(包括控制文件、数据文件、日志文件等)拷贝到存储介质中,根据备份时数据库的运行状态又分为脱机备份和联机备份两种。脱机备份是指在关闭数据库的情况下,将数据库的物理文件拷贝到存储介质,一般利用操作系统自带的命令和工具来完成,操作简单,缺点在于这种方法往往需要将数据库关闭,对于系统应用的连续性有一定影响。联机备份是指在数据库开启并提供用户访问的情况下,对物理文件做操作系统级别的备份,缺点是操作比较复杂,需要对操作系统有较深的认识。逻辑备份是针对用户、表空间、表、分区等数据库逻辑组件进行备份,一般将数据库逻辑组件信息导出转存为二进制文件,恢复操作中,将导出的二进制文件重新装载到目标数本文档来自技高网...
面向Web开发环境的关系型数据库数据回溯方法

【技术保护点】
一种面向Web开发环境的关系型数据库数据回溯方法,其特征在于:包括以下步骤:第一步、建立Web环境SeeLog日志处理模型,过程如下:1.1自动获取SeeLog日志:Web环境下,当用户操作数据库时,会执行DML语句,包含:UPDATE、INSERT、DELETE三种形式;成功执行DML语句后,会触发日志处理单元;日志处理单元运用AOP面向切面编程的思想,以业务处理过程中对数据库的修改作为切入点,将日志记录的代码以通知的形式织入切入点中,形成切面,达到日志处理逻辑与业务操作逻辑分离的目的;1.2根据算法动态调整日志持久化行为:SeeLog日志的作用是记录用户对数据库修改的所有行为,从而保证在数...

【技术特征摘要】
1.一种面向Web开发环境的关系型数据库数据回溯方法,其特征在于:包括以下步骤:第一步、建立Web环境SeeLog日志处理模型,过程如下:1.1自动获取SeeLog日志:Web环境下,当用户操作数据库时,会执行DML语句,包含:UPDATE、INSERT、DELETE三种形式;成功执行DML语句后,会触发日志处理单元;日志处理单元运用AOP面向切面编程的思想,以业务处理过程中对数据库的修改作为切入点,将日志记录的代码以通知的形式织入切入点中,形成切面,达到日志处理逻辑与业务操作逻辑分离的目的;1.2根据算法动态调整日志持久化行为:SeeLog日志的作用是记录用户对数据库修改的所有行为,从而保证在数据库发生故障后,能真实还原用户操作数据库的场景,使数据库达到故障发生之前的状态;在SeeLog日志处理模型中,日志首先会被写入内存,一段时间后再将内存中的日志写入持久化层;1.3采用日志分割策略进行持久化操作:当内存日志写入持久化层时,将日志进行分割,将单个日志文件的最大数据行设置为Rowmax,该数值根据实际需要自行更改;首个日志文件会根据创建时间命名,每当数据行数达到Rowmax时,则新建文件继续写入,所有文件新建时都以创建时间作为文件名,以便搜索文件时快速定位时间点;第二步、采用TBack数据回溯机制进行数据库恢复,过程如下:一旦数据库在某一时间点发生故障,利用数据库事务日志进行数据回溯,将数据库恢复至故障发生之前的任意时间点;步骤2.1TBack数据回溯机制必须基于某一时刻的数据库版本进行恢复,建立数据库里程碑,里程碑的意义在于:恢复数据时,先将数据库还原至里程碑时的状态,然后依据SeeLog日志,按照时间流的形式重现用户操作进行数据回溯。数据库备份人员可按具体项目需要,不定期进行一次数据库备份,建议选择Web应用用户访问量较少时进行;数据库里程碑的建立根据采用数据库类型不同而略有差异,但都依托数据库自带命令行工具或GUI完成,备份人员执行一次备份任务后,需要将备份文件进行归档,并在里程碑历史表中添加本次里程碑建立信息,里程碑历史表中详细记录了从数据库新建开始到目前为止,每次里程碑建立的时间、备份文件归档路径以及备份文件名,方便对数据库历史进行定位追踪;TBack数据回溯机制采用基于用户行为分析的备份策略,通过感知用户在Web应用中对数据库所做的修改进行记录,而无法监测到管理员直接对数据库所做的改动;因此每当数据库结构发生改变或者DBA管理员手动修改数据库之后,需要数据库备份人员建立一个里程碑,否则会导致回溯机制失效;步骤2.2数据库故障发生后,先确定待恢复时间timeEnd,为数据库发生故障前的某个时间点,然后对照里程碑历史表选择合适的里程碑,选择故障发生前最近一次里程碑,根据记录的路径获取相应的备份文件,并记下里程碑建立的时间timeStart。打开数据库自带命令行工具或GUI,读取里程碑备份文件,执行数据库还原命令,由于采用数据库类型不同,还原命令会略有差异。执行成功后,数据库还原至里程碑时的状态;步骤2.3启动新线程,程序首先确定回溯起始文件,进入SeeLog日志的存放目录,逐个搜索文件名,找到相邻的两个文件F1、F2,使得F1的文件名时间小于里程碑建立的时间timeStart;而F2的文件名时间刚好大于timeStart。此时文件F1记录的是从F1的文件名时间开始到timeStart期间的所有用户行为,因此可以确定回溯起始文件为F1;按照同样的方法,根据待恢复时间timeEnd搜索得到回溯结束文件;接着程序将继续定位恢复起始数据行,由于日志文件的每行数据都记录着用户的操作时间,因此可以根据操作时间进行快速定位;回溯起始文件中,操作时间大于timeStart的第一条数据所在行即为恢复起始数据行lineStart;同样,回溯结束文件中,操作时间小于timeEnd的最后一条数据所在行即为恢复结束行lineEnd。然后程序将读取lineStart到lineEnd区间内的所有用户行为,并逐条将数据压入队列中,该队列创建在内存中,SeeLog日志每行数据构成的五元组将作为参数传入,该五元组存储在队列的每一个元素中;步骤2.4采用管道流处理机制,首先任务执行中枢将解析Web应用中的数据源配置,并建立数据库连接,然后从队列中取出一个元素进入管道流,其他元素在队列中继续等待,任务执行中枢将读取元素中的五元数据组<OperateTime,[OperateType],SQL,{Parameters},[IsBatch]>,根据五元组中的是否批量属性IsBatch,确定是否开启数据库事务,读取SQL语句属性(SQL)生成预处理语句,并将占位符参数Parameters填入,接着根据操作类型属性OperateType执行当前预处理语句,执行成功后,本条用户行为数据还原完毕,继续从队列中取出下一个元素进入管道流;当任务执行中枢取出当前队列中所有的元素后,会唤醒步骤2.3中等待的线程,此时可以继续读取日志文件中的下一部分数据;步骤2.5若步骤2.4中的任务执行中枢未能成功执行预处理语句,将挂起从队列中读取元素进入管道流的操作,并每间隔一段时间重复执行一次当前的预处理语句,若能成功执行,则恢复挂起的操作,继续读取队列中的元素;若重复执行一定次数后,仍未能执行成功,将提示数据库恢复人员手工排查错误,并暂停整个程序的运行,直到当前预处理语句成功执行,程序才继续运行并恢复挂起的操作;当lineStart到lineEnd区间内的所有数据都恢复成功后,数据回溯完毕,数据库成功还原至故障发生之前的状态;第三步、采用内存日志的自备份机制,将每个事务即时写入持久化层,保证内存日志不会丢失。2.如权利要求1所述的一种面向Web开发环境的关系型数据库数据回溯方法,其特征在于:所述第三...

【专利技术属性】
技术研发人员:陆佳炜卢成炳李杰肖刚张元鸣徐俊周焕高燕煦马俊陈烘
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

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

1