【技术实现步骤摘要】
用于保证数据库修改永久性的方法及装置
本专利技术涉及数据库
,尤其涉及一种用于保证数据库修改永久性的方法及装置,更具体地,涉及一种用于保证硬件数据库修改永久性的方法、用于保证数据库系统修改永久性的方法、电子设备及计算机可读存储介质。
技术介绍
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库的存储空间很大,可以存放百万条、千万条甚至上亿条数据。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。随着互联网的发展,数据库的重要性越来越明显。当系统越来越复杂时,保证数据库的持久性(即,对数据库的改变应该是永久性)显得尤为重要,因为要保证事务提交之后,即使遇到故障或者断电等情况,数据库也要完成该事务。预写日志记录(Write-AheadLogging)可以用于在数据库系统中提供原子性和持久性。更改首先记录在日志中,然后将其写入稳定存储,然后将更改写入数据库。该技术被广泛应用于各个数据库,比如MySQL数据库的binlog日志。然而,在涉及主 ...
【技术保护点】
1.一种用于保证硬件数据库修改永久性的方法,其特征在于,包括:/n在硬件数据库的日志中记录的最新的第一事务的事务状态是执行完成的情况下,通过对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录;/n将从所述外部用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并根据所述硬件数据库执行所述第二事务的情况记录所述硬件数据库的日志中所述第二事务的事务状态;其中,所述第二事务包含数据修改。/n
【技术特征摘要】
1.一种用于保证硬件数据库修改永久性的方法,其特征在于,包括:
在硬件数据库的日志中记录的最新的第一事务的事务状态是执行完成的情况下,通过对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录;
将从所述外部用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并根据所述硬件数据库执行所述第二事务的情况记录所述硬件数据库的日志中所述第二事务的事务状态;其中,所述第二事务包含数据修改。
2.如权利要求1所述的用于保证硬件数据库修改永久性的方法,其特征在于,将从所述外部用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并根据所述硬件数据库执行所述第二事务的情况记录所述硬件数据库的日志中所述第二事务的事务状态,包括:
将从所述外部用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并在所述硬件数据库的日志中将所述第二事务的事务状态记录为待执行;
利用所述硬件数据库执行所述第二事务时,将所述硬件数据库的日志中记录的所述第二事务的事务状态由待执行更改为正在执行;
在所述硬件数据库完成执行所述第二事务的情况下,将所述硬件数据库的日志中记录的所述第二事务的事务状态由正在执行更改为执行完成。
3.如权利要求2所述的用于保证硬件数据库修改永久性的方法,其特征在于,还包括:
在所述硬件数据库执行所述第二事务失败的情况下,将所述硬件数据库的日志中记录的所述第二事务的事务状态由正在执行更改为执行失败。
4.如权利要求1至3任一项所述的用于保证硬件数据库修改永久性的方法,其特征在于,还包括:
在硬件数据库的日志中记录的最新的第一事务的事务状态不是执行完成的情况下,利用所述外部用于记录提交事务的日志中的所述第一事务的记录内容中的撤销字段和重做字段的内容将所述硬件数据库回滚并利用所述硬件数据库重新执行所述第一事务,并根据重新执行所述第一事务的情况更新所述硬件数据库的日志中的所述第一事务的事务状态,然后,执行通过对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录的步骤。
5.如权利要求4所述的用于保证硬件数据库修改永久性的方法,其特征在于,通过对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录,包括:
通过利用所述硬件数据库的I/O线程对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录。
6.如权利要求2所述的用于保证硬件数据库修改永久性的方法,其特征在于,利用所述硬件数据库执行所述第二事务时,将所述硬件数据库的日志中记录的所述第二事务的事务状态由待执行更改为正在执行,包括:
利用所述硬件数据库的SQL线程执行所述第二事务时,将所述硬件数据库的日志中记录的所述第二事务的事务状态由待执行更改为正在执行。
7.如权利要求4所述的用于保证硬件数据库修改永久性的方法,其特征在于,通过对比所述硬件数据库的日志和外部用于记录提交事务的日志,得到所述外部用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录之前,所述方法还包括:
检查硬件数据库的日志中记录的最新的第一事务的事务状态是不是执行完成。
8.一种用于保证数据库系统修改永久性的方法,其特征在于,包括:
接收包含数据修改的第三事务,并将所述第三事务记录至用于记录提交事务的日志中;
在硬件数据库的日志中记录的最新的第一事务的事务状态是执行完成的情况下,通过对比所述硬件数据库的日志和记录所述第三事务后的所述用于记录提交事务的日志,得到记录所述第三事务后的所述用于记录提交事务的日志中存在但所述硬件数据库的日志中不存在的第二事务的记录;
将从记录所述第三事务后的所述用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并根据所述硬件数据库执行所述第二事务的情况记录所述硬件数据库的日志中所述第二事务的事务状态;所述第二事务包含数据修改;
在实际数据库的日志中记录的最新的第四事务的事务状态是执行完成的情况下,通过对比所述实际数据库的日志和记录所述第二事务的事务状态后的所述硬件数据库的日志,得到记录所述第二事务的事务状态后的所述硬件数据库的日志中存在但所述实际数据库的日志中不存在的第五事务的记录;
将从记录所述第二事务的事务状态后的所述硬件数据库的日志中读取的所述第五事务的记录内容记录在所述实际数据库的日志中,并根据所述实际数据库执行所述第五事务的情况记录所述实际数据库的日志中所述第五事务的事务状态;所述第五事务包含数据修改。
9.如权利要求8所述的用于保证数据库系统修改永久性的方法,其特征在于,所述第二事务为所述第三事务;或者,所述第二事务和所述第五事务均为所述第三事务。
10.如权利要求8所述的用于保证数据库系统修改永久性的方法,其特征在于,
将从记录所述第三事务后的所述用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并根据所述硬件数据库执行所述第二事务的情况记录所述硬件数据库的日志中所述第二事务的事务状态,包括:
将从记录所述第三事务后的所述用于记录提交事务的日志中读取的所述第二事务的记录内容记录在所述硬件数据库的日志中,并在所述硬件数据库的日志中将所述第二事务的事务状态记录为待执行;
利用所述硬件数据库执行所述第二事务时,将所述硬件数据库的日志中记录的所述第二事务的事务状态由待执行更改为正在执行;
在所述硬件数据库完成执行所述第二事务的情况下,将所述硬件数据库的日志中记录的所述第二事务的事务状态由正在执行更改为执行完成;
将从记录所述第二事务的事务状态后的所述硬件数据库的日志中读取的所述第五事务的记录内容记录在所述实际数据库的日志中,并根据所述实际数据库执行所述第五事务的情况记录所述实际数据库的日志中所述第五...
【专利技术属性】
技术研发人员:鄢贵海,王强,江树浩,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。