(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 105022676 A
(43)申请公布日 2015.11.04
(21)申请号 CN201410163685.1
(22)申请日 2014.04.22
(71)申请人 大唐软件技术股份有限公司
    地址 100012 北京市朝阳区北苑路乙108号北美国际商务中心大唐软件
(72)发明人 许哲 郝春美 杨耀华
(74)专利代理机构 北京润泽恒知识产权代理有限公司
    代理人 兰淑铎
(51)Int.CI
      G06F11/14
      G06F17/30
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      一种内存数据库重做日志文件的恢复方法和装置
(57)摘要
      本申请提供了一种内存数据库重做日志文件的恢复方法和装置,包括:对重做日志文件按照生成时间的先后顺序进行排序;按排序读取重做日志文件中的数据,其中,所述数据中包含多个事务数据;对读取的重做日志文件中的数据包含的多个事务数据进行分割,分割成多个单一事务;将所述分割成的多个单一事务打成回滚数据包,并将打成的所述多个单一事务的回滚数据包分别发送到内存数据库,通过所述内存数据库进行多个单一事务的回滚。因此,本申请解决了内存数据库的数据丢失和无法及时恢复的问题。
法律状态
回收站清空的文件怎么恢复
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种内存数据库重做日志文件的恢复方法,其特征在于,包括:           
对重做日志文件按照生成时间的先后顺序进行排序;           
按排序读取重做日志文件中的数据,其中,所述数据中包含多个事务数            据;           
对读取的重做日志文件中的数据包含的多个事务数据进行分割,分割成            多个单一事务;           
将所述分割成的多个单一事务打成回滚数据包,并将打成的所述多个单            一事务的回滚数据包分别发送到内存数据库,通过所述内存数据库进行多个            单一事务的回滚。       
   
2.根据权利要求1所述的方法,其特征在于,所述对读取的重做日志            文件中的数据包含的多个事务数据进行分割,分割成多个单一事务的步骤包            括:           
使用循环数组存储读取的所述重做日志文件,并在所述循环数组内对读            取的所述重做日志文件中的数据包含的多个事务数据进行分割,分割成多个            单一事务。           
3.根据权利要求2所述的方法,其特征在于,在所述循环数组内对读            取的所述重做日志文件中的数据包含的多个事务数据进行分割,分割成多个            单一事务的步骤包括:           
判断所述循环数组的当前指针位置;           
若所述循环数组的当前指针位于读取的所述重做日志文件的文件尾,则            停止对读取的所述重做日志文件的分割,退出所述循环数组;           
若所述循环数组的当前指针不位于读取的所述重做日志文件的文件尾,            则读取设定数
据长度的重做日志文件的内容,从读取的内容中获取当前事务            的数据包大小信息,根据所述数据包大小信息分割出当前事务,并返回所述            判断所述循环数组的当前指针位置的步骤继续执行。           
4.根据权利要求1至3任一项所述的方法,其特征在于,将所述分割            成的多个单一事务打成回滚数据包的步骤包括:           
将分割成的各个单一事务对应的报文的报文类型、报文大小和报文内容                            进行组合,生成对应于各个单一事务的回滚数据包。           
5.根据权利要求4所述的方法,其特征在于,所述内存数据库通过以            下方式进行多个单一事务的回滚:           
内存数据库对接收到的多个单一事务的回滚数据包进行解析,获取各个            回滚数据包中的报文类型、报文大小和报文内容;           
内存数据库根据所述报文类型查与所述报文类型相同的单一事务;           
将所述报文内容添加到所述内存数据库中具有相同报文类型的单一事            务中,完成单一事务回滚。           
6.一种内存数据库重做日志文件的恢复装置,其特征在于,包括:           
排序模块,用于对重做日志文件按照生成时间的先后顺序进行排序;           
读取模块,用于按排序读取重做日志文件中的数据,其中,所述数据中            包含多个事务数据;           
分割模块,用于对读取的重做日志文件中的数据包含的多个事务数据进            行分割,分割成多个单一事务;