1 .一种数据库日志的处理方法,包括:
获取数据库日志,所述数据库日志被预组装成由组装链表和连接于所述组装链表之后
的页数据链表构成的结构,所述页数据链表为由所述数据库日志中的页镜像数据构成的链
表,所述组装链表为由所述数据库日志中的除页镜像数据之外的其他数据构成的链表;
读取并记录所述数据库日志的日志序列号,记为参照序列号;
获取所述数据库日志的页数据链表,记为待存储页数据链表;
获取预设的全局页数据链表的可用预置锁,其中,所述全局页数据链表用于存储页数
据链表,所述全局页数据链表预先配置有预设数量的预置锁,且每个所述预置锁能够绑定
一段日志序列号范围,所述可用预置锁为所绑定的日志序列号范围包含所述参照序列号的
预置锁;
根据所述参照序列号将所述待存储页数据链表按照日志序列号升序排列的顺序存储
至所述全局页数据链表中,以使所述全局页数据链表中的页数据链表按照日志序列号升序
排列的顺序依次连接。
2 .根据权利要求1所述的数据库日志的处理方法,其中,所述获取预设的全局页数据链
表的可用预置锁的步骤之前包括:
检测所述全局页数据链表已使用的预置锁中是否存在所述可用预置锁,若是,执行所
述获取预设的全局页数据链表的可用预置锁的步骤;
若否,按照第一预设规则确定所需的新增日志序列号范围,所述参照序列号处于所述
新增日志序列号范围内;
从所述全局页数据链表未使用的预置锁中获取一个预置锁,记为待赋值预置锁;
为所述待赋值预置锁绑定所述新增日志序列号范围,以使其成为所述可用预置锁;
其中,所述已使用的预置锁表示已绑定日志序列号范围的预置锁,所述未使用的预置
锁表示尚未绑定日志序列号范围的预置锁。
3 .根据权利要求2所述的数据库日志的处理方法,其中,所述按照第一预设规则确定所
需的新增日志序列号范围的步骤包括:
获取所述全局页数据链表所有已使用的预置锁所绑定的日志序列号范围中的最大值,
记为第一序列号;
确定所述新增日志序列号范围为大于所述第一序列号,小于等于所述参照序列号。
4 .根据权利要求3所述的数据库日志的处理方法,其中,所述确定所述新增日志序列号
范围为大于所述第一序列号,小于等于所述参照序列号的步骤之前包括:
判断所述参照序列号与所述第一序列号的差值是否大于预设阈值,若是,执行所述确
定所述新增日志序列号范围为大于所述第一序列号,小于等于所述参照序列号的步骤,若
否,确定所述新增日志序列号范围为大于所述第一序列号,小于等于所述第一序列号加所
述预设阈值。
5 .根据权利要求2所述的数据库日志的处理方法,其中,所述从所述全局页数据链表未
使用的预置锁中获取一个预置锁的步骤之前包括:
判断所述全局页数据链表是否还具有未使用的预置锁;
若是,执行所述从所述全局页数据链表未使用的预置锁中获取一个预置锁的步骤;
若否,从已使用的预置锁中找到所绑定的日志序列号范围的最大值最小的两个已使用
权 利 要 求 书
1/3 页
2
评论