一种针对数据丢失的数据库数据快速恢复方法技术

技术编号:4067902 阅读:212 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供的是一种针对数据丢失的数据库数据快速恢复方法。通过SQL捕获器、SQL日志、日志监视器、决策器、SQL信息栈、快速恢复器、备份库表及同步器实现对数据库数据的快速恢复。SQL捕获器实时捕获数据库系统的SQL交互信息,并将捕获到的SQL信息写入SQL日志;日志监视器实时监视SQL日志的变化,将捕获到的SQL信息交由决策器处理;决策器对接受到的SQL信息进行分析后,将可能引起数据丢失的SQL信息提交到SQL信息栈,供快速恢复器调用;当数据丢失发生时,快速恢复器检查SQL信息栈的SQL信息,调用相应的恢复策略对系统实施快速恢复。恢复完成后,同步器更新备份库表,使其中的数据与原始库表保持一致。

【技术实现步骤摘要】

本专利技术涉及的是一种数据库数据恢复方法,尤其涉及一种针对数据丢失的数据库 数据快速恢复方法,属于信息安全领域。
技术介绍
随着计算机应用的不断深入,数据库应用系统已成为人们处理日常事务的必备工 具。然而,随着数据库系统自身复杂性的提高以及外在网络环境攻击手段的日趋多样化,数 据库系统的管理与维护日益困难,由于人为攻击、操作失误以及突发灾难所造成的数据丢 失已经给数据库用户造成重大的损失,如何保障数据库应用系统的安全、可靠、连续运行以 及数据信息的完整性,已成为信息安全领域一个备受瞩目的研究方向。针对该问题,2004年,微软公司提出了数据库备份恢复的思想(公开号 CN1784677),并在公开号为CN1842789的专利文件中给出了在备份恢复过程进行快照查询 的方法。在此基础上,北京九州软件有限公司给出了数据库备份数据的压缩和检索方法 (公开号CN1851691),以减少备份恢复所需的系统开销。华为科技有限公司则在备份恢复 思想的基础上,提出了基于逻辑日志生成的数据库系统恢复方法(公开号CN101122924), 根据数据库系统日志信息对数据库实施恢复。
技术实现思路
本专利技术的目的在于提供一种可以快速解决数据库系统运行过程中由于外在攻击、 错误操作或突发灾难引起的数据丢失问题的数据库数据快速恢复方法。本专利技术的目的是这样实现的步骤一 SQL捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕 获到的SQL信息按一定格式写入SQL日志文件中。步骤二 日志监视器监视SQL日志的变化,实时读取日志中新产生的SQL信息,交 由决策器分析决策。步骤三决策器根据“筛选算法”对不同类型的SQL信息进行分析,将可能需要恢 复的SQL信息交付到SQL信息栈,供快速恢复器调用。步骤四数据库系统需要恢复时,快速恢复器取出SQL信息栈中的SQL信息,根据 不同的SQL操作类型,调用相应的“快速恢复算法”对系统实施快速恢复。步骤五恢复完成后,同步器更新备份库表,使备份数据与原始数据保持同步。本专利技术面向数据库应用系统,提出了一种针对数据丢失的数据库数据快速恢复方 法。该方法通过SQL捕获器、SQL日志、日志监视器、决策器、SQL信息栈、快速恢复器、备份 库表及同步器实现对数据库数据的快速恢复。首先,SQL捕获器实时捕获数据库系统的SQL 交互信息,并将捕获到的SQL信息写入SQL日志。其次,日志监视器实时监视SQL日志的变 化,将捕获到的SQL信息交由决策器处理;决策器对接受到的SQL信息进行分析后,将可能 引起数据丢失的SQL信息提交到SQL信息栈,供快速恢复器调用。当数据丢失发生时,快速恢复器检查SQL信息栈的SQL信息,根据快速恢复算法对系统实施快速恢复。恢复完成后, 同步器更新备份库表,使其中的数据与原始库表保持一致。附图说明图1本专利技术的实现原理图;图2SQL捕获流程图;图3筛选方法流程图;图4快速恢复方法流程图。具体实施例方式下面结合附图举例对本专利技术做更详细地描述图1说明了本专利技术的实现原理,给出了一种针对数据丢失的数据库数据快速恢复 方法步骤一 SQL捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕 获到的SQL信息按一定格式写入SQL日志文件中。步骤二 日志监视器监视SQL日志的变化,实时读取日志中新产生的SQL信息,交 由决策器分析决策。步骤三决策器根据“筛选算法”对不同类型的SQL信息进行分析,将可能引起数 据丢失的SQL信息交付到SQL信息栈,供快速恢复器调用。步骤四当数据丢失发生时,快速恢复器取出SQL信息栈中的SQL信息,根据不同 的SQL操作类型,调用相应的“快速恢复算法”对系统实施快速恢复。步骤五恢复完成后,同步器更新备份库表,使备份数据与原始数据保持同步。1、SQL 捕获器SQL捕获器负责实时捕获数据库系统运行过程中产生的SQL交互信息。通过使用 SQL拦截技术,可以实现对数据库系统SQL交互的有效捕获。如图2所示,一次完整的SQL 捕获过程可以描述如下(I)SQL执行语句;(2)加载SQL拦截驱动;(3)拦截SQL语句,写日 志;(4)调用应用程序真正的驱动(如OraclhMysql等),执行SQL。下面给出SQL捕获器 拦截和记录数据库应用程序JDBC语句的工厂方法public class P6LogFactory extends P6CoreFactory{public Connection g etConnection(Connection conn) {return new P6LogConnection(this, conn);}public PreparedStatement getPreparedStatement(PreparedStatemen t real,P6Connectionconn,String pO) {return new P6LogPreparedStatement (this,real,conn,pO);}public Statement getStatement(Statement statement,P6Connection conn) {4public CallableStatement getCalIableStatement(CalIableStatemen t real, P6Connectionconn, String pO) {return new P6LogCallableStatement (this, real, conn, pO);}public ResultSet getResultSet (ResultSet real, P6Statement statement, StringpreparedQuery, String query){return new P6LogResultSet(this, real,statement,preparedQuery, query);}}2、SQL 日志SQL日志按照一定格式存储了 SQL捕获器捕获到的SQL信息,是进行数据库数据恢 复的依据。为了便于快速恢复,下面给出了 SQL日志中存储SQL信息的一种实现方式。struct sqlformat{Time time ;/* 发生时间,如 hh:mm: ss*/int categories ;ASQL 类型,error, info,batch,debug,statement 等 */String sql ;/*SQL 语句信息 */}3、日志监视器日志监视器监视SQL日志的变化,实时读取SQL日志中新产生的SQL信息,交由决 策器处理。以下给出了 Eclipse环境下实现日志监视器的关键代码。public class ReadLogThread extends Thread{/氺操作监视线程*/public void run() {String url = " C:/ProgramFiles/ApacheSoftwareFoundation/Tomcat 6. 0/bin/spy. log";FileReader fr = new FileReader (url);BufferedReader br = new Buff本文档来自技高网...

【技术保护点】
一种针对数据丢失的数据库数据快速恢复方法,其特征包括如下步骤:步骤一:SQL捕获器实时捕获数据库系统运行过程中产生的SQL交互信息,并将捕获到的SQL信息写入SQL日志文件中;步骤二:日志监视器监视SQL日志的变化,实时读取日志中新产生的SQL信息,交由决策器分析决策;步骤三:决策器对不同类型的SQL信息进行分析,将可能引起数据丢失的SQL信息交付到SQL信息栈,供快速恢复器调用;步骤四:当数据丢失发生时,快速恢复器取出SQL信息栈中的SQL信息,根据不同的SQL操作类型,调用相应的恢复策略对系统实施快速恢复;步骤五:恢复完成后,同步器更新备份库表,使备份数据与原始数据保持同步。

【技术特征摘要】

【专利技术属性】
技术研发人员:王慧强郑业青王海峰周晓耕
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:93[中国|哈尔滨]

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

1