【技术实现步骤摘要】
数据库系统的故障修复方法、数据库系统和计算设备
本申请涉及数据库
,尤其涉及数据库系统的故障修复方法,以及对应的数据库系统和计算设备。
技术介绍
图1示出了一种数据库系统,包括主机110和备机130,主机110和备机130的设置是为了保证该数据库系统的可靠性。主机110和备机130各自有自己的数据存储和日志存储,主机110修改页面(page)会产生重做日志(redolog),主机110将重做日志传输给备机,备机130接收重做日志并回放,从而达到备机130与主机110数据同步的目的。备机130接收重做日志和回放重做日志是两个并行的过程,备机130可以批量接收重做日志并写入本地内存,同时逐条回放重做日志。通常情况下,日志回放速度慢于日志接收速度,比如接收了10G的日志,可能仅回放了8G的日志,有2G的日志待回放。在主机110发生故障时,备机130需要将接收到的所有重做日志全部回放完,才能与故障发生前的主机110同步以及替代该主机110成为新的主机(也被称为“故障转移”或“数据库系统恢复”)。恢复时间目标(RecoveryTimeObjective,RTO)就是备机130被提升为新的主机所需的时间。通过上述主备切换的过程可以看出,RTO取决于待回放的日志量,待回放的日志量越大,就会导致RTO越大,进而影响业务的连续性。
技术实现思路
本申请涉及数据库系统的故障修复方法,用于在该数据库系统发生故障时,降低该数据库系统进行故障修复所需要的时间,提高故障修复效率。另外,本申请还提供了对应的数据库 ...
【技术保护点】
1.一种数据库系统的故障修复方法,其特征在于,包括:/n在主机正常工作时,所述主机使用第一数据传输协议将多个页面发送给全局页面缓冲池GBP节点,/n所述GBP节点将所述多个页面写入到所述GBP节点的缓存队列,且所述多个页面对应的日志序列号LSN按照从所述缓存队列的头部到尾部的顺序递增;/n在所述主机发生故障时,所述备机确定GBP起始点、GBP恢复点和GBP结束点,所述GBP起始点指示所述GBP节点上存储的所有页面中所包括的最小的LSN;所述GBP恢复点指示所述GBP节点最近一次接收到的一批页面中所包括的最小的LSN;所述GBP结束点指示所述GBP节点最近一次接收到的所述一批页面中所包括的最大的LSN;/n在磁盘恢复点大于或等于所述GBP起始点,且磁盘结束点大于或等于所述GBP结束点时,所述备机回放位于所述GBP恢复点所对应的重做日志和所述磁盘结束点所对应的重做日志之间的所有重做日志,所述磁盘恢复点指示所述备机的磁盘中最近一批被写入的多个页面所包含的最小的LSN,所述磁盘结束点指示所述备机所接收的最后一条重做日志的LSN。/n
【技术特征摘要】 【专利技术属性】
1.一种数据库系统的故障修复方法,其特征在于,包括:
在主机正常工作时,所述主机使用第一数据传输协议将多个页面发送给全局页面缓冲池GBP节点,
所述GBP节点将所述多个页面写入到所述GBP节点的缓存队列,且所述多个页面对应的日志序列号LSN按照从所述缓存队列的头部到尾部的顺序递增;
在所述主机发生故障时,所述备机确定GBP起始点、GBP恢复点和GBP结束点,所述GBP起始点指示所述GBP节点上存储的所有页面中所包括的最小的LSN;所述GBP恢复点指示所述GBP节点最近一次接收到的一批页面中所包括的最小的LSN;所述GBP结束点指示所述GBP节点最近一次接收到的所述一批页面中所包括的最大的LSN;
在磁盘恢复点大于或等于所述GBP起始点,且磁盘结束点大于或等于所述GBP结束点时,所述备机回放位于所述GBP恢复点所对应的重做日志和所述磁盘结束点所对应的重做日志之间的所有重做日志,所述磁盘恢复点指示所述备机的磁盘中最近一批被写入的多个页面所包含的最小的LSN,所述磁盘结束点指示所述备机所接收的最后一条重做日志的LSN。
2.根据权利要求1所述的故障修复方法,其特征在于,位于所述磁盘恢复点所对应的重做日志和所述GBP恢复点所对应的重做日志之间的所有重做日志没有被回放。
3.根据权利要求1或2所述的故障修复方法,其特征在于,所述GBP节点维护了所述GBP恢复点和所述GBP结束点,则在所述GBP节点在将所述多个页面写入到所述GBP节点的缓存队列之后,所述方法还包括:
所述GBP节点根据所述多个页面,更新所述GBP恢复点和所述GBP结束点;
所述备机确定GBP恢复点和GBP结束点,包括:
所述备机从所述GBP节点中获取更新后的所述GBP恢复点和所述GBP结束点。
4.根据权利要求1或2所述的故障修复方法,其特征在于,所述GBP节点维护所述GBP起始点,
在所述GBP节点接收到所述GBP节点的页面缓冲区中不存在的新页面且所述GBP节点的页面缓冲区已满时,所述方法还包括:
所述GBP节点将位于所述缓存队列头部的页面淘汰掉,并将所述GBP起始点更新为所述缓存队列的新的头部页面对应的LSN;
所述备机确定GBP起始点,包括:所述备机从所述GBP节点中获取更新后的所述GBP起始点。
5.根据权利要求1或2所述的故障修复方法,其特征在于,
在所述GBP节点接收到所述GBP节点的页面缓冲区中不存在的新页面时,
所述GBP节点将所述多个页面写入到所述GBP节点的缓存队列,包括:
所述GBP节点将所述新页面放入所述缓存队列的尾部;
在所述GBP节点接收到所述GBP节点的页面缓冲区中已经存在的新页面时,
所述GBP节点将所述多个页面写入到所述GBP节点的缓存队列,包括:
所述GBP节点根据接收到的所述新页面对已经存在的对应页面进行更新,并将更新后的所述新页面放在所述缓存队列的尾部。
6.根据权利要求1至5任一项所述的故障修复方法,其特征在于,还包括:在所述磁盘恢复点大于或等于所述GBP起始点,且所述磁盘结束点大于或等于所述GBP结束点时,所述备机启动后台线程,所述后台线程用于将所述GBP节点上存储的所有页面拉取到所述备机的页面缓冲区。
7.根据权利要求6所述的故障修复方法,其特征在于,所述后台线程用于通过第二数据传输协议将所述GBP节点上存储的所有页面拉取到所述备机的页面缓冲区。
8.根据权利要求1至7任一项所述的故障修复方法,其特征在于,在所述备机执行完回放步骤之后,以及在所述备机上的应用需要访问的页面还位于所述GBP节点的页面缓冲区时,则所述应用从所述GBP节点的页面缓冲区中读取所述需要访问的页面。
9.一种数据库系统,其特征在于,包括主机、备机和全局页面缓冲池GBP节点;
所述主机用于通过第一数据传输协议将多个页面发送给所述GBP节点;
所述GBP节点用于将所述多个页面写入到所述GBP节点的缓存队列,且所述多个页面对应的日志序列号LSN按照从所述缓存队列的头部到尾部的顺序递增;
在所述主机发生故障时,所述备机用于确定GBP起始点、GBP恢复点和GBP结束点,所述GBP起始点指示所述GBP节点上存储的所有页面中所包括的最小的日志序列号LSN,所述GBP恢复点指示所述GBP节点最近一次接收到的一批页面中所包括的最小的LSN,所述GBP结束点指示所述GBP节点最近一次接收到的所述一批页面中所包括的最大的LSN;
在磁盘恢复点大于或等于所述GBP起始点,且磁盘结束点大于或等于所述GBP结束点的情况下,所述备机还用于回放位于所述GBP恢复点所对应的重做日志和所述磁盘结束点所对应的重做日志之间的所有重做日志,其中,所述磁盘恢复点指示所述备机的磁盘中最近一批被写入的多个页面所包含的最小的LSN,所处磁盘结束点指示所述备机所接收的最后一条重做日志的LSN。
10.根据权利要求9所述的系统,其特征在于,位于所述磁盘恢复点所对应的重做日志和所述GBP恢复点所对应的重做日志之间的所有重做日志没有被回放。
11.根据权利要求9或10所述的系统,其特征在于,在将所述多个页面写入到所述GBP节点的缓存队列之后,所述GBP节点还用于根据所述多个页面,更新所述GBP恢复点和所述GBP结束点;
相应的,所述备机还用于从所述GBP节点中获取更新后的所述GBP恢复点和所述GBP结束点。
12.根据权利要求9或10所述的系统,其特征在于,在所述GBP节点接收到所述GBP节点的页面缓冲区中不存在的新页面且所述GBP节点的页面缓冲区已满时,所述GBP节点还用于将位于所述缓存队列头部的页面淘汰掉,并将所述GBP起始点更新为所述缓存队列的新的头部页面对应的LSN;
相应的,所述备机还用于从所述GBP节点中获取更新后的所述GBP起始点。
13.根据权利要求9或10所述的系统,其特征在于,
在所述GBP节点接收到所述GBP节点的页面缓冲区中不存在的新页面时,所述GBP节点还用于将所述新页面放入所述缓存队列的尾部;或,
在所述GBP节点接收到所述GBP节点的页面缓冲区中已经存在的新页面时,所述GBP节点还用于根据接收到的所述新页面对已经存在的对应页面进行更新,并将更新后的所述新页面放在所述缓存队列的尾部。
14.根据权利要求9至13任一项所述的系统,其特征在于,在所述磁盘恢复点大于或等于所述GBP起始点,且所述磁盘结束点大于或等于所述GBP结束点时,所述备机还用于启动后台线程,所述后台线程用于将所述GBP节点上存储的所有页面拉取到的所述备机的页面缓冲区。
15.根据权利要求14所述的系统,其特征在于,所述后台线程用于通过第二数据传输协议将所述GBP节点上存储的所有页面拉取到的所述备机的页面缓冲区。
16.一种数据库系统的故障修复方法,其特征在于,包括:
在主机发生故障时,确定全局页面缓冲池GBP起始点、GBP恢复点和GBP结束点,所述GBP起始点指示GBP节点上存储的所有页面中所包括的最小的日志序列号LSN,所述GBP恢复点指示所述GBP节点最近一次接收到的一批页面中所包括的最小的LSN,所述GBP结束点指示所述GBP节点最近一次接收到的所述一批页面中所包括的最大的LSN,其中,所述GBP节点上存储的所有页面均是所述主机在正常工作期间,通过第一数据传输协议发送给所述GBP节点,并由所述GBP节点写入到所述GBP节点的缓存队列的,所述多个页面对应的LSN按照从所述缓存队列的头部到尾部的顺序递增;
在磁盘恢复点大于或等于所述GBP起始点,且磁盘结束点大于或等于所述GBP结束点时,回放位于所述GBP恢复点所对应的重做日志和所述磁盘结束点所对应的重做日志之间的所有重做日志;所述磁盘恢复点指示所述备机的磁盘中最近一批被写入的多个页面所包含的最小的LSN,所述磁盘结束点指示所述备机所接收的最后一条重做日志的LSN。
17.根据权利要求16所述的故障修复方法,其特征在于,位于所述磁盘恢复点所对应的重做日志以及所述GBP恢复点所对应的重做日志之间的所有重做日志没有被回放。
18.根据权利要求16或17所述的故障修复方法,其特征在于,在所述磁盘恢复点大于或等于所述GBP起始点,且所述磁盘结束点大于或等于所述GBP结束点时,所述方法还包括:启动后台线程,所述后台线程用于将所述GBP节点上存储的所有页面拉取到页面缓冲区。
技术研发人员:王传廷,朱仲楚,邢玉辉,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。