1 .一种基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在于:包括以下步
骤:
从所述逻辑日志中获取数据库闪回的起始位置;
对起始位置之后的所有逻辑日志进行解析,获取数据库起始位置之后所有数据变更操
作记录的正向序列;
将所述正向序列以数据变更操作记录为最小单位进行倒序排列,并反转数据变更操作
类型,得到撤销序列;所述撤销序列只包括一个总事务;
将所述撤销序列中每条数据变更操作记录生成为SQL语句并执行,使数据库回退至起
始位置的状态。
2 .根据权利要求1所述的基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在
于,所述总事务的获取方法为:
将所述正向序列或所述撤销序列中属于同一事务号的数据变更操作记录合并为一个
事务,得到多个分事务;
将多个所述分事务重新组合为一个总事务。
3 .根据权利要求2所述的基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在
于:所述总事务的获取方法还包括:去除所述正向序列或所述撤销序列中的不完整事务。
4 .根据权利要求3所述的基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在
于:所述去除所述正向序列或所述撤销序列中的不完整事务的方法包括:
遍历所述正向序列或所述撤销序列,获取所述数据变更操作记录的操作类型;
若所述操作类型为事务开始,则在事务列表中加入该事务的事务号;
若所述操作类型为数据变更,检查其事务号在事务列表中是否存在,若存在则保留该
条数据变更操作记录;若不存在则忽略该条数据变更操作记录;
若所述操作类型为提交,检查其事务号在事务列表中是否存在,若存在则将该数据变
更操作记录以及与其有相同事务号的数据变更操作记录合并为分事务,并将该事务号从事
务列表中移除;若不存在则忽略该条数据变更操作记录。
5 .根据权利要求1所述的基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在
于:所述从所述逻辑日志中获取数据库闪回的起始位置的步骤包括:
确定数据库闪回到的目标时间点;
从最新的逻辑日志文件开始向前搜索,至首次出现记录的时间点早于目标时间点的逻
辑日志文件,该逻辑日志文件即为首个需要的日志文件;
在该首个需要的日志文件内,从最新的数据变更操作记录开始向前搜索,至首次出现
记录的时间点等于或晚于目标时间点的数据变更操作记录,该数据变更操作记录即为数据
库闪回的起始位置;
如果首个需要的日志文件内不存在符合以上条件的数据变更操作记录,则该首个需要
的日志文件的起始位置为数据库闪回的起始位置;
如果目标时间点内包含多条数据变更操作记录,则选择第一条数据变更操作记录作为
数据库闪回的起始位置。
6 .根据权利要求1所述的基于GBase8s数据库逻辑日志的数据闪回实现方法,其特征在
于:所述从所述逻辑日志中获取数据库闪回的起始位置的步骤包括:
权 利 要 求 书
1/2 页
2
相关文档
评论