CN102841895B - 一种处理数据库状态转移的方法和系统 - Google Patents
一种处理数据库状态转移的方法和系统 Download PDFInfo
- Publication number
- CN102841895B CN102841895B CN201110169312.1A CN201110169312A CN102841895B CN 102841895 B CN102841895 B CN 102841895B CN 201110169312 A CN201110169312 A CN 201110169312A CN 102841895 B CN102841895 B CN 102841895B
- Authority
- CN
- China
- Prior art keywords
- server
- database
- master
- data storehouse
- state
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种处理数据库状态转移的方法和系统。本申请的方法包括:对主备数据库服务器的状态转移进行统一检测;如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。本申请还公开了一种处理数据库状态转移的系统,该系统包括:主备状态检测单元和主备状态转移通知单元。通过本申请,在一定程度上避免了各应用层离散地进行各自的检测和切换操作所导致的数据库及其周边系统状态不一致,提供数据库高可用性的同时,保证了数据库系统状态的一致性。
Description
技术领域
本申请涉及数据库领域,特别涉及一种处理数据库状态转移的方法和系统。
背景技术
随着数据库技术和计算机网络技术的不断进步,越来越多企业的信息系统使用数据库作为存储和管理数据的工具。企业依赖于数据库系统运行其关键业务应用,几小时甚至是几分钟的数据库服务中断都是不允许的,因此在这些应用中保证数据库的高可用性至关重要。高可用性(HA,High Availability)是指,通过尽量缩短因计划中的日常维护操作或计划外的突发系统故障所导致的服务中断时间,向用户提供持续不间断的服务。
数据库系统使用计算机网络将地理位置分散而逻辑上集中的数据连接起来,可以通过在不同物理位置提供冗余数据的方式提供数据库系统的高可用性。虽然在不同物理位置提供冗余数据,但通常只由一台数据库服务器即主数据库服务器对外提供服务,一台或多台数据库服务器作为备份服务器,当主数据库服务器计划停机或出现故障不能提供数据服务时,一台备份服务器接管主数据库服务器的工作,使数据库用户能持续使用数据,实现了数据库系统的高可用性。
上述主备数据库服务器转移是由数据库系统本身提供的机制来完成的,这种机制仅限于数据库系统内部。用户通常感觉不到主备数据库服务器状态的变化是因为在用户和数据库之间针对不同的用户需求存在不同的应用层,这些应用层在主备数据库服务器发生状态转移后采取了与主备数据库服务器状态对应的切换操作,使得从用户的角度感觉不到计划内操作引起的或计划外故障发生导致的主备数据库服务器状态转移。
然而,通常不同的应用层使用自己的检测逻辑检测数据库的主备数据库服务器状态转移,当检测到发生主备数据库服务器状态转移后,各应用层根据检测的结果执行相应的切换操作。由于检测的时间和检测的间隔各不相同,这就可能导致在主备数据库服务器发生状态转移后的一段时间内,各应用层以不同的数据库服务器为当前的主数据库服务器。进一步,当进行数据库写操作时,将导致数据不一致。可见,简单地采用冗余方式提供数据库高可用性的同时,可能带来数据库状态不一致的问题。
发明内容
有鉴于此,本申请提供一种处理数据库状态转移的方法和系统,针对数据库应用层提供统一的状态转移方案,从而在一定程度上避免当数据库系统主备数据库服务器发生状态转移时各应用层离散的切换操作所导致的数据库及其周边系统的状态不一致。
本申请提供了一种处理数据库状态转移的方法,包括步骤:
对主备数据库服务器的状态转移进行统一检测;
如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
优选地,所述对主备数据库服务器的状态转移进行统一检测包括:根据预置的时间间隔探测主备数据库服务器的状态转移。
优选地,所述对主备数据库服务器的状态转移进行统一检测,具体包括:根据数据库策略,向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。
优选地,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括:
向上一检测时刻获知的主数据库服务器发送操作请求;
如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移,并向其他数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器。
优选地,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括:
向系统中所有的数据库服务器发送操作请求;
根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;
如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
优选地,所述对主备数据库服务器的状态转移进行统一检测,具体包括:
通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
优选地,所述如果检测到主备数据库服务器发生状态转移,通知数据库应用层,具体包括:使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。
优选地,所述对主备数据库服务器的状态转移进行统一检测包括:
对计划中的主备数据库服务器转移操作进行统一检测;或
对非计划系统故障导致的主备数据库服务器转移进行统一检测。
优选地,还包括:
接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息;
所述通知数据库应用层,具体包括:
读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层。
优选地,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。
本申请提供一种处理数据库状态转移的系统,包括:
主备状态转移检测单元,用于对主备数据库服务器的状态转移进行统一检测;
主备状态转移通知单元,用于当检测到主备数据库服务器发生状态转移后,通知数据库的应用层,以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
优选地,所述主备状态转移检测单元,具体用于根据预置的时间间隔探测主备数据库服务器的状态转移。
优选地,所述主备状态转移检测单元,进一步包括:
操作请求发送子单元,用于根据数据库策略,向数据库服务器发送操作请求;
主备状态转移判断子单元,用于根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。
优选地,所述操作请求发送子单元,具体用于向上一检测时刻获知的主数据库服务器发送操作请求;
所述主备状态转移判断子单元,具体用于如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移;并触发所述操作请求发送子单元向其它数据库服务器发送操作请求,以便根据当前的主数据库服务器返回的正确的执行结果,确定当前的主数据库服务器。
优选地,所述操作请求发送子单元,具体用于向系统中所有的数据库服务器发送操作请求;
所述主备状态转移判断子单元,具体用于根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
优选地,所述主备状态转移检测单元,进一步包括:
配置文件读取子单元,用于通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
优选地,所述主备状态转移通知单元,具体用于使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。
优选地,所述主备状态转移检测单元,具体用于对计划中的主备数据库服务器转移操作进行统一检测;或
对非计划系统故障导致的主备数据库服务器转移进行统一检测。
优选地,进一步包括:应用层注册单元,用于接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息;
所述主备状态转移通知单元,具体用于当主备状态转移通知单元检测到主备数据库服务器发生状态转移后,读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层,以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
优选地,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
本申请实施例中,引入了对主备数据库服务器状态转换的统一处理,即对主备数据库服务器的状态转移进行统一检测,当发现发生状态转移时,通知数据库的各应用层,从而保证了各应用层能够在同一时间获得统一的关于主备数据库服务器状态转换的通知,并根据该通知消息执行各应用层相应的切换方案。采用统一检测和通知的方法在一定程度上避免了各应用层离散地进行各自的检测和转换操作所导致的数据库状态不一致,提供数据库高可用性的同时,保证了数据库状态的一致性。另外,虽然各个应用层对状态转移的具体切换操作是不同的,但对于检测主备数据库服务器状态转移的过程却是相同的,针对数据库应用层采用统一的检测和通知逻辑,有助于通用性的实现,降低了数据库与其应用层之间的复杂性。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
图1为本申请的方法流程图;
图2为本申请第一实施例系统结构示意图;
图3为本申请的系统结构图。
具体实施方式
为了使本申请的上述目的、特征、和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参考图1所示,该图为本申请的方法流程图,包括以下步骤:
S101:对主备数据库服务器的状态转移进行统一检测;
S102:如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
在本申请实施中,通过统一的对主备数据库服务器的状态转移检测和通知,使得数据库不同的应用层能够在同一时间范围内得到统一的关于主备数据库服务器的状态转移信息,进而启动各自相应的切换操作,从而保证各应用层连接的数据库服务器是当前主数据库服务器,在一定程度上避免了现有技术中可能出现的不同应用层连接到不同数据库服务器,进而导致对不同数据源的数据进行更新等操作而引起的数据库及其周边系统的状态不一致。
参考图2所示,该图为本申请实施例所述的数据库的状态转移系统组成示意图。该系统中,数据库系统当前有主备数据库服务器,并且由主数据库服务器对外提供数据库服务,使用该数据库的应用层有n个,各应用层在数据库发生主备数据库服务器状态转移时需要执行不同的与主备数据库服务器状态对应的切换操作。
在实际应用中,数据库系统可能发生主备数据库服务器状态转移的原因可能是有计划的对数据库服务器进行维护操作,例如定时轮流对当前主数据库服务器进行重启,或发现当主数据库服务器存在潜在的硬件或软件故障,虽然该故障还没有发生但可以有计划地提前关闭该数据库服务器进行故障排除。另外,也可能是主数据库服务器在运行中出现了突发的硬件或软件故障,即非计划中的数据服务中断。无论上述那种原因,都将会导致主备数据库服务器之间的状态转移,即原备份数据库服务器将接替原主数据库服务器成为当前主数据库服务器,并继续对外提供数据服务器。本申请实施例就是要对上述各种情况下的主备数据库服务器的状态转移事件进行统一处理,以便数据库应用层及时执行与主备数据库服务器状态对应的切换操作。
S101)对主备数据库服务器转移的状态进行统一检测。
为避免各应用层对数据库离散地进行各自的检测和转换操作所导致的数据不一致,本申请实施例引入了对主备数据库服务器状态转移的统一检测。
统一检测是否发生主备数据库服务器转换可以采取定时检测的方法,即根据预置的时间间隔探测是否发生主备数据库服务器状态转换。具体在探测是否发生主备数据库服务器状态转移时,可以通过多种方式实现。在其中一种实施方式下,由于数据库系统策略规定主备数据库服务器提供的数据服务不同,即利用主备数据库服务器对同一操作请求的不同处理结果来获得某一检测时刻的主数据库服务器,通过比较上一检测时间获得的主数据库服务器得到主备数据库状态转移的检测结果。
当检测到主数据库服务器发送状态转移时,对于如何获知哪一台数据库服务器为当前的主数据库服务器,有不同的实现方法。通常在数据库服务器进行主备状态转移时,数据库系统根据特定的选举算法从备份数据库服务器中选举当前的主数据库服务器。因此,一种实现方法是当检测到主数据库服务器发送状态转移时,使用该数据库系统特定的选举算法计算出当前的主数据库服务器。这种实现方法的前提是已知数据库系统的特定选举算法,并且当该选举算法发生改变时,也要进行对应的调整以计算出当前的主数据库服务器。另一种实现方法是在未知该特定算法的情况下,使用与检测主数据库服务器状态转移类似的方法获知当前主数据库服务器。第二种方法独立于数据库系统的选举算法,不需要已知数据库系统的特定选举算法,并且当数据库系统的选举算法发生改变时,不需要进行对应的调整依然能检测出当前的主数据库服务器。
根据上述第二种方法,具体可以采用以下实现方式:
向系统中所有的数据库服务器发送操作请求;由于不同的数据库服务器对所述操作请求的不同处理结果,只有主数据库服务器返回正确的执行结果,由此可以确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
另一种实现方法是:向上一检测时刻获知的主数据库服务器发送操作请求;如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则该数据库当前已经不再能提供主数据库服务,因此判定已发生主备数据库服务器的状态转移;向其它数据库服务器发送操作请求,由于只有当前的主数据库服务器能够执行该数据操作,因此通过主数据库服务器返回的正确的处理结果确定当前的主数据库服务器。
第二种方法避免了第一种方法中每次检查都向系统中所有的数据库服务器发送操作请求,而是向上一检测时刻获知的主数据库服务器发送操作请求。虽然在第二种方法中当未能接收到上一检测时刻获知的主数据库服务器针的正确的处理结果时,也向其它数据库服务器发送操作请求,但由于发生主备状态转移的频率相对于检查频率来说是小很多的。因此,第二种方法一定程度上节省了系统资源和网络带宽。
在本实施例中,数据库系统的策略规定只有主数据库提供数据的更新或写入操作服务,备份数据库仅提供只读操作服务,因此可以使用以下步骤探测是否发生主备数据库服务器状态转换:
初始状态下,在某一检测时刻,向所有主备数据库服务器各发送一条数据库的更新操作请求,主数据库服务器返回正确的处理结果,得到当前主数据库服务器的标识信息。该标识信息可以是位置信息如IP地址,也可以是该数据库服务器的身份信息如主机名。
等待设定的时间间隔后,向上一检测时刻获知的主数据库服务器发送一条数据库的更新操作请求,若该主数据库服务器仍然返回正确的处理结果,则判定未发生主备数据库状态转移;若该主数据库服务器返回处理结果异常,则判定已发生主备数据库服务器状态转移,并则向系统中的备份数据库服务器发送数据库更新操作请求,由于该备份数据库服务器已经成为当前的主数据库服务器向外提供数据服务,因此接收到该数据库服务器返回的正确的处理结果,即确定当前的主数据库服务器。检测结果包含主备数据库服务器发生状态转移和当前的主数据库服务器的标识信息。
上述检测方法中发送“更新操作请求”,对不同的数据库策略存在不同的替代方案,例如,若数据库的策略为主数据库服务器提供所有的数据服务包括读、写入和更新数据服务,而备份数据库服务器不提供任何数据服务,针对这样的数据库,可发送读数据操作请求进行检测,因为只有主数据库服务器才会返回正确的执行结果,而备份数据库服务器不会返回正确的执行结果,由此也可以获知主备数据库服务器的工作状态。
除了采用上述方式进行检测以外,还可以采用其他的方式来实现。例如,由于数据库系统具有配置文件,该配置文件会随着数据库服务器的主备数据库服务器的状态转移实时更新,也即,配置文件中记录了当前哪个数据库服务器为主状态,并且记录有该数据库服务器的标识信息。因此,在需要检测主数据库服务器状态时,可以首先通过读取该配置文件的方式,获知当前的主数据库服务器,并与上一检测时刻的读取结果进行比较,以获知是否发生状态转移。
S102如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
一旦检测到主备数据库服务器发生状态转移,可以立即将数据库发生状态转移的消息通知给使用数据库的各应用层,使得数据库的应用层能够尽可能在同一时间获得关于数据库状态的通知消息。该通知消息里包含数据库发生了主备数据库服务器转移,并且包含了当前主数据库服务器的标识信息。由于数据库系统中主备数据库服务器和各个应用层可能分布在不同的物理位置,它们之间通过网络连接,所以存在时延,但是由于传播时延在数量级上远小于探测时间间隔,因此可以忽略这种正常网络时延带来的影响。
为更加迅速地通知数据库应用层,可采用预先注册的方法,即数据库应用层在启动时或者启动后的特定时间内进行注册,注册的信息包括应用层所在的连接建立相关信息,这些信息可以是应用层名称以及位置信息如应用层所在主机IP地址。以便当检测到主备数据库服务器发生状态转移后,根据注册表内所包括的注册信息将所述通知发送给已注册的应用层。
通知应用层可以采用推模式,例如采用Zookeeper的Watch机制来实现,即当检测到主备数据库服务器状态转移的事件后,将包含已发生了主备数据库服务器转移和当前主数据库服务器标识信息的通知消息推送给各个应用层。当然,在实际应用中,除了这种推模式以外,也可以采用其他方式来实现,这里不再一一列举。
数据库的应用层接收到主备数据库服务器转移的通知后执行与现有技术类似的相应的状态切换操作。例如,根据数据库的主备数据库服务器状态调整数据源对象,具体包括:断开与原主数据库服务器的连接,并与转移后的主数据库服务器建立连接,从而通过新建立的连接,实现使用转移后的主数据库服务器提供的数据服务。
由于数据库各应用层需要执行的与主备数据库服务器状态对应的切换操作各有所不同,因此,将执行各自切换操作的功能依然保留在每个应用层内部实现,使得各个应用层能够利用统一的通知消息完成各自的切换操作,保证了操作的正确性。
根据具体应用需要,在主备数据库服务器发生状态转移之后,为获得下一轮数据库状态的检测消息,可能需要调整检测操作,如转变探测的目标节点,由检测原主数据库服务器变更为检测当前的主数据库服务器,以便在等待设定的时间间隔后向当前主数据库服务器发送用于检测的数据库操作。所述调整操作的执行可以在检测到数据库主备数据库服务器发生转移后立即执行,也可以在向应用层发出通知后立即执行。
本申请所述的处理数据库状态转移方法可应用于分布式数据库。在分布式数据库中部署有数据库集群,该数据库集群拥有一个主数据库服务器对外提供数据服务以及至少一个备份数据库服务器。当主备数据库服务器发生状态转移时,可通过本申请所诉的处理数据库状态转移方法实现数据库应用层与主备数据库服务器状态对应的切换操作。
参考图3所示,该图为本申请第一实施例所述处理数据库状态转移的方法对应的系统结构图,该系统包括主备状态转移检测单元301和主备状态转移通知单元302。
主备状态转移检测单元用于对主备数据库服务器的状态转移进行统一检测。主备数据库服务器的状态转移可能是对计划中的主备数据库服务器转移操作进行统一检测或对非计划系统故障导致的主备数据库服务器转移进行统一检测。
为尽可能避免各应用层单独对主备数据库服务器的状态转移检测,从而导致在不同的时间获得状态转移的检测结果,该检测操作由本申请实施例所引入的主备状态检测单元统一完成。具体检测是否发生主备数据库服务器转换可以采取不同的方式,主备状态转移检测单元可用于根据预置的时间间隔探测主备数据库服务器的状态转移。
主备状态转移检测单元,进一步可包括操作请求发送子单元和主备状态转移判断子单元。操作请求发送子单元,用于根据数据库策略,向数据库服务器发送操作请求。主备状态转移判断子单元,用于根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。
在具体实现时,一种方法是:操作请求发送子单元,向上一检测时刻获知的主数据库服务器发送操作请求;主备状态转移判断子单元如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移;并触发所述操作请求发送子单元向其它数据库服务器发送操作请求,以便根据当前的主数据库服务器返回的正确的执行结果,确定当前的主数据库服务器。
另一种方法是:操作请求发送子单元,具体向系统中所有的数据库服务器发送操作请求;主备状态转移判断子单元根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
在数据库系统具有记录了当前主数据库服务器及其标识信息的配置文件时,主备状态转移检测单元,进一步包括配置文件读取单元,用于通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,主备状态转移检测单元根据当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
当检测到发生主备数据库服务器状态转移后,为更加迅速地通知数据库应用层,可进一步增加应用层注册单元,用于接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息。当主备状态转移通知单元检测到发生主备数据库服务器转移,读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层,以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
在检测到发生了主备数据库服务器状态转移后,主备状态转移通知单元将数据库发生状态转移的消息统一通知给使用数据库的各个应用层,使得数据库的应用层能够尽可能在同一时间获得关于数据库状态的通知消息。该通知消息里包含数据库已发生主备数据库服务器状态转移,并且包含了当前主数据库服务器的标识信息,因此数据库应用层能够执行与主备数据库服务器状态对应的切换操作。主备状态转移通知单元,可以使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。
在具体实现时,可以将上述各单元作为一种单独的检测通知服务或应用程序,运行在独立的服务器上,同时,可以在各应用层分别部署监听模块。检测通知服务或应用程序通过网络与数据库、应用层监听模块连接,并在检测到主备数据库服务器状态转移消息时,统一通知给应用层监听模块以便应用层启动与主备数据库服务器状态对应的切换操作。
本实施例所描述的处理数据库状态转移的系统,可用于分布式数据库系统中,主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种处理数据库状态转移的方法,其特征在于,包括步骤:
对主备数据库服务器的状态转移进行统一检测;
如果检测到主备数据库服务器发生状态转移,通知各个数据库应用层以便所述各个数据库应用层在同一时间范围内接收到通知消息后执行与主备数据库服务器状态对应的切换操作,所述通知消息包括已发生主备数据库服务器状态转移和当前主数据库服务器的标识信息。
2.根据权利要求1所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测包括:根据预置的时间间隔探测主备数据库服务器的状态转移。
3.根据权利要求1或2所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测,具体包括:根据数据库策略,向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。
4.根据权利要求3所述的处理数据库状态转移的方法,其特征在于,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括:
向上一检测时刻获知的主数据库服务器发送操作请求;
如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移,并向其他数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器。
5.根据权利要求3所述的处理数据库状态转移的方法,其特征在于,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括:
向系统中所有的数据库服务器发送操作请求;
根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;
如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
6.根据权利要求1或2所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测,具体包括:
通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
7.根据权利要求1所述的处理数据库状态转移的方法,其特征在于,所述如果检测到主备数据库服务器发生状态转移,通知数据库应用层,具体包括:使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。
8.根据权利要求1所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测包括:
对计划中的主备数据库服务器转移操作进行统一检测;或
对非计划系统故障导致的主备数据库服务器转移进行统一检测。
9.根据权利要求1所述的处理数据库状态转移的方法,其特征在于,还包括:
接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息;
所述通知数据库应用层,具体包括:
读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层。
10.根据权利要求1、2、7-9任一项所述的处理数据库状态转移的方法,其特征在于,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。
11.一种处理数据库状态转移的系统,其特征在于,包括:
主备状态转移检测单元,用于对主备数据库服务器的状态转移进行统一检测;
主备状态转移通知单元,用于当检测到主备数据库服务器发生状态转移后,通知各个数据库的应用层,以便所述各个数据库应用层在同一时间范围内接收到通知消息后执行与主备数据库服务器状态对应的切换操作,所述通知消息包括已发生主备数据库服务器状态转移和当前主数据库服务器的标识信息。
12.根据权利要求11所述的处理数据库状态转移的系统,其特征在于,所述主备状态转移检测单元,具体用于根据预置的时间间隔探测主备数据库服务器的状态转移。
13.根据权利要求11或12所述的处理数据库状态转移的系统,其特征在于,所述主备状态转移检测单元,进一步包括:
操作请求发送子单元,用于根据数据库策略,向数据库服务器发送操作请求;
主备状态转移判断子单元,用于根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。
14.根据权利要求13所述的处理数据库状态转移的系统,其特征在于,
所述操作请求发送子单元,具体用于向上一检测时刻获知的主数据库服务器发送操作请求;
所述主备状态转移判断子单元,具体用于如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移;并触发所述操作请求发送子单元向其它数据库服务器发送操作请求,以便根据当前的主数据库服务器返回的正确的执行结果,确定当前的主数据库服务器。
15.根据权利要求13所述的处理数据库状态转移的系统,其特征在于,
所述操作请求发送子单元,具体用于向系统中所有的数据库服务器发送操作请求;
所述主备状态转移判断子单元,具体用于根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
16.根据权利要求11或12所述的处理数据库状态转移的系统,其特征在于,所述主备状态转移检测单元,进一步包括:
配置文件读取子单元,用于通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。
17.根据权利要求11所述的处理数据库状态转移的系统,其特征在于,所述主备状态转移通知单元,具体用于使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。
18.根据权利要求11所述的处理数据库状态转移的系统,其特征在于,所述主备状态转移检测单元,具体用于对计划中的主备数据库服务器转移操作进行统一检测;或
对非计划系统故障导致的主备数据库服务器转移进行统一检测。
19.根据权利要求11所述的处理数据库状态转移的系统,其特征在于,进一步包括:应用层注册单元,用于接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息;
所述主备状态转移通知单元,具体用于当主备状态转移通知单元检测到主备数据库服务器发生状态转移后,读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层,以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。
20.根据权利要求11、12、17-19任一项所述的处理数据库状态转移的系统,其特征在于,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110169312.1A CN102841895B (zh) | 2011-06-22 | 2011-06-22 | 一种处理数据库状态转移的方法和系统 |
HK13102905.5A HK1175563A1 (zh) | 2011-06-22 | 2013-03-08 | 種處理數據庫狀態轉移的方法和系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110169312.1A CN102841895B (zh) | 2011-06-22 | 2011-06-22 | 一种处理数据库状态转移的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841895A CN102841895A (zh) | 2012-12-26 |
CN102841895B true CN102841895B (zh) | 2015-06-24 |
Family
ID=47369268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110169312.1A Active CN102841895B (zh) | 2011-06-22 | 2011-06-22 | 一种处理数据库状态转移的方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102841895B (zh) |
HK (1) | HK1175563A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678561B (zh) * | 2013-12-06 | 2017-02-15 | 华为技术有限公司 | 桶状态处理方法与装置 |
CN107124734B (zh) * | 2016-02-25 | 2019-11-22 | 普天信息技术有限公司 | 一种基站获取核心网主备状态的方法 |
CN108038163B (zh) * | 2017-12-06 | 2020-07-31 | 交控科技股份有限公司 | 主备控制中心数据库同步系统 |
CN108959548B (zh) * | 2018-07-02 | 2023-04-18 | 创新先进技术有限公司 | 业务请求的处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848989A (zh) * | 2005-04-04 | 2006-10-18 | 中兴通讯股份有限公司 | 一种归属位置寄存器中数据库自动切换系统及其方法 |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN101207512A (zh) * | 2006-12-22 | 2008-06-25 | 中兴通讯股份有限公司 | 一种数据库系统冗灾备份和切换方法 |
CN101340272A (zh) * | 2008-08-25 | 2009-01-07 | 中兴通讯股份有限公司 | 一种双机切换方法及系统 |
CN101572709A (zh) * | 2009-06-01 | 2009-11-04 | 杭州华三通信技术有限公司 | 套接字连接的切换方法、系统、服务器和客户端设备 |
CN101876924A (zh) * | 2009-04-30 | 2010-11-03 | 升东网络科技发展(上海)有限公司 | 数据库故障自动检测及转移方法 |
-
2011
- 2011-06-22 CN CN201110169312.1A patent/CN102841895B/zh active Active
-
2013
- 2013-03-08 HK HK13102905.5A patent/HK1175563A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848989A (zh) * | 2005-04-04 | 2006-10-18 | 中兴通讯股份有限公司 | 一种归属位置寄存器中数据库自动切换系统及其方法 |
CN101207512A (zh) * | 2006-12-22 | 2008-06-25 | 中兴通讯股份有限公司 | 一种数据库系统冗灾备份和切换方法 |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN101340272A (zh) * | 2008-08-25 | 2009-01-07 | 中兴通讯股份有限公司 | 一种双机切换方法及系统 |
CN101876924A (zh) * | 2009-04-30 | 2010-11-03 | 升东网络科技发展(上海)有限公司 | 数据库故障自动检测及转移方法 |
CN101572709A (zh) * | 2009-06-01 | 2009-11-04 | 杭州华三通信技术有限公司 | 套接字连接的切换方法、系统、服务器和客户端设备 |
Also Published As
Publication number | Publication date |
---|---|
HK1175563A1 (zh) | 2013-07-05 |
CN102841895A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3210367B1 (en) | System and method for disaster recovery of cloud applications | |
CN101876924B (zh) | 数据库故障自动检测及转移方法 | |
WO2018171565A1 (zh) | 容灾部署方法、装置及系统 | |
CN101989922B (zh) | 用于恢复会话初始协议事务的方法和系统 | |
TWI677797B (zh) | 主備資料庫的管理方法、系統及其設備 | |
WO2016202051A1 (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
CN101751415B (zh) | 元数据服务系统、元数据同步方法与写服务器更新方法 | |
CN102841895B (zh) | 一种处理数据库状态转移的方法和系统 | |
US10104130B2 (en) | System and method for ensuring high availability in an enterprise IMS network | |
CN103795553A (zh) | 基于监控的主、备服务器切换 | |
CN111427728A (zh) | 状态管理方法、主备切换方法及电子设备 | |
CN103036719A (zh) | 一种基于主备集群服务器的跨地区服务容灾方法及装置 | |
CN115510156A (zh) | 一种云原生高可用数据库服务提供系统及方法 | |
CN109189854B (zh) | 提供持续业务的方法及节点设备 | |
US8775617B2 (en) | Method for optimizing network performance after a temporary loss of connection | |
WO2012171346A1 (zh) | 电话号码映射域名解析系统(enum-dns)及其容灾方法 | |
KR101430570B1 (ko) | 분산 컴퓨팅 시스템 및 상기 분산 컴퓨팅 시스템에서의 장애 복구 방법 | |
CN104794026A (zh) | 一种集群实例多数据源绑定的故障转移方法 | |
CN107291575B (zh) | 一种数据中心故障时的处理方法和设备 | |
JP2011141675A (ja) | 計算機及び計算機管理方法並びに計算機管理プログラム | |
CN103780433B (zh) | 自愈式虚拟资源配置管理数据架构 | |
CN114390059B (zh) | 一种业务处理系统及业务处理方法 | |
JP2010231257A (ja) | 高可用性システム、高可用性システムの対障害対策方法 | |
JP2013025765A (ja) | マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム | |
CN100563233C (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1175563 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1175563 Country of ref document: HK |