CN102043686A - 一种内存数据库的容灾方法、备用服务器及系统 - Google Patents

一种内存数据库的容灾方法、备用服务器及系统 Download PDF

Info

Publication number
CN102043686A
CN102043686A CN2009102055050A CN200910205505A CN102043686A CN 102043686 A CN102043686 A CN 102043686A CN 2009102055050 A CN2009102055050 A CN 2009102055050A CN 200910205505 A CN200910205505 A CN 200910205505A CN 102043686 A CN102043686 A CN 102043686A
Authority
CN
China
Prior art keywords
memory database
page
local memory
operation address
redo log
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009102055050A
Other languages
English (en)
Other versions
CN102043686B (zh
Inventor
张耿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JIANGSU LEMOTE INFORMATION TECHNOLOGY CO.,LTD.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2009102055050A priority Critical patent/CN102043686B/zh
Publication of CN102043686A publication Critical patent/CN102043686A/zh
Application granted granted Critical
Publication of CN102043686B publication Critical patent/CN102043686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及存储领域,公开了一种内存数据库的容灾方法、备用服务器及系统,该方法包括:接收主用服务器发送的携带了操作地址以及修改数据的重做日志;解析上述重做日志,获得上述操作地址以及修改数据;判断上述操作地址对应的页面是否在本地内存数据库中,若否,从上述磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库中;将上述修改数据同步到上述操作地址对应的页面。本发明实施例不仅可以降低内存数据库的容灾成本,还可以减少备用服务器内存的占用,达到内存数据库的N+1容灾的目的。

Description

一种内存数据库的容灾方法、备用服务器及系统
技术领域
本发明涉及存储领域,尤其涉及一种内存数据库的容灾方法、备用服务器及系统。
背景技术
内存数据库(Main Memory Database,MMDB)的容灾是指,将主用服务器的内存数据库的数据每天或实时进行动态备份,并存储在远离主用服务器的备用服务器的内存数据库中,当主用服务器因为发生地震、或火灾、或水灾、或战争而导致内存数据库毁坏时,可以从备用服务器中进行数据恢复。
内存数据库的容灾有两种方案,一种是1+1容灾方案,即一个备用服务器对应一个主用服务器,其中,备用服务器和主用服务器中各有一套对等的内存数据库,当主用服务器的内存数据库发生修改时,以重做日志的形式将修改数据同步到备用服务器,备用服务器接收并解析重做日志获得操作地址ID以及修改数据后,将修改数据同步到该地址ID中。另一种是N+1容灾方案,即一个备用服务器对应多个主用服务器,其中,备用服务器的内存数据库大小等于对应的多个主用服务器的内存数据库大小之和,并且备用服务器用于为每个主用服务器的内存数据库提供容灾服务的内存数据库区域互不相同。N+1容灾方案的实现过程与1+1容灾方案的实现过程相似。
发明人发现,上述的1+1容灾方案中,当主用服务器的数量增加时,需要相应地增加备用服务器的数量,加大了容灾成本的投入;上述的N+1容灾方案中,当主用服务器数量增加时,需要相应地增大备用服务器的内存,由于备用服务器的内存是有限的,如果主用服务器的数量增加较多,备用服务器的内存可能无法满足容灾需求。
发明内容
本发明实施例提供了一种内存数据库的容灾方法、备用服务器及系统,不仅可以降低内存数据库的容灾成本,还可以减少备用服务器内存的占用,达到内存数据库的N+1容灾的目的。
为了解决上述技术问题,本发明实施例提供如下技术方案:
本发明实施例提供了一种内存数据库的容灾方法,包括:
接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
解析所述重做日志,获得所述操作地址以及修改数据;
判断所述操作地址对应的页面是否在本地内存数据库,若否,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;
将所述修改数据同步到所述操作地址对应的页面中。
本发明实施例提供了一种备用服务器,包括:
接收模块,用于接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
解析模块,用于解析所述接收模块接收的重做日志,获得所述操作地址以及修改数据;
第一判断模块,用于判断所述操作地址对应的页面是否在本地内存数据库;
加载模块,用于在所述第一判断模块的判断结果为否时,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;
同步模块,用于将所述修改数据同步到所述操作地址对应的页面中。
本发明实施例还提供了一种内存数据库的容灾系统,包括备用服务器和至少一个主用服务器,所述备用服务器和主用服务器之间以可通信方式相连;
所述主用服务器,用于向备用服务器发送携带了操作地址以及修改数据的重做日志;
所述备用服务器,用于接收所述主用服务器发送的携带了操作地址以及修改数据的重做日志;解析所述重做日志,获得所述操作地址以及修改数据;判断所述操作地址对应的页面是否在本地内存数据库中,若否,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;将所述修改数据同步到所述操作地址对应的页面中。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,通过使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在备用服务器的内存数据库中,这样可以减少对备用服务器内存的占用,达到内存数据库的N+1容灾的目的;另外,本发明实施例以磁盘作为辅助存储介质,无需为每个主用服务器配置一个备用服务器,从而可以降低内存数据库的容灾成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的一种内存数据库的容灾方法流程图;
图2为本发明实施例中提供的一种获取操作地址对应页面的方法流程图;
图3为本发明实施例中提供的又一种内存数据库的容灾方法流程图;
图4为本发明实施例中提供的另一种内存数据库的容灾方法流程图;
图5为本发明实施例中提供的一种从磁盘中加载页面的方法流程图;
图6为本发明实施例中提供的一种备用服务器的结构示意图;
图7为本发明实施例中提供的另一种备用服务器的结构示意图;
图8为本发明实施例中提供的另一种备用服务器的结构示意图;
图9为本发明实施例中提供的另一种备用服务器的结构示意图;
图10为本发明实施例中提供的一种内存数据库的容灾系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例中提供的一种内存数据库的容灾方法的流程示意图。如图1所示,该方法可以包括步骤:
101、接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
举例来说,备用服务器可以通过同步传输方式或异步传输方式或其他传输方式来接收主用服务器发送重做日志,该重做日志携带了操作地址以及修改数据。
进一步地,为了防止接收的主用服务器发送的重做日志发生丢失,备用服务器可以将接收的主用服务器发送的重做日志写入日志文件中,这样即使接收的主用服务器发送的重做日志发生丢失,也可以从日志文件中提取出来。
102、解析上述重做日志,获得上述操作地址以及修改数据;
103、判断上述操作地址对应的页面是否在本地内存数据库,若否,从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库中;
其中,内存数据库中的数据是以页面的形式进行存储的,一个内存数据库可以包含若干个页面。在主用服务器中,工作需要的所有的数据都保存在主用服务器的内存数据库中,例如包括内存数据库的管理数据、表记录数据、临时表记录数据以及索引数据。
在本发明实施例中,备用服务器中只保存部分内容在内存,例如,本地内存数据库只保存内存数据库的管理数据、索引数据以及部分表记录数据,将大部分表记录数据存储到磁盘中,从而减少对本地内容数据库的占用。
举例来说,上述的从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库可以采用图2所示的方法。图2为本发明实施例中提供的一种获取操作地址对应页面的方法流程图。如图2所示,该方法可以包括步骤:
201、向页面交换进程发送携带了上述操作地址的缺页请求;
202、接收页面交换进程从磁盘中读取并发送的上述操作地址对应的页面;
203、将上述操作地址对应的页面加载到本地内存数据库。
如果上述操作地址对应的页面不在本地内存数据库时,可以通过向页面交换进程发送缺页请求,由页面交换进程从磁盘中获取上述操作地址对应的页面,或者采用其他方式从磁盘中获取上述操作地址对应的页面,本发明实施例在此不作限定。
104:将上述修改数据同步到操作地址对应的页面中。
当上述操作地址对应的页面加载到本地内存数据库之后,可以将主用服务器发送过来的修改数据同步到上述操作地址对应的页面中,这样本地内存数据库中存储的是主用服务器的临时修改的数据,无需存储主用服务器的内存数据库中的所有数据,从而可以减少对本地内存数据库的占用。
上述对本发明实施例提供的一种内存数据库的容灾方法进行了介绍,通过使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在备用服务器的内存数据库中,这样可以减少对备用服务器内存的占用,达到内存数据库的N+1容灾的目的;另外,本发明实施例以磁盘作为辅助存储介质,无需为每个主用服务器配置一个备用服务器,从而可以降低内存数据库的容灾成本。
请参阅图3,图3为本发明实施例中提供的一种内存数据库的容灾方法的流程示意图。如图3所示,该方法可以包括步骤:
301、接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
举例来说,备用服务器可以通过同步传输方式或异步传输方式或其他传输方式来接收主用服务器发送重做日志,该重做日志携带了操作地址以及修改数据。
302、解析上述重做日志,获得上述操作地址以及修改数据;
303、判断上述操作地址对应的页面是否在本地内存数据库,若否,执行步骤304;若是,则执行步骤307;
举例来说,如果上述操作地址对应的页面在本地内存数据库中,则备用服务器可以将上述修改数据同步到上述操作地址对应的页面中,这样可以将主用服务器临时修改的数据存储到本地内存数据库中。
304:判断当前是否满足页面写入条件,若是,执行步骤305;若否,则执行步骤306;
其中,上述步骤304中的页面写入条件可以包括以下一个或几个:
本地内存数据库不存在空闲页面、当前系统运行达到指定时间以及接收重做日志的次数达到指定次数。
305:将本地内存数据库中满足预设条件的页面写入磁盘;
当本地内存数据库中不存在空闲页面时,为了使本地内存数据库能够存储主用服务器的临时修改数据,需要将本地内存数据中满足预设条件的页面写入磁盘,从而为本地内存数据库腾出空闲页面来存储主用服务器的临时修改的数据。
实际应用中,上述步骤305中的预设条件可以包括但不限于以下条件:
本地内存数据库中的页面存储时间达到预设值时,备用服务器可以将本地内存数据库中的页面(部分或全部)写入磁盘,这样本地内存数据库可以有剩余空间来存储主用服务器发送过来的临时修改的数据。
或者,采用某些特定的算法,例如最近最少使用(Least Recently Used,LRU)淘汰算法,或者本领域人员可以选择的其他淘汰算法将本地内存数据库中满足淘汰算法的页面写入磁盘。
当磁盘I/O口比较繁忙时,可以将满足预设条件的本地内存数据库中部分页面写入磁盘中,否则,可以将满足预设条件的本地内存数据库中全部页面写入磁盘中。
可以理解的是,上述各种预设条件可以组合一起用,也可以分别使用,本发明不限定具体的预设条件,本领域技术人员根据本发明实施例的描述情况,可以想到的其他条件,只要能够满足将本地内存数据库中的页面写入磁盘,以便于有空间存储从磁盘中获取上述操作地址对应的页面。
在具体的实施例中,步骤304中的“判断当前是否满足页面写入条件”步骤,可以包括以下步骤之一或者组合:
当系统运行达到指定时间时,触发将本地内存数据库中的页面(部分或全部)写入磁盘;或者
当接收重做日志的次数达到指定次数时,触发将本地内存数据库中的页面(部分或全部)写入磁盘。具体的可以是,当本次接收重做日志在内的接收重做日志次数到达了指定次数时,可以将本地内存数据库的部分或全部页面写入磁盘。这样情况下,需要预先设置好指定次数,以及在每次接收到主用服务器发送过来的重做日志时记录接收重做日志的次数,以便后续判断接收重做日志的次数是否达到指定次数。
以上两种判断步骤中,若判断结果为是,执行步骤305;若判断结果为否,则执行步骤306;具体的步骤305“将本地内存数据库中满足预设条件的页面写入磁盘”中的预设条件同上。
306:从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库中;
即步骤304的判断结果为本地内存数据库不存在空闲页面,或者,当前系统运行达到指定时间,或者,接收重做日志的次数达到指定次数;则本地内存数据库中满足预设条件的页面写入磁盘后,将从磁盘中获取的上述操作地址对应的页面加载到本地内存数据库中;反之,直接将上述操作地址对应的页面加载到本地内存数据库中的空闲页面。
举例来说,将从磁盘中获取的上述操作地址对应的页面加载到本地内存数据库中的具体方式,可以采用图2所示的方法,本发明实施例在此不再赘述。
307:将上述修改数据同步到操作地址对应的页面中。
当上述操作地址对应的页面加载到本地内存数据库之后,可以将主用服务器发送过来的修改数据同步到上述操作地址对应的页面中,这样本地内存数据库中存储的是主用服务器临时修改的数据,无需存储主用服务器的内存数据库中的所有数据,从而可以减少对本地内存数据库的占用。
上述对本发明实施例提供的一种内存数据库的容灾方法进行了介绍,通过使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在备用服务器的内存数据库中,这样可以减少对备用服务器内存的占用,达到内存数据库的N+1容灾的目的;另外,本发明实施例以磁盘作为辅助存储介质,无需为每个主用服务器配置一个备用服务器,从而可以降低内存数据库的容灾成本。
请参阅图4,图4为本发明实施例中提供的一种内存数据库的容灾方法的流程示意图。如图4所示,该方法可以包括步骤:
401~407与上述的301~307相同,本发明实施例在此不再赘述。
408:检测输入的内存数据库状态切换指令;
具体的应用实例中,内存数据库状态切换指令可以是由主用服务器在出现灾难的情况下发送至备用服务器的,或者是由本地人为输入的。
在检测到内存数据库状态切换指令之后,备用服务器需要将当前处理的主用服务器发送的重做日志处理完毕,然后才执行后续步骤,确保主用服务器临时修改的数据不会发生丢失。
409、停止接收重做日志,将未处理的重做日志写入日志文件;
对于未处理的重做日志,备用服务器可以将其先写入日志文件,防止重做日志丢失。
410:创建完整的本地内存数据库,将磁盘存储的页面加载到本地内存数据库;
举例来说,上述的步骤410中将磁盘存储的页面加载到本地内存数据库可以采用图5所述的方法,如图5所示,该方法可以包括步骤:
501:向页面交换进程发送页面加载请求;
502:接收页面交换进程从磁盘中读取并发送的页面;
503:将页面加载到本地内存数据库中。
411、解析未处理重做日志,获得未处理重做日志的操作地址和修改数据;
412、将未处理重做日志的修改数据同步到本地内存数据库中的未处理重做日志的操作地址对应的页面中;
413、修改本地内存数据库状态标志为主用状态。
本发明实施例使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在本地内存数据库中,可以减少对本地内存的占用,达到内存数据库的N+1容灾的目的,降低内存数据库的容灾成本。另外,本发明实施例可以通过接收内存数据库状态切换指令将磁盘存储的页面加载到本地内心数据库,并将本地内存数据库状态标志为主用状态,从而可以将本地内存数据库切换为主用状态,可以在主用服务器出现灾难时代替主用服务器继续工作。
请参阅图6,图6为本发明实施例中提供的一种备用服务器的结构示意图。如图6所示,该备用服务器可以包括:
接收模块601,用于接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
举例来说,接收模块601可以通过同步传输方式或异步传输方式或其他传输方式来接收主用服务器发送重做日志,该重做日志携带了操作地址以及修改数据。
其中,内存数据库中的数据是以页面的形式进行存储的,一个内存数据库可以包含若干个页面。在主用服务器中,所有的数据都保存在主用服务器的内存数据库中,包括内存数据库的管理数据、表记录数据、临时表记录数据以及索引数据,这是本领域技术人员所公知的常识。
在本发明实施例中,备用服务器的内存数据库只需保存内存数据库的管理数据、索引数据以及部分表记录数据,从而减少对备用服务器的内容数据库的占用。
解析模块602,用于解析接收模块601接收的重做日志,获得操作地址以及修改数据;
第一判断模块603,用于判断解析模块602解析获得的操作地址对应的页面是否在本地内存数据库;
加载模块604,用于在第一判断模块603的判断结果为否时,从磁盘中获取解析模块602解析获得的操作地址对应的页面,并加载到本地内存数据库;
同步模块605,用于将解析模块602解析获得的修改数据同步到解析获得的操作地址对应的页面中。
一个具体的例子中,同步模块605还用于在第一判断模块603判断解析模块602解析获得的操作地址对应的页面在本地内存数据库时,将解析模块602解析获得的修改数据同步到解析获得的操作地址对应的页面中。
在图6所示的备用服务器的基础之上,本发明实施例进一步提出了如图7所示的备用服务器。如图7所示的加载模块604可以包括:
收发子模块6041,与第一判断模块603连接,用于在第一判断模块603的判断结果为否时,向页面交换进程发送携带了解析模块602解析获得的操作地址的缺页请求;接收页面交换进程从磁盘中读取并发送的该操作地址对应的页面;
加载子模块6042,用于将解析模块602解析获得的操作地址对应的页面加载到本地内存数据库。
在图6所示的备用服务器的基础之上,本发明实施例还进一步提出了如图8所示的备用服务器。如图8所示,该备用服务器除了包括如图6所示的接收模块601、解析模块602、第一判断模块603、加载模块604以及同步模块605之外,还可以包括:
第二判断模块606,与第一判断模块603连接,用于在第一判断模块603的判断结果为否时,进一步判断当前是否满足页面写入条件;
其中,页面写入条件可以包括以下一个或几个:
本地内存数据库不存在空闲页面、当前系统运行达到指定时间以及接收重做日志的次数达到指定次数。
即当本地内存数据库中不存在空闲页面,或者当前系统运行达到指定时间、或者接收重做日志的次数达到指定次数,为了使本地内存数据库能够存储主用服务器的临时修改数据,需要将本地内存数据中满足预设条件的页面写入磁盘,从而为本地内存数据库腾出空闲页面来存储主用服务器的临时修改数据。
写入模块607,与第二判断模块606连接,用于在第二判断模块606的判断结果为是时,则将本地内存数据库中满足预设条件的页面写入磁盘;
其中,上述的预先条件可以包括:
本地内存数据库的页面的存储时间达到预设值;
和/或,本地内存数据库的页面满足最近最少使用LRU淘汰算法。
可以理解的是,上述各种预设条件可以组合一起用,也可以分别使用,本发明不限定具体的预设条件,本领域技术人员根据本发明实施例的描述情况,可以想到的其他条件,只要能够满足将本地内存数据库中的页面写入磁盘,以便于有空间存储从磁盘中获取上述操作地址对应的页面。
进一步地,当磁盘I/O口比较繁忙时,写入模块607可以将满足预设条件的本地内存数据库中部分页面写入磁盘中,否则,可以将满足预设条件的本地内存数据库中全部页面写入磁盘。
此时,加载模块604与写入模块607连接,具体用于在写入模块607将本地内存数据库中满足预设条件的页面写入磁盘之后,从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库。
同步模块605,用于在加载模块604从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库之后,将上述修改数据同步到操作地址对应的页面中。
一个具体的例子中,本发明实施例可以进一步在图6、或图7、或图8所示的备用服务器的基础之上,增加相关的功能模块,以使得备用服务器在主用服务器的内存数据库毁坏时,可以切换成主用服务器。为了便于理解,下面仅以图6所示的备用服务器增加相关的功能模块为例,介绍本发明实施例提供的另一种备用服务器。请参阅图9,图9为本发明实施例在图6所示的备用服务器的基础之上,进一步提出的另一种备用服务器900。如图9所示的备用服务器900除了包括如图6所示的接收模块601、解析模块602、第一判断模块603、加载模块604以及同步模块605之外,还可以包括:
检测模块608,用于检测输入的内存数据库状态切换指令;
具体的应用实例中,内存数据库状态切换指令可以是由主用服务器在出现灾难的情况下发送至备用服务器的,或者是由本地人为输入的。
第一处理模块609,用于在检测模块608检测到内存数据库状态切换指令时,停止接收重做日志,将未处理重做日志写入日志文件;创建完整的本地内存数据库,将磁盘存储的页面加载到本地内存数据库;
其中,在检测到内存数据库状态切换指令之后,第一处理模块609可以将未处理重做日志写入日志文件,确保主用服务器临时修改数据不会发生丢失。
举例来说,第一处理模块609创建完整的本地内存数据库之后,可以向页面交换进程发送页面加载请求,并且接收页面交换进程从磁盘中读取并发送的页面;将该页面加载到本地内存数据库中。
第二处理模块610,用于解析未处理重做日志,获得未处理重做日志的操作地址和修改数据;将未处理重做日志的修改数据同步到本地内存数据库中的未处理重做日志的操作地址对应的页面中;修改本地内存数据库状态标志为主用状态。
需要说明的是,以上备用服务器的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,比如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述的备用服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的收发子模块6041,可以为具有执行前述功能的硬件,比如,收发器,以及其他通用的能够执行前述功能的接收以及发送装置,第一判断模块603,可以为能够执行前述功能的特定处理器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器,或者其他硬件设备。
上述对本发明实施例提供的一种备用服务器进行了介绍,通过使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在备用服务器的内存数据库中,这样可以减少对备用服务器内存的占用,达到内存数据库的N+1容灾的目的;另外,本发明实施例以磁盘作为辅助存储介质,无需为每个主用服务器配置一个备用服务器,从而可以降低内存数据库的容灾成本。
另外,本发明实施例提供的备用服务器也可以具备检测功能,当备用服务器检测到和主用服务器发生灾难,或者检测到人为发送的切换指令时,可以停止重做日志接收工作,并将磁盘中所有页面加载到备用服务器的内存数据库中,备用服务器可以在页面加载完毕后,开始代替主用服务器工作。
请参阅图10,图10为本发明实施例中提供的一种内存数据库的容灾系统的结构示意图。如图10所示,该容灾系统可以包括备用服务器和至少一个主用服务器,其中,备用服务器和至少一个主用服务器之间以可通信方式相连;
其中,主用服务器1001,用于向备用服务器1002发送携带了操作地址以及修改数据的重做日志;
备用服务器1002,用于接收主用服务器发送的携带了操作地址以及修改数据的重做日志;解析上述重做日志,获得上述操作地址以及修改数据;
判断上述操作地址对应的页面是否在本地内存数据库中,若否,从磁盘中获取上述操作地址对应的页面,并加载到本地内存数据库;将上述修改数据同步到所述操作地址对应的页面中。
可选地,备用服务器1002还用于当上述操作地址对应的页面不在本地内存数据库时,进一步判断当前是否满足页面写入条件,若满足,则将本地内存数据库中满足预设条件的页面写入磁盘,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库。
其中,上述的页面写入条件至少包括以下之一:
本地内存数据库不存在空闲页面、当前系统运行达到指定时间或者接收重做日志的次数达到指定次数。
其中,上述的预设条件至少包括以下之一:
本地内存数据库的页面的存储时间达到预设值;
本地内存数据库的页面满足最近最少使用LRU淘汰算法。
可选地,备用服务器1002还可以用于检测输入的内存数据库状态切换指令,停止接收重做日志,将未处理重做日志写入日志文件;创建完整的本地内存数据库,将磁盘存储的页面加载到本地内存数据库;解析未处理重做日志,获得未处理重做日志的操作地址和修改数据;将未处理重做日志的修改数据同步到本地内存数据库中的所述未处理重做日志的操作地址对应的页面中;修改本地内存数据库状态标志为主用状态。
可以理解的是,上述系统实施例中的备用服务器,可以为前述备用服务器实施例中描述的任意一种备用服务器,此处不再进行赘述。
上述对本发明实施例提供的一种内存数据库的容灾系统进行了介绍,通过使用磁盘作为辅助存储介质,可以将主用服务器的内存数据库中大部分数据存储到磁盘内,仅将主用服务器的内存数据库中临时发生变化的数据存储在备用服务器的内存数据库中,这样可以减少对备用服务器内存的占用,达到内存数据库的N+1容灾的目的;另外,本发明实施例以磁盘作为辅助存储介质,无需为每个主用服务器配置一个备用服务器,从而可以降低内存数据库的容灾成本。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(ROM)、随机存取器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明实施例所提供的一种内存数据库的容灾方法、备用服务器及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种内存数据库的容灾方法,其特征在于,包括:
接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
解析所述重做日志,获得所述操作地址以及修改数据;
判断所述操作地址对应的页面是否在本地内存数据库,若否,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;
将所述修改数据同步到所述操作地址对应的页面中。
2.如权利要求1所述的容灾方法,其特征在于,若所述操作地址对应的页面不在本地内存数据库,还包括:
若满足页面写入条件,则将本地内存数据库中满足预设条件的页面写入磁盘。
3.如权利要求2所述的容灾方法,其特征在于,所述页面写入条件包括至少下述条件之一:本地内存数据库不存在空闲页面、当前系统运行达到指定时间以及接收重做日志的次数达到指定次数。
4.如权利要求2或3所述的容灾方法,其特征在于,所述将本地内存数据库中满足预设条件的页面写入磁盘包括:
将本地内存数据库中的存储时间达到预设值的页面写入磁盘;
和/或,将本地内存数据库中满足最近最少使用LRU淘汰算法的页面写入磁盘。
5.如权利要求1所述的容灾方法,其特征在于,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库包括:
向页面交换进程发送携带了所述操作地址的缺页请求;
接收所述页面交换进程从磁盘中读取并发送的所述操作地址对应的页面;
将所述操作地址对应的页面加载到本地内存数据库。
6.如权利要求1、2、3或5所述的容灾方法,其特征在于,还包括:
检测输入的内存数据库状态切换指令;
停止接收重做日志,将未处理重做日志写入日志文件;
创建完整的本地内存数据库,将所述磁盘存储的页面加载到本地内存数据库;
解析所述未处理重做日志,获得所述未处理重做日志的操作地址和修改数据;
将所述未处理重做日志的修改数据同步到本地内存数据库中的所述未处理重做日志的操作地址对应的页面中;
修改本地内存数据库状态标志为主用状态。
7.如权利要求6所述的容灾方法,其特征在于,将所述磁盘存储的页面加载到本地内存数据库包括:
向页面交换进程发送页面加载请求;
接收所述页面交换进程从磁盘中读取并发送的页面;
将所述页面加载到本地内存数据库。
8.一种备用服务器,其特征在于,包括:
接收模块,用于接收主用服务器发送的携带了操作地址以及修改数据的重做日志;
解析模块,用于解析所述接收模块接收的重做日志,获得所述操作地址以及修改数据;
第一判断模块,用于判断所述操作地址对应的页面是否在本地内存数据库;
加载模块,用于在所述第一判断模块的判断结果为否时,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;
同步模块,用于将所述修改数据同步到所述操作地址对应的页面中。
9.如权利要求8所述的备用服务器,其特征在于,还包括:
第二判断模块,用于在所述第一判断模块的判断结果为否时,判断当前是否满足页面写入条件;
写入模块,用于在所述第二判断模块的判断结果为是时,将本地内存数据库中满足预设条件的页面写入磁盘;
所述加载模块,具体用于在所述写入模块将本地内存数据库中满足预设条件的页面写入磁盘之后,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库。
10.如权利要求9所述的备用服务器,其特征在于,所述第二判断模块根据至少下述条件之一判断当前是否满足页面写入条件:本地内存数据库不存在空闲页面、当前系统运行达到指定时间以及接收重做日志的次数达到指定次数。
11.如权利要求9或10所述的备用服务器,其特征在于,所述写入模块具体用于将本地内存数据库中的存储时间达到预设值的页面写入磁盘;和/或,用于将本地内存数据库中满足最近最少使用LRU淘汰算法的页面写入磁盘。
12.如权利要求8所述的备用服务器,其特征在于,所述加载模块包括:
收发子模块,用于当所述第一判断模块的判断结果为否时,向页面交换进程发送携带了所述操作地址的缺页请求;接收所述页面交换进程从所述磁盘中读取并发送的所述操作地址对应的页面;
加载子模块,用于将所述操作地址对应的页面加载到本地内存数据库。
13.如权利要求8、9、10或12所述的备用服务器,其特征在于,还包括:
检测模块,用于检测输入的内存数据库状态切换指令;
第一处理模块,用于在所述检测模块检测到内存数据库状态切换指令时,停止接收重做日志,将未处理重做日志写入日志文件;创建完整的本地内存数据库,将所述磁盘存储的页面加载到本地内存数据库;
第二处理模块,用于解析所述未处理重做日志,获得所述未处理重做日志的操作地址和修改数据;将所述未处理重做日志的修改数据同步到本地内存数据库中的所述未处理重做日志的操作地址对应的页面中;修改本地内存数据库状态标志为主用状态。
14.一种内存数据库的容灾系统,其特征在于,包括备用服务器和至少一个主用服务器,所述备用服务器和主用服务器之间以可通信方式相连;
所述主用服务器,用于向备用服务器发送携带了操作地址以及修改数据的重做日志;
所述备用服务器,用于接收所述主用服务器发送的携带了操作地址以及修改数据的重做日志;解析所述重做日志,获得所述操作地址以及修改数据;判断所述操作地址对应的页面是否在本地内存数据库中,若否,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库;将所述修改数据同步到所述操作地址对应的页面中。
15.如权利要求14所述的容灾系统,其特征在于,
所述备用服务器,还用于当所述操作地址对应的页面不在本地内存数据库时,进一步判断当前是否满足页面写入条件,若满足,则将本地内存数据库中满足预设条件的页面写入磁盘,从磁盘中获取所述操作地址对应的页面,并加载到本地内存数据库。
16.如权利要求15所述的容灾系统,其特征在于,所述的备用服务器根据至少下述条件之一判断当前是否满足页面写入条件:本地内存数据库不存在空闲页面、当前系统运行达到指定时间以及接收重做日志的次数达到指定次数。
17.如权利要求15或16所述的容灾系统,其特征在于,所述的备用服务器具体用于将本地内存数据库中的存储时间达到预设值的页面写入磁盘;和/或,用于将本地内存数据库中满足最近最少使用LRU淘汰算法的页面写入磁盘。
18.如权利要求14或15或16所述的容灾系统,其特征在于,
所述备用服务器,还用于检测输入的内存数据库状态切换指令,停止接收重做日志,将未处理重做日志写入日志文件;创建完整的本地内存数据库,将所述磁盘存储的页面加载到本地内存数据库;解析所述未处理重做日志,获得所述未处理重做日志的操作地址和修改数据;将所述未处理重做日志的修改数据同步到本地内存数据库中的所述未处理重做日志的操作地址对应的页面中;修改本地内存数据库状态标志为主用状态。
CN2009102055050A 2009-10-20 2009-10-20 一种内存数据库的容灾方法、备用服务器及系统 Active CN102043686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102055050A CN102043686B (zh) 2009-10-20 2009-10-20 一种内存数据库的容灾方法、备用服务器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102055050A CN102043686B (zh) 2009-10-20 2009-10-20 一种内存数据库的容灾方法、备用服务器及系统

Publications (2)

Publication Number Publication Date
CN102043686A true CN102043686A (zh) 2011-05-04
CN102043686B CN102043686B (zh) 2012-11-14

Family

ID=43909839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102055050A Active CN102043686B (zh) 2009-10-20 2009-10-20 一种内存数据库的容灾方法、备用服务器及系统

Country Status (1)

Country Link
CN (1) CN102043686B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092719A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 一种文件系统的断电保护方法
CN103136070A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 一种数据容灾处理的方法和装置
CN103345470A (zh) * 2013-05-31 2013-10-09 深圳市沃信科技有限公司 一种数据库容灾方法、系统及服务器
CN103580906A (zh) * 2012-08-09 2014-02-12 腾讯科技(深圳)有限公司 一种数据备份的方法、系统及服务器
CN103678718A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 数据库同步方法及系统
CN104657366A (zh) * 2013-11-18 2015-05-27 深圳市腾讯计算机系统有限公司 海量日志写入数据库的方法、装置和日志容灾系统
CN105324770A (zh) * 2013-04-30 2016-02-10 亚马逊科技公司 有效读出副本
CN106484568A (zh) * 2016-09-30 2017-03-08 郑州云海信息技术有限公司 一种数据灾难备份方法及其系统
CN106991177A (zh) * 2017-04-06 2017-07-28 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN108153787A (zh) * 2016-12-02 2018-06-12 航天星图科技(北京)有限公司 一种数据库的容灾方法
CN108520069A (zh) * 2018-04-13 2018-09-11 郑州云海信息技术有限公司 一种数据库高可用实现方法及数据库服务器
CN109977168A (zh) * 2019-03-18 2019-07-05 武汉达梦数据库有限公司 基于数据页预加载的数据库数据同步方法及设备
CN110008284A (zh) * 2019-03-18 2019-07-12 武汉达梦数据库有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备
CN110198331A (zh) * 2018-03-28 2019-09-03 腾讯科技(上海)有限公司 一种同步数据的方法及系统
CN111209265A (zh) * 2018-11-22 2020-05-29 华为技术有限公司 一种数据库切换方法和终端设备
CN111611107A (zh) * 2020-05-21 2020-09-01 云和恩墨(北京)信息技术有限公司 获取数据库日志的方法及装置
WO2020192311A1 (zh) * 2019-03-22 2020-10-01 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
CN111831490A (zh) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 一种冗余主备用节点之间内存同步方法及系统
CN114816247A (zh) * 2022-04-13 2022-07-29 阿里云计算有限公司 一种逻辑数据获取方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286288C (zh) * 2004-03-04 2006-11-22 中兴通讯股份有限公司 一种内存数据库主备同步的方法
CN101316184B (zh) * 2007-06-01 2010-09-15 华为技术有限公司 容灾切换方法、系统、装置
CN100562858C (zh) * 2007-09-12 2009-11-25 华为技术有限公司 内存数据库远程容灾的方法、装置和系统

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092719B (zh) * 2011-10-28 2016-09-07 浙江大华技术股份有限公司 一种文件系统的断电保护方法
CN103092719A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 一种文件系统的断电保护方法
CN103136070A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 一种数据容灾处理的方法和装置
CN103136070B (zh) * 2011-11-30 2015-08-05 阿里巴巴集团控股有限公司 一种数据容灾处理的方法和装置
CN103580906B (zh) * 2012-08-09 2018-02-27 腾讯科技(深圳)有限公司 一种数据备份的方法、系统及服务器
CN103580906A (zh) * 2012-08-09 2014-02-12 腾讯科技(深圳)有限公司 一种数据备份的方法、系统及服务器
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
CN105324770B (zh) * 2013-04-30 2019-08-16 亚马逊科技公司 有效读出副本
CN105324770A (zh) * 2013-04-30 2016-02-10 亚马逊科技公司 有效读出副本
CN103345470A (zh) * 2013-05-31 2013-10-09 深圳市沃信科技有限公司 一种数据库容灾方法、系统及服务器
CN103345470B (zh) * 2013-05-31 2016-05-25 深圳市沃信科技有限公司 一种数据库容灾方法、系统及服务器
CN104657366B (zh) * 2013-11-18 2019-05-24 深圳市腾讯计算机系统有限公司 海量日志写入数据库的方法、装置和日志容灾系统
CN104657366A (zh) * 2013-11-18 2015-05-27 深圳市腾讯计算机系统有限公司 海量日志写入数据库的方法、装置和日志容灾系统
CN103678718A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 数据库同步方法及系统
CN106484568A (zh) * 2016-09-30 2017-03-08 郑州云海信息技术有限公司 一种数据灾难备份方法及其系统
CN108153787A (zh) * 2016-12-02 2018-06-12 航天星图科技(北京)有限公司 一种数据库的容灾方法
CN108153787B (zh) * 2016-12-02 2019-11-26 中科星图股份有限公司 一种数据库的容灾方法
CN106991177A (zh) * 2017-04-06 2017-07-28 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN106991177B (zh) * 2017-04-06 2020-11-13 广东亿迅科技有限公司 一种分布式环境下实时日志的无损采集方法及其系统
CN110198331A (zh) * 2018-03-28 2019-09-03 腾讯科技(上海)有限公司 一种同步数据的方法及系统
CN108520069A (zh) * 2018-04-13 2018-09-11 郑州云海信息技术有限公司 一种数据库高可用实现方法及数据库服务器
CN111209265B (zh) * 2018-11-22 2023-11-17 华为技术有限公司 一种数据库切换方法和终端设备
CN111209265A (zh) * 2018-11-22 2020-05-29 华为技术有限公司 一种数据库切换方法和终端设备
CN109977168A (zh) * 2019-03-18 2019-07-05 武汉达梦数据库有限公司 基于数据页预加载的数据库数据同步方法及设备
CN110008284B (zh) * 2019-03-18 2021-06-22 武汉达梦数据库股份有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备
CN109977168B (zh) * 2019-03-18 2021-11-05 武汉达梦数据库股份有限公司 基于数据页预加载的数据库数据同步方法及设备
CN110008284A (zh) * 2019-03-18 2019-07-12 武汉达梦数据库有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备
WO2020192311A1 (zh) * 2019-03-22 2020-10-01 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
US11500744B2 (en) 2019-03-22 2022-11-15 Beijing Dajia Internet Information Technology Co., Ltd. Method for primary-backup server switching, and control server
CN111611107A (zh) * 2020-05-21 2020-09-01 云和恩墨(北京)信息技术有限公司 获取数据库日志的方法及装置
CN111831490A (zh) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 一种冗余主备用节点之间内存同步方法及系统
CN111831490B (zh) * 2020-06-30 2023-11-10 中国船舶集团有限公司第七一六研究所 一种冗余主备用节点之间内存同步方法及系统
CN114816247A (zh) * 2022-04-13 2022-07-29 阿里云计算有限公司 一种逻辑数据获取方法及装置

Also Published As

Publication number Publication date
CN102043686B (zh) 2012-11-14

Similar Documents

Publication Publication Date Title
CN102043686B (zh) 一种内存数据库的容灾方法、备用服务器及系统
CN103167026B (zh) 一种云存储环境数据处理方法、系统及设备
US7647449B1 (en) Method, system, and computer readable medium for maintaining the order of write-commands issued to a data storage
CN102411639B (zh) 元数据的多副本存储管理方法和系统
CN102142032B (zh) 一种分布式文件系统的数据读写方法及系统
CN105630418A (zh) 一种数据存储方法及装置
CN103761141A (zh) 一种实现消息队列的方法及装置
CN103714097A (zh) 一种访问数据库的方法和装置
CN102355682A (zh) 传感器适配方法、装置及物联网系统
EP3438845A1 (en) Data updating method and device for a distributed database system
CN105824572A (zh) 一种磁盘存储空间管理方法、装置及存储设备
CN103647850A (zh) 一种分布式版本控制系统的数据处理方法、设备及系统
CN102831069A (zh) 内存处理方法、内存管理设备
CN103577546A (zh) 一种数据备份的方法、设备及分布式集群文件系统
CN111309245B (zh) 一种分层存储写入方法和装置、读取方法和装置及系统
CN102959548B (zh) 数据存储方法、查找方法及装置
CN104484131A (zh) 多磁盘服务器的数据处理装置及对应的处理方法
CN111240892A (zh) 数据备份方法及装置
CN103986779A (zh) 一种应用数据传输方法、装置及终端设备
CN103973727A (zh) 数据同步方法及装置
CN105760251B (zh) 一种备份数据的方法和装置
CN106294387A (zh) 数据迁移方法和装置
CN106951456B (zh) 一种内存数据库系统及数据处理系统
CN105302489A (zh) 一种异构多核远程嵌入式存储器系统与方法
US20200394904A1 (en) Metering data management system and computer readable recording medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201111

Address after: 215500 No.13, Caotang Road, Changshu, Suzhou, Jiangsu Province

Patentee after: Changshu intellectual property operation center Co.,Ltd.

Address before: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20201111

Address after: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 215500 5th floor, building 4, 68 Lianfeng Road, Changfu street, Changshu City, Suzhou City, Jiangsu Province

Patentee after: Changshu intellectual property operation center Co.,Ltd.

Address before: No.13 caodang Road, Changshu City, Suzhou City, Jiangsu Province

Patentee before: Changshu intellectual property operation center Co.,Ltd.

CP02 Change in the address of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220124

Address after: 215500 No.8, Menglan Road, Changshu City, Suzhou City, Jiangsu Province

Patentee after: JIANGSU LEMOTE INFORMATION TECHNOLOGY CO.,LTD.

Address before: 215500 5th floor, building 4, 68 Lianfeng Road, Changfu street, Changshu City, Suzhou City, Jiangsu Province

Patentee before: Changshu intellectual property operation center Co.,Ltd.

TR01 Transfer of patent right