CN100562858C - 内存数据库远程容灾的方法、装置和系统 - Google Patents
内存数据库远程容灾的方法、装置和系统 Download PDFInfo
- Publication number
- CN100562858C CN100562858C CNB200710149582XA CN200710149582A CN100562858C CN 100562858 C CN100562858 C CN 100562858C CN B200710149582X A CNB200710149582X A CN B200710149582XA CN 200710149582 A CN200710149582 A CN 200710149582A CN 100562858 C CN100562858 C CN 100562858C
- Authority
- CN
- China
- Prior art keywords
- logic log
- disaster tolerance
- data
- memory database
- module
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种内存数据库远程容灾的方法,该方法包括:接收主内存数据库执行业务操作后生成的逻辑日志并备份;执行所述逻辑日志,更新容灾内存数据库中的数据,将容灾内存数据库中的数据备份;主内存数据库故障时,如果容灾数据库正常,使用容灾内存数据库,如果容灾数据库故障,使用备份的数据和逻辑日志恢复容灾内存数据库,再使用容灾数据库。本发明还公开了一种内存数据库远程容灾的异地侧装置、一种内存数据库远程容灾的本地侧装置和一种内存数据库远程容灾的系统。应用本发明,能够以内存作为数据存储主体,实现内存数据库的远程容灾。
Description
技术领域
本发明涉及内存数据库技术,特别涉及内存数据库远程容灾的方法、装置和系统。
背景技术
数据库容灾建立在数据库基础上,通过逻辑的方式建立一个和主数据库相同的容灾数据库并实时更新,用于主数据库发生灾难时,及时接管业务系统,保证业务的持续性。
灾难的原因是多方面的,可以由数据库所在的计算机系统的因素导致,例如存储介质的损坏,或者由非计算机系统的因素导致,例如自然灾害。采用远程容灾,将地理位置划分为本地和异地,在本地建立主数据库,而在异地建立容灾数据库,相当于在地理上将主数据库和容灾数据库分离,已经成为保证业务持续性的一种重要手段。
目前应用广泛的物理数据库远程容灾,主要通过数据库产品自带的复制工具或第三方工具实现,这些工具通过将本地主数据库中记录业务操作的日志文件传输到异地容灾数据库,并在异地容灾数据库中执行日志文件,实时更新异地容灾数据库中的数据,以实现异地容灾数据库与本地数据库的数据同步,从而在本地数据库出现灾难时,异地容灾数据库能够及时接管业务系统。
随着运营商运营水平的不断提高,对数据库操作的实时性也提出了更高的要求,物理数据库的数据存储主体为磁盘,而磁盘中的数据存取必须涉及到输入/输出(I/O)接口,因此物理数据库在操作执行方面存在延迟,成为物理数据库在实时性方面的性能瓶颈,也同样影响物理数据库远程容灾时,主数据库和容灾数据库的数据同步效果。基于上述问题,内存数据库应运而生,希望业务系统对数据库的操作只针对内存,由于内存的数据存取无需涉及I/O接口,因此在实时性方面具备很大的优势。现有内存数据库的应用多是以内存作为快速查询的缓存,从而在数据存取方面满足实时性的要求,而数据存储的主体依然为磁盘,因此目前针对内存数据库提出的远程容灾方案,也是基于物理数据库实现的。
随着应用需求和性能要求的提高,内存数据库的数据存储主体将由磁盘逐渐转换为内存本身,但是,由于内存的数据易失性,如果内存数据库所在的系统出现故障,内存中的数据将会全部丢失无法恢复,因此以内存作为数据存储主体的内存数据库的远程容灾能力显得尤为重要。
目前还未出现以内存作为数据存储主体的内存数据库远程容灾方案。
发明内容
本发明实施例提供一种内存数据库的远程容灾方法,该方法能够以内存作为数据存储主体,实现内存数据库的远程容灾。
本发明实施例提供一种内存数据库的远程容灾异地侧装置,该装置能够以内存作为数据存储主体,实现内存数据库的远程容灾。
本发明实施例提供一种内存数据库的远程容灾系统,该系统能够以内存作为数据存储主体,实现内存数据库的远程容灾。
本发明实施例提供一种内存数据库的远程容灾方法,在本地设置主内存数据库,在异地设置容灾内存数据库和镜像磁盘,该方法还包括:
异地接收主内存数据库执行业务操作后生成的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则,将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;
异地执行所述逻辑日志,更新容灾内存数据库中的数据,将容灾内存数据库中的数据存储到所述镜像磁盘;
主内存数据库故障时,如果容灾内存数据库正常,异地使用容灾内存数据库,如果容灾内存数据库故障,异地使用备份的数据和备份的逻辑日志恢复容灾内存数据库,再使用容灾内存数据库。
本发明实施例提供一种内存数据库的远程容灾异地侧装置,该装置包括:
逻辑日志处理模块,用于接收来自本地侧装置的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;执行接收的逻辑日志,更新容灾内存数据库模块中的数据;
容灾内存数据库模块,用于存储数据;
磁盘镜像模块,用于将所述容灾内存数据库模块中的数据存储到镜像磁盘;在所述容灾内存数据库模块出现故障时,使用所述备份的数据和备份的逻辑日志恢复所述容灾内存数据库模块中的数据;
镜像磁盘,用于接收所述逻辑日志处理模块输出的逻辑日志存储,接收所述磁盘镜像模块输出的容灾内存数据库模块中的数据存储。
本发明实施例提供一种内存数据库远程容灾的系统,该系统包括:本地侧装置和异地侧装置;所述本地侧装置中包括存储数据的主内存数据库,异地侧装置中包括镜像磁盘及存储数据的容灾内存数据库;
所述本地侧装置,用于生成针对所述主内存数据库的业务操作的逻辑日志,将所述逻辑日志发送到异地侧装置;
所述异地侧装置,用于接收来自所述本地侧装置的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则,将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;执行接收的逻辑日志,更新所述容灾内存数据库中的数据,将所述容灾内存数据库中的数据备份;在所述容灾内存数据库出现故障时,使用所述备份的数据和备份的逻辑日志恢复所述容灾内存数据库中的数据。
可见,本发明实施例内存数据库远程容灾的方法、装置和系统,使用逻辑日志同步主内存数据库和容灾内存数据库中的数据,在主内存数据库出现故障时,使用容灾内存数据库及时接管业务系统;又由于数据存储的主体为内存,具有数据易失性的特点,将来自主内存数据库的逻辑日志和容灾内存数据库中的数据再进行备份,在容灾内存数据库出现故障时,使用备份的数据和逻辑日志恢复容灾内存数据库,再使用容灾内存数据库及时接管业务系统。
附图说明
图1为本发明实施例内存数据库远程容灾的异地侧装置结构示意图;
图2为本发明实施例内存数据库远程容灾的本地侧装置结构示意图;
图3为本发明实施例内存数据库远程容灾的方法流程图;
图4为本发明实施例内存数据库远程容灾的方法中的日志同步流程图;
图5为本发明实施例内存数据库远程容灾的方法中的日志接收流程图;
图6为本发明实施例内存数据库远程容灾的方法中的磁盘镜像流程图;
图7为本发明实施例内存数据库远程容灾的方法中的恢复流程图。
具体实施方式
为使本发明实施例的目的和优点更清楚,下面结合附图对本发明实施例作进一步的详细说明。
首先,介绍本发明实施例内存数据库远程容灾的装置,包括本地侧装置和异地侧装置。
图1为本发明实施例内存数据库远程容灾的异地侧装置结构示意图,该异地侧装置包括:
逻辑日志处理模块,用于接收来自本地侧装置的逻辑日志并备份;执行接收的逻辑日志,更新容灾内存数据库模块中的数据。
容灾内存数据库模块,用于存储数据。
磁盘镜像模块,用于将所述容灾内存数据库模块中的数据备份;在所述容灾内存数据块出现故障时,使用所述备份的数据和逻辑日志恢复所述容灾内存数据库模块中的数据。
本发明实施例提供的内存数据库远程容灾的异地侧装置,接收本地侧装置发送的逻辑日志,将逻辑日志备份并执行逻辑日志,从而更新容灾内存数据库中的数据;又由于数据存储的主体为内存,将容灾内存数据库中的数据也进行备份,在主内存数据库出现故障时,使用容灾内存数据库及时接管业务系统,处理业务请求,在容灾内存数据库出现故障时,使用备份的数据和逻辑日志恢复容灾内存数据库,再使用容灾内存数据库及时接管业务系统,处理业务请求,从而保证了以内存数据库为数据主体的远程容灾能力。
上述本发明实施例提供的内存数据库远程容灾的异地侧装置,在装置内部可以包括镜像磁盘,或者该装置可以直连有位于装置外部的镜像磁盘,镜像磁盘的作用为存储所述备份的逻辑日志和容灾内存数据库中的数据,图1示出的是异地侧装置直连有镜像磁盘的情况。基于这种情况,该异地侧装置中还可以进一步包括心跳消息处理模块,用于接收来自本地侧装置的心跳消息,向本地侧装置返回心跳响应消息。
装置中的磁盘镜像模块还可以包括:执行模块和标志位设置模块。其中,执行模块用于将容灾内存数据库模块中的数据存储到镜像磁盘;使用镜像磁盘中的数据和逻辑日志恢复容灾内存数据库模块中的数据。标志位设置模块,用于根据执行模块当前是否将容灾内存数据库模块中的数据存储到镜像磁盘,设置标识执行模块操作的标志位。
装置中的逻辑日志处理模块还可以包括:收发模块、缓存模块、判定模块和数据同步模块。
收发模块,用于接收来自本地侧装置的逻辑日志,根据判定模块的判定结果输出到所述镜像磁盘,并输出到所述缓存模块;向本地侧装置返回逻辑日志正确接收的确认消息。
缓存模块,用于缓存来自本地的逻辑日志。
数据同步模块,用于从所述缓存模块中读出逻辑日志并执行,根据执行结果更新所述容灾内存数据库模块中存储的数据。
判定模块,用于根据磁盘镜像模块中的标志位,得出当前是否正在进行将容灾数据库中的数据存储到镜像磁盘的判定结果。
图2为本发明实施例内存数据库远程容灾的本地侧装置的结构示意图,该装置中包括:
主内存数据库模块,用于存储数据。
逻辑日志生成模块,用于生成针对所述主内存数据库模块的业务操作的逻辑日志。
逻辑日志处理模块,用于从所述逻辑日志生成模块中读取逻辑日志,将逻辑日志发送到异地侧装置。
本发明实施例提供的内存数据库远程容灾的本地侧装置,将对应主内存数据库业务操作的逻辑日志发送到异地侧装置,使异地侧装置能够根据该逻辑日志将容灾内存数据库中的数据与本地侧主内存数据库中的数据同步,实现远程容灾。
上述本地侧装置还可以包括逻辑日志缓存磁盘,或该本地侧装置可以直连一个逻辑日志缓存磁盘,用于接收所述逻辑日志读取模块备份的逻辑日志存储,图2示出的是本地侧装置直连逻辑日志缓存磁盘的情况。基于这种情况,本发明实施例提供的内存数据库远程容灾的本地侧装置中可以进一步包括心跳消息处理模块,装置中的逻辑日志处理模块可以包括:逻辑日志读取模块、缓存模块、收发模块和逻辑日志删除模块。
逻辑日志读取模块,用于从所述逻辑日志生成模块中读取逻辑日志,根据所述心跳消息处理模块接收的心跳响应消息,在和异地侧装置间通信正常时,传输给缓存模块,在和异地侧装置间通信不正常时备份。
缓存模块,用于缓存所述逻辑日志读取模块读取的逻辑日志。
收发模块,用于将缓存模块中或者备份存储的逻辑日志向异地侧装置发送,接收异地侧装置返回的逻辑日志正确接收的确认消息,所述确认消息中包括正确接收的逻辑日志对应的标识。
逻辑日志删除模块,用于将所述收发模块接收的确认消息中包括的标识,在所述缓存模块或逻辑日志缓存磁盘中对应的逻辑日志删除。
心跳消息处理模块,用于向异地侧装置发送心跳消息,接收异地侧装置返回的心跳响应消息。
上述本发明实施例内存数据库远程容灾的异地侧装置和本地侧装置,可以组成本发明实施例内存数据库远程容灾的系统。
其次,详细介绍本发明实施例内存数据库远程容灾的方法,图3示出了该方法的流程。在图3所示流程开始之前,首先在本地建立主内存数据库,在异地建立容灾内存数据库。上述主内存数据库对应已介绍的本地侧装置中的主内存数据库模块,而容灾内存数据库对应异地侧装置中的容灾内存数据库模块。
图3所示流程包括:
步骤301:接收主内存数据库执行业务操作后生成的逻辑日志并备份。
本步骤中,本地侧装置中的逻辑日志生成模块,在主内存数据库执行业务操作后,生成记录已执行的业务操作的逻辑日志,异地侧装置中的逻辑日志处理模块首先接收上述逻辑日志,再对接收到的逻辑日志进行备份。
步骤302:执行接收的逻辑日志,更新容灾内存数据库中的数据,将容灾内存数据库中的数据备份。
本步骤中,异地侧装置中的逻辑日志处理模块执行接收到的逻辑日志,即可根据执行结果获知主内存数据库进行的业务操作,对容灾内存数据库中的数据进行更新,以实现容灾内存数据库和主内存数据库中的数据同步,在主内存数据库故障时能够及时接管业务系统。将更新后的数据备份的操作,由异地侧装置中的磁盘镜像模块完成,可以与上述更新容灾内存数据库中的数据异步操作,即不必每次数据更新后都立即备份,例如可以设置镜像磁盘间隔,定期将容灾内存数据库中的数据备份。
步骤303:主内存数据库故障时,如果容灾数据库正常,使用容灾内存数据库,如果容灾数据库故障,使用备份的数据和逻辑日志恢复容灾内存数据库,再使用容灾数据库。
本步骤中,当容灾内存数据库也出现故障时,异地侧装置中的磁盘镜像模块可以使用备份的数据来恢复容灾内存数据库,但如步骤302所述,由于将容灾数据库中的数据备份与容灾内存数据库中的数据更新可以为异步操作,因此备份的数据可能与容灾内存数据库出现故障时数据的状态并不一致,这时就需要使用备份的逻辑日志,对备份的数据进行更新,使这些数据与容灾内存数据库出现故障时的状态同步,从而实现将容灾内存数据库恢复到故障出现前的状态。
本发明实施例内存数据库远程容灾的方法,使用逻辑日志同步主内存数据库和容灾内存数据库中的数据,在主内存数据库出现故障时,使用容灾内存数据库及时接管业务系统,处理业务请求;又由于数据存储的主体为内存,具有数据易失性的特点,将来自主内存数据库的逻辑日志和容灾内存数据库中的数据再进行备份,在容灾内存数据库出现故障时,使用备份的数据和逻辑日志恢复容灾内存数据库,再使用容灾内存数据库及时接管业务系统,从而保证了以内存数据库为数据主体的远程容灾能力。
本发明实施例提供的内存数据库远程容灾的方法中,在异地可以进一步设置一个镜像磁盘,对应于已介绍过的异地侧装置中的镜像磁盘,或者直连于异地侧装置的镜像磁盘,步骤301备份的逻辑日志和步骤302中备份的容灾内存数据库中的数据可以为:异地侧装置中的逻辑日志处理模块将逻辑日志输出到镜像磁盘存储,以及异地侧装置中的磁盘镜像模块将容灾内存数据库中的数据输出到镜像磁盘中存储。
本发明实施例提供的内存数据库远程容灾的方法,可以具体划分为几个实施流程,包括:日志同步流程、日志接收流程、磁盘镜像流程和容灾内存数据库恢复流程。
在介绍上述各个具体流程之前,先介绍本发明实施例中逻辑日志存储的较佳实施方式。
逻辑日志可以存放在共享内存的系统日志表中,通过增加记录形成缓冲(Buffer)组,每个逻辑日志是系统日志表中的一条记录,该记录的结构如表一所示。
Buffer头 | 逻辑日志 | 逻辑日志 | 逻辑日志 | 逻辑日志 |
表一
表一中所示的Buffer头的结构如表二所示。
logid | flag | bufsize |
表二
表二中所示的logid代表进行业务数据操作时,申请的对应该业务操作的逻辑日志的唯一值,当logid大于0xffffffff时从1开始重新分配。表二中所示的flag表示本条记录剩余的空间,当剩余的空间不足以存储逻辑日志时,可以将flag的值设为full。表二中所示的bufsize代表本条记录的大小。
图4为本发明实施例内存数据库远程容灾的方法中的日志同步流程图,该流程主要描述在本地如何读取生成的逻辑日志,并发送到异地实现日志同步。在本地设置缓存区和逻辑日志缓存磁盘,其中缓存区可以是上述介绍过的共享内存中的系统日志表,存储结构也可以如表一和表二所示,缓存区和逻辑日志缓存磁盘,对应已介绍过的本地侧装置中的缓存模块和逻辑日志缓存磁盘。图4所示流程包括:
步骤401:从缓存区中读取逻辑日志。
本步骤中,缓存区中的存储结构可以如表一和表二所示,本地侧装置中的逻辑日志读取模块,读取执行业务操作后由逻辑日志生成模块生成的逻辑日志,存储到缓存区中。上述读取逻辑日志的方法可以为:从flag标识为full的buffer中读取逻辑日志。
步骤402:监测当前本地和异地间的通信是否正常,在不正常时执行步骤403,在正常时执行步骤405。
本步骤中,监测的方法可以具体为:由本地侧装置中的心跳消息处理模块,定期向异地侧装置发送心跳消息,如果能够接收到异地侧装置返回的心跳响应,认为本地和异地间的通信正常,否则认为不正常。
步骤403:将读取的逻辑日志写入逻辑日志缓存磁盘,并继续监测本地和异地间的通信。
本步骤中,已在步骤402中判断本地和异地间的通信不正常,则无法将从缓存中读取的逻辑日志直接发送到异地侧,这时本地侧装置中的逻辑日志读取模块可以将读取的逻辑日志,发送到逻辑日志缓存磁盘存储,逻辑日志在逻辑日志缓存磁盘中的存储结构可以与在缓存区中的存储结构相同。可以由本地侧装置中的心跳消息处理模块继续检测本地和异地间的通信是否正常。
步骤404:本地和异地间的通信恢复正常时,发送逻辑日志缓存磁盘中的逻辑日志。
本步骤中,在本地和异地间的通信恢复正常后,本地侧装置中的收发模块首先把通信不正常时,写入逻辑日志缓存磁盘的逻辑日志发送到异地侧,在此发送的过程中,本地侧装置中的逻辑日志读取模块将新读取的逻辑日志继续写入逻辑日志缓存磁盘,直到将逻辑日志缓存磁盘上的最后一个逻辑日志发送到异地侧,新读取的逻辑日志就不在写入,而是直接发送到异地侧。除了上述发送逻辑日志的方式之外,本地侧装置中的收发模块对缓存区和逻辑日志缓存磁盘上的逻辑日志,也可以按照任意顺序发送,异地侧装置根据逻辑日志标识,自主将接收到的逻辑日志进行排序。
步骤405:发送读取的逻辑日志。
本步骤中,已在步骤402中判断本地和异地间的通信正常,则可以直接由本地侧装置中的收发模块从缓存区中读取逻辑日志,发送到异地侧装置。
为了防止逻辑日志占用的存储空间过大,当接收到异地侧装置返回的确认消息时,上述图4所示流程还可以包括:
步骤406:接收返回的确认消息,删除已正确发送的逻辑日志。
本步骤中,由本地侧装置中的收发模块接收异地侧装置返回的确认消息,该确认消息中可以包括已正确接收的逻辑日志的标识,例如已经介绍过的逻辑日志的logid,本地侧装置中的逻辑日志删除模块,根据所述标识,将缓存区或逻辑日志缓存磁盘中对应的逻辑日志删除。如果发送到异地侧装置的逻辑日志仅包括从缓存区发送的,则只需删除缓存区中的逻辑日志,如果发送到异地侧装置的逻辑日志还包括从逻辑日志缓存磁盘发送的,还需删除逻辑日志缓存磁盘中的逻辑日志。删除的方法具体可以为:异地侧装置返回的确认消息中包括代表逻辑日志的logid,遍历系统日志表,将buffer的头部中的flag为full,并且其中保存的最大logid小于确认消息中携带的logid的记录删除。
以上步骤401~步骤406描述了在本地,逻辑日志的发送流程,如果从系统程序层面来看,可以创建一个容灾通信进程,由该容灾通信进程完成步骤401~步骤406。
图5为本发明实施例内存数据库远程容灾的方法中的日志接收流程图,该流程主要描述在异地,如何接收并存储接收到的逻辑日志。图5所示流程包括:
步骤501:接收逻辑日志。
本步骤中,异地侧装置中的收发模块接收来自本地侧装置的逻辑日志。
步骤502:判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果不是,则执行步骤503,否则执行步骤504。
本步骤中,异地侧装置中的磁盘镜像模块内部,标志位设置模块,根据执行模块当前是否将容灾内存数据库模块中的数据存储到镜像磁盘,设置标识执行模块操作的标志位。本步骤中的判断由异地侧装置中的判定模块,根据上述磁盘镜像模块中的标志位,得出当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘的判定结果。
步骤503:将逻辑日志写入镜像磁盘中当前正常通信时的逻辑日志文件中,然后执行步骤505。
本步骤中,异地侧装置中的收发模块将逻辑日志写入镜像磁盘中,当前正常通信时的逻辑日志文件中,并将逻辑日志写入缓存模块中。
步骤504:将逻辑日志写入镜像磁盘中当前磁盘镜像进行中的逻辑日志文件中。
本步骤中,由异地侧装置中的收发模块将逻辑日志写入镜像磁盘中当前镜像进行中的逻辑日志文件中,并将逻辑日志再写入缓存模块中。
上述步骤503和步骤504中,当前正常通信时的逻辑日志文件和当前磁盘镜像进行中的逻辑日志文件,为镜像磁盘中的两个文件,建立的目的是为了区分磁盘镜像进行之前和进行中,逻辑日志在镜像磁盘中的不同存储位置。
步骤505:发送逻辑日志正确接收的确认消息,该消息中可以携带已正确接收的逻辑日志的标识,例如logid。本地侧装置接收到该确认消息后,可以将异地侧装置已正确接收的逻辑日志删除,以节省存储空间。
本步骤中,异地侧装置中的收发模块,向本地侧装置返回逻辑日志正确接收的确认消息。
步骤506:执行逻辑日志,更新容灾内存数据库中的数据。
本步骤中,异地侧装置中的数据同步模块,从缓存模块中读取逻辑日志并执行,用执行的结果更新容灾内存数据库中的数据。
上述步骤501~步骤506描述了异地的逻辑日志接收流程,如果从系统程序层面,可以创建容灾通信进程、数据同步进程和磁盘镜像进程。其中步骤501、步骤503、步骤504和步骤505由容灾通信进程完成;步骤506由数据同步进程完成;而将容灾数据库中的数据存储到镜像磁盘,可以由磁盘镜像完成,因此步骤502中的判断步骤可以由容灾通信进程和磁盘镜像进程共同完成,例如磁盘镜像进程设置一个握手标志位,由容灾通信进程与磁盘镜像进程握手,根据标志位来判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘。
图6为本发明实施例内存数据库远程容灾的方法中的磁盘镜像流程图,该流程主要描述在异地,如何将容灾内存数据库中的数据存储到镜像磁盘中。
步骤601:将容灾内存数据库中的数据形成镜像文件。
本步骤中,可以将容灾内存数据库中的数据分别以内存块的身份标识(ID)作为文件名,形成多个镜像文件,上述形成镜像文件,可以是预设镜像时间间隔,按照该镜像时间间隔定期将容灾内存数据库中的数据形成镜像文件,由异地侧装置中的磁盘镜像模块完成。
步骤602:将镜像文件写入镜像磁盘中。
本步骤中,还可以按照步骤601中设置的镜像时间间隔,在镜像文件形成后,由异地侧装置中的磁盘镜像模块将镜像文件写入镜像磁盘中。在将镜像文件写入镜像磁盘的过程中,将当前正常通信时的逻辑日志文件改名到旧目录下,上述旧目录是为了标识磁盘镜像的时间点而设置,即开始磁盘镜像时,就将当前正常通信时的逻辑日志文件改名到旧目录下,在后续步骤中,如果磁盘镜像成功,则将旧目录下的当前正常通信时的逻辑日志文件删除,如果磁盘镜像失败,可以将旧目录下当前正常通信时的逻辑日志文件恢复。
步骤603:镜像成功时,将镜像前的逻辑日志文件和镜像文件从镜像磁盘中删除,镜像失败时,将上一次镜像成功的镜像文件作为当前镜像文件。
本步骤中,逻辑日志在镜像磁盘中的存储位置,根据镜像正在进行与否会有所不同,这里的镜像前的逻辑日志文件,指的就是当前正常通信时的逻辑日志文件,而删除指的是将当前正常通信时的逻辑日志文件和已存储的镜像文件从镜像磁盘中删除,也可以将此从镜像磁盘中删除的文件另外备份到单独的磁盘中,而释放镜像磁盘的存储空间。当前镜像磁盘进行中的逻辑日志文件,在下一次写入逻辑日志时,将作为正常通信时的逻辑日志文件存储新写入的逻辑日志文件,当新的磁盘镜像过程又开始时,可以重新建立一个文件作为磁盘镜像进行中的逻辑日志文件,存储磁盘镜像过程中新写入的逻辑日志。
上述步骤601~步骤603描述了异地的磁盘镜像流程。从系统程序层面来看,步骤601~步骤603由创建的磁盘镜像进程完成,该磁盘镜像进程与图5所示流程中设置的磁盘镜像进程相同。
图7为本发明实施例内存数据库远程容灾的方法中的容灾内存数据库恢复流程图,主要描述了在异地,当容灾内存数据库出现故障时,如何使用镜像磁盘中存储的数据和逻辑日志恢复容灾内存数据库,使之能够及时恢复并接管业务系统,处理业务请求。图7所示流程均由异地侧装置中的磁盘镜像模块完成,该流程包括:
步骤701:将镜像磁盘中存储的容灾内存数据库数据直接恢复到容灾内存数据库中。
步骤702:根据恢复到容灾内存数据库中的数据重建索引。
步骤703:根据镜像磁盘中存储的逻辑日志,更新恢复后的容灾内存数据库中的数据。
本步骤中,当容灾内存数据库也出现故障时,可以使用镜像磁盘中存储的数据来恢复容灾内存数据库,但由于将容灾数据库中的数据存储到镜像磁盘与容灾内存数据库中的数据更新往往为异步操作,因此镜像磁盘中存储的数据可能与容灾内存数据库出现故障时数据的状态并不一致,这时就需要结合镜像磁盘中存储的逻辑日志,对由镜像磁盘恢复的数据进行更新,使这些数据与容灾内存数据库出现故障时的状态同步,从而实现将容灾内存数据库恢复到故障出现前的状态。
步骤701~步骤703描述了容灾内存数据库恢复流程,如果在系统程序层面来看,步骤701~步骤703仍由磁盘镜像进程完成,该磁盘镜像进程与图5和图6所示流程中的磁盘镜像进程相同。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1、一种内存数据库的远程容灾方法,其特征在于,在本地设置主内存数据库,在异地设置容灾内存数据库和镜像磁盘;该方法还包括:
异地接收主内存数据库执行业务操作后生成的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则,将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;
异地执行所述逻辑日志,更新容灾内存数据库中的数据,将容灾内存数据库中的数据存储到所述镜像磁盘;
主内存数据库故障时,如果容灾内存数据库正常,异地使用容灾内存数据库,如果容灾内存数据库故障,异地使用备份的数据和备份的逻辑日志恢复容灾内存数据库,再使用容灾内存数据库。
2、如权利要求1所述的方法,其特征在于,在本地建立缓存区和逻辑日志缓存磁盘;所述接收主内存数据库执行业务操作后生成的逻辑日志为:
在本地和异地间的通信正常时,接收来自所述缓存区的逻辑日志;在通信故障时,等待通信恢复后,接收来自所述逻辑日志缓存磁盘和缓存区的逻辑日志,所述逻辑日志缓存磁盘中的逻辑日志包括,本地和异地通信不正常时存储的逻辑日志,以及本地和异地通信恢复但逻辑日志缓存磁盘中的逻辑日志没有全部被接收之前,新存储的逻辑日志。
3、如权利要求1所述的方法,其特征在于,所述将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件、或者将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件之后、执行逻辑日志之前进一步包括:
异地向本地返回逻辑日志正确接收的确认消息,所述确认消息中包括已经正确接收的逻辑日志的标识,供本地删除所述标识对应的逻辑日志。
4、如权利要求1所述的方法,其特征在于,所述将容灾内存数据库中的数据存储到镜像磁盘为:将容灾内存数据库中的数据定期备份为镜像文件,并将镜像文件写入镜像磁盘。
5、如权利要求4所述的方法,其特征在于,所述将镜像文件写入镜像磁盘之后进一步包括:
如果写入成功,将镜像磁盘中当前正常通信时的逻辑日志文件,以及镜像磁盘中已存储的镜像文件删除,将所述当前磁盘镜像进行中的逻辑日志文件更改为下一次写入逻辑日志时的正常通信时的逻辑日志文件,并新建下一次写入逻辑日志时的磁盘镜像进行中的逻辑日志文件;如果写入失败,将已存储的镜像文件作为当前镜像文件。
6、如权利要求1所述的方法,其特征在于,在异地建立缓存区,所述将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件、或者将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件之后,执行逻辑日志之前进一步包括:异地将逻辑日志存储到所述缓存区。
7、如权利要求1所述的方法,其特征在于,所述使用备份的数据和备份的逻辑日志恢复容灾内存数据库为:
将镜像磁盘中的数据恢复到容灾内存数据库中;
使用所述恢复到容灾内存数据库中的数据重建索引;
使用镜像磁盘中的逻辑日志更新恢复后的容灾内存数据库中的数据。
8、一种内存数据库的远程容灾异地侧装置,其特征在于,该装置包括:
逻辑日志处理模块,用于接收来自本地侧装置的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;执行接收的逻辑日志,更新容灾内存数据库模块中的数据;
容灾内存数据库模块,用于存储数据;
磁盘镜像模块,用于将所述容灾内存数据库模块中的数据存储到镜像磁盘;在所述容灾内存数据库模块出现故障时,使用所述备份的数据和备份的逻辑日志恢复所述容灾内存数据库模块中的数据;
镜像磁盘,用于接收所述逻辑日志处理模块输出的逻辑日志存储,接收所述磁盘镜像模块输出的容灾内存数据库模块中的数据存储。
9、如权利要求8所述的装置,其特征在于,所述磁盘镜像模块包括:执行模块和标志位设置模块;
所述执行模块,用于将容灾数据库模块中的数据存储到所述镜像磁盘;在所述容灾数据库模块出现故障时,使用所述镜像磁盘中的逻辑日志和数据,恢复容灾内存数据库模块中的数据;
所述标志位设置模块,用于根据执行模块当前是否将容灾内存数据库模块中的数据存储到镜像磁盘,设置标识执行模块操作的标志位。
10、如权利要求9所述的装置,其特征在于,所述逻辑日志处理模块包括:收发模块、缓存模块、判定模块和数据同步模块;
所述收发模块,用于接收来自本地侧装置的逻辑日志,根据判定模块的判定结果输出到所述镜像磁盘,并输出到所述缓存模块;向本地侧装置返回逻辑日志正确接收的确认消息;
所述缓存模块,用于缓存来自本地侧装置的逻辑日志;
所述判定模块,用于根据磁盘镜像模块中的标志位,得出当前是否正在进行将容灾数据库模块中的数据存储到镜像磁盘的判定结果;
所述数据同步模块,用于从所述缓存模块中读出逻辑日志并执行,根据执行结果更新所述容灾内存数据库模块中存储的数据。
11、如权利要求8所述的装置,其特征在于,该装置中进一步包括心跳消息处理模块,用于接收来自本地侧装置的心跳消息,向本地侧装置返回心跳响应消息。
12、一种内存数据库远程容灾的系统,其特征在于,该系统包括:本地侧装置和异地侧装置;所述本地侧装置中包括存储数据的主内存数据库,异地侧装置中包括镜像磁盘及存储数据的容灾内存数据库;
所述本地侧装置,用于生成针对所述主内存数据库的业务操作的逻辑日志,将所述逻辑日志发送到异地侧装置;
所述异地侧装置,用于接收来自所述本地侧装置的逻辑日志,判断当前是否正在进行将容灾内存数据库中的数据存储到镜像磁盘,如果是,将逻辑日志存储到镜像磁盘中当前磁盘镜像进行中的逻辑日志文件,否则,将逻辑日志存储到镜像磁盘中当前正常通信时的逻辑日志文件;执行接收的逻辑日志,更新所述容灾内存数据库中的数据,将所述容灾内存数据库中的数据备份;在所述容灾内存数据库出现故障时,使用所述备份的数据和备份的逻辑日志恢复所述容灾内存数据库中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200710149582XA CN100562858C (zh) | 2007-09-12 | 2007-09-12 | 内存数据库远程容灾的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200710149582XA CN100562858C (zh) | 2007-09-12 | 2007-09-12 | 内存数据库远程容灾的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101118509A CN101118509A (zh) | 2008-02-06 |
CN100562858C true CN100562858C (zh) | 2009-11-25 |
Family
ID=39054637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200710149582XA Expired - Fee Related CN100562858C (zh) | 2007-09-12 | 2007-09-12 | 内存数据库远程容灾的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100562858C (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414946B (zh) * | 2008-11-21 | 2011-11-16 | 上海爱数软件有限公司 | 一种远程数据备份方法及介质服务器 |
CN102043686B (zh) * | 2009-10-20 | 2012-11-14 | 华为技术有限公司 | 一种内存数据库的容灾方法、备用服务器及系统 |
CN102141996A (zh) | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 数据访问方法和配置管理数据库系统 |
CN101826984A (zh) * | 2010-04-08 | 2010-09-08 | 中兴通讯股份有限公司 | 日志信息处理方法及装置 |
CN102142008B (zh) * | 2010-12-02 | 2013-04-17 | 华为技术有限公司 | 分布式内存数据库的实现方法、系统、令牌控制器及内存数据库 |
CN102024051B (zh) * | 2010-12-17 | 2012-12-05 | 北京世纪互联工程技术服务有限公司 | 分布式内存数据库数据更新方法 |
CN102801748A (zh) * | 2011-05-23 | 2012-11-28 | 中兴通讯股份有限公司 | 呼叫保护方法和装置 |
CN102279885A (zh) * | 2011-08-16 | 2011-12-14 | 中兴通讯股份有限公司 | 内存数据库对数据的操作方法及装置 |
CN103138912B (zh) * | 2011-12-05 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 数据同步方法及系统 |
CN102385637A (zh) * | 2011-12-22 | 2012-03-21 | 山东中创软件商用中间件股份有限公司 | 一种数据库信息的备份方法及系统 |
CN102541691B (zh) * | 2011-12-27 | 2015-01-28 | 北京人大金仓信息技术股份有限公司 | 面向内存数据库oltp应用的日志检查点恢复方法 |
US8892945B2 (en) * | 2012-04-02 | 2014-11-18 | International Business Machines Corporation | Efficient application management in a cloud with failures |
CN102708150A (zh) * | 2012-04-12 | 2012-10-03 | 华为技术有限公司 | 异步复制数据的方法、装置和系统 |
CN103914359B (zh) * | 2012-12-31 | 2017-09-26 | 中国移动通信集团浙江有限公司 | 一种数据恢复方法及装置 |
CN103929320A (zh) * | 2013-01-15 | 2014-07-16 | 中国银联股份有限公司 | 一种针对it系统灾难恢复的集成平台 |
CN104156360B (zh) * | 2013-05-13 | 2018-01-02 | 阿里巴巴集团控股有限公司 | 业务数据处理方法及系统 |
CN103226502B (zh) * | 2013-05-21 | 2015-08-19 | 中国工商银行股份有限公司 | 一种数据灾备控制系统及数据恢复方法 |
CN103345470B (zh) * | 2013-05-31 | 2016-05-25 | 深圳市沃信科技有限公司 | 一种数据库容灾方法、系统及服务器 |
CN104216802B (zh) * | 2014-09-25 | 2017-05-10 | 北京金山安全软件有限公司 | 一种内存数据库恢复方法和设备 |
CN105573859A (zh) * | 2014-10-15 | 2016-05-11 | 中兴通讯股份有限公司 | 一种数据库的数据恢复方法和设备 |
CN104993940A (zh) * | 2015-05-11 | 2015-10-21 | 广东小天才科技有限公司 | 一种减少主备节点故障切换过程中数据丢失的方法和装置 |
CN106713393B (zh) * | 2015-11-13 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 数据的写入方法及写入装置 |
CN105468475A (zh) * | 2015-11-16 | 2016-04-06 | 北京奇虎科技有限公司 | 数据库的备份方法及备份装置 |
CN105487940B (zh) * | 2015-11-18 | 2019-04-05 | 华为技术有限公司 | 灾备端、生产端及两者之间的数据恢复方法 |
CN107153649B (zh) * | 2016-03-02 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN107665219B (zh) * | 2016-07-28 | 2021-01-29 | 华为技术有限公司 | 一种日志管理方法及装置 |
CN106407039A (zh) * | 2016-08-30 | 2017-02-15 | 广州鼎甲计算机科技有限公司 | 一种Domino数据库异机恢复到指定时间点的方法 |
CN106484568A (zh) * | 2016-09-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种数据灾难备份方法及其系统 |
CN107391192B (zh) * | 2017-07-21 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种数据库服务器升级方法和装置 |
CN113806143B (zh) * | 2018-05-11 | 2024-04-26 | 创新先进技术有限公司 | 一种异地容灾方法、系统和电子设备 |
CN110162153A (zh) * | 2019-04-16 | 2019-08-23 | 上海马小修智能科技有限公司 | 一种数据容灾切换系统 |
CN113626475A (zh) * | 2020-05-07 | 2021-11-09 | 青岛奥利普自动化控制系统有限公司 | 一种基于缓存服务器的数据恢复方法和系统 |
CN112506702B (zh) * | 2020-12-03 | 2024-02-23 | 平安科技(深圳)有限公司 | 数据中心容灾方法、装置、设备及存储介质 |
CN113434525B (zh) * | 2021-06-24 | 2023-06-09 | 青岛海尔科技有限公司 | 缓存数据的更新方法和装置、存储介质及电子装置 |
CN116069792A (zh) * | 2022-12-06 | 2023-05-05 | 北京奥星贝斯科技有限公司 | 一种数据库容灾系统、方法、装置、存储介质及电子设备 |
-
2007
- 2007-09-12 CN CNB200710149582XA patent/CN100562858C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101118509A (zh) | 2008-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100562858C (zh) | 内存数据库远程容灾的方法、装置和系统 | |
US9501542B1 (en) | Methods and apparatus for volume synchronization | |
US7225307B2 (en) | Apparatus, system, and method for synchronizing an asynchronous mirror volume using a synchronous mirror volume | |
US7197615B2 (en) | Remote copy system maintaining consistency | |
US7350043B2 (en) | Continuous data protection of block-level volumes | |
US8060714B1 (en) | Initializing volumes in a replication system | |
US7840536B1 (en) | Methods and apparatus for dynamic journal expansion | |
US8108634B1 (en) | Replicating a thin logical unit | |
US8335761B1 (en) | Replicating in a multi-copy environment | |
US8438135B1 (en) | Mirroring metadata in a continuous data protection environment | |
JP4813924B2 (ja) | データベース管理システム、ストレージ装置、ディザスタリカバリシステム及びデータベースのバックアップ方法 | |
US7860836B1 (en) | Method and apparatus to recover data in a continuous data protection environment using a journal | |
JP4668763B2 (ja) | ストレージ装置のリストア方法及びストレージ装置 | |
US8521694B1 (en) | Leveraging array snapshots for immediate continuous data protection | |
US7516287B2 (en) | Methods and apparatus for optimal journaling for continuous data replication | |
US5682513A (en) | Cache queue entry linking for DASD record updates | |
US6701455B1 (en) | Remote copy system with data integrity | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US20050071393A1 (en) | Data storage subsystem | |
US8099398B2 (en) | Method for managing a database system | |
US20010049749A1 (en) | Method and system for storing duplicate data | |
US20110238625A1 (en) | Information processing system and method of acquiring backup in an information processing system | |
CN100454265C (zh) | 镜像恢复方法、存储设备及网络系统 | |
CN107357680A (zh) | 数据处理设备和数据处理的方法 | |
CN104182182B (zh) | 智能终端及智能终端的数据备份方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |