一种处理数据库状态转移的方法和系统技术方案

技术编号:8131082 阅读:153 留言:0更新日期:2012-12-27 03:16
本申请公开了一种处理数据库状态转移的方法和系统。本申请的方法包括:对主备数据库服务器的状态转移进行统一检测;如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。本申请还公开了一种处理数据库状态转移的系统,该系统包括:主备状态检测单元和主备状态转移通知单元。通过本申请,在一定程度上避免了各应用层离散地进行各自的检测和切换操作所导致的数据库及其周边系统状态不一致,提供数据库高可用性的同时,保证了数据库系统状态的一致性。

【技术实现步骤摘要】

本申请涉及数据库领域,特别涉及一种处理数据库状态转移的方法和系统
技术介绍
随着数据库技术和计算机网络技术的不断进步,越来越多企业的信息系统使用数据库作为存储和管理数据的工具。企业依赖于数据库系统运行其关键业务应用,几小时甚至是几分钟的数据库服务中断都是不允许的,因此在这些应用中保证数据库的高可用性至关重要。高可用性(HA,High Availability)是指,通过尽量缩短因计划中的日常维护操作或计划外的突发系统故障所导致的服务中断时间,向用户提供持续不间断的服务。数据库系统使用计算机网络将地理位置分散而逻辑上集中的数据连接起来,可以 通过在不同物理位置提供冗余数据的方式提供数据库系统的高可用性。虽然在不同物理位置提供冗余数据,但通常只由一台数据库服务器即主数据库服务器对外提供服务,一台或多台数据库服务器作为备份服务器,当主数据库服务器计划停机或出现故障不能提供数据服务时,一台备份服务器接管主数据库服务器的工作,使数据库用户能持续使用数据,实现了数据库系统的高可用性。上述主备数据库服务器转移是由数据库系统本身提供的机制来完成的,这种机制仅限于数据库系统内部。用户通常感觉不到主备数据库服务器状态的变化是因为在用户和数据库之间针对不同的用户需求存在不同的应用层,这些应用层在主备数据库服务器发生状态转移后采取了与主备数据库服务器状态对应的切换操作,使得从用户的角度感觉不到计划内操作引起的或计划外故障发生导致的主备数据库服务器状态转移。然而,通常不同的应用层使用自己的检测逻辑检测数据库的主备数据库服务器状态转移,当检测到发生主备数据库服务器状态转移后,各应用层根据检测的结果执行相应的切换操作。由于检测的时间和检测的间隔各不相同,这就可能导致在主备数据库服务器发生状态转移后的一段时间内,各应用层以不同的数据库服务器为当前的主数据库服务器。进一步,当进行数据库写操作时,将导致数据不一致。可见,简单地采用冗余方式提供数据库高可用性的同时,可能带来数据库状态不一致的问题。
技术实现思路
有鉴于此,本申请提供一种处理数据库状态转移的方法和系统,针对数据库应用层提供统一的状态转移方案,从而在一定程度上避免当数据库系统主备数据库服务器发生状态转移时各应用层离散的切换操作所导致的数据库及其周边系统的状态不一致。本申请提供了一种处理数据库状态转移的方法,包括步骤对主备数据库服务器的状态转移进行统一检测;如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。优选地,所述对主备数据库服务器的状态转移进行统一检测包括根据预置的时间间隔探测主备数据库服务器的状态转移。优选地,所述对主备数据库服务器的状态转移进行统一检测,具体包括根据数据库策略,向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。优选地,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括向上一检测时刻获知的主数据库服务器发送操作请求;如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移,并向其他数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服 务器。优选地,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括向系统中所有的数据库服务器发送操作请求;根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。优选地,所述对主备数据库服务器的状态转移进行统一检测,具体包括通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。优选地,所述如果检测到主备数据库服务器发生状态转移,通知数据库应用层,具体包括使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。优选地,所述对主备数据库服务器的状态转移进行统一检测包括对计划中的主备数据库服务器转移操作进行统一检测;或对非计划系统故障导致的主备数据库服务器转移进行统一检测。优选地,还包括接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息;所述通知数据库应用层,具体包括读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层。优选地,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。本申请提供一种处理数据库状态转移的系统,包括主备状态转移检测单元,用于对主备数据库服务器的状态转移进行统一检测;主备状态转移通知单元,用于当检测到主备数据库服务器发生状态转移后,通知数据库的应用层,以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。优选地,所述主备状态转移检测单元,具体用于根据预置的时间间隔探测主备数据库服务器的状态转移。优选地,所述主备状态转移检测单元,进一步包括操作请求发送子单元,用于根据数据库策略,向数据库服务器发送操作请求;主备状态转移判断子单元,用于根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。 优选地,所述操作请求发送子单元,具体用于向上一检测时刻获知的主数据库服务器发送操作请求;所述主备状态转移判断子单元,具体用于如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移;并触发所述操作请求发送子单元向其它数据库服务器发送操作请求,以便根据当前的主数据库服务器返回的正确的执行结果,确定当前的主数据库服务器。优选地,所述操作请求发送子单元,具体用于向系统中所有的数据库服务器发送操作请求;所述主备状态转移判断子单元,具体用于根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器;如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。优选地,所述主备状态转移检测单元,进一步包括配置文件读取子单元,用于通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。优选地,所述主备状态转移通知单元,具体用于使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。优选地,所述主备状态转移检测单元,具体用于对计划中的主备数据库服务器转移操作进行统一检测;或对非计划系统故障导致的主本文档来自技高网
...

【技术保护点】
一种处理数据库状态转移的方法,其特征在于,包括步骤:对主备数据库服务器的状态转移进行统一检测;如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。

【技术特征摘要】
1.一种处理数据库状态转移的方法,其特征在于,包括步骤 对主备数据库服务器的状态转移进行统一检测; 如果检测到主备数据库服务器发生状态转移,通知数据库应用层以便所述数据库应用层接收到该通知后执行与主备数据库服务器状态对应的切换操作。2.根据权利要求I所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测包括根据预置的时间间隔探测主备数据库服务器的状态转移。3.根据权利要求I或2所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测,具体包括根据数据库策略,向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器。4.根据权利要求3所述的处理数据库状态转移的方法,其特征在于,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括 向上一检测时刻获知的主数据库服务器发送操作请求; 如果未能接收到所述上一检测时刻获知的主数据库服务器针对所述操作请求的正确的处理结果,则判定发生主备数据库服务器的状态转移,并向其他数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器。5.根据权利要求3所述的处理数据库状态转移的方法,其特征在于,所述向数据库服务器发送操作请求,根据各数据库服务器对所述操作请求的不同处理结果来判定发生主备数据库服务器的状态转移,并确定转移后的主数据库服务器包括 向系统中所有的数据库服务器发送操作请求; 根据各数据库服务器对所述操作请求的不同处理结果,确定当前的主数据库服务器; 如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。6.根据权利要求I或2所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测,具体包括 通过读取包含有当前主数据库服务器标识信息的配置文件的方式,获知当前的主数据库服务器,如果当前的主数据库服务器与上一检测时刻获知的主数据库服务器不同,判定发生主备数据库服务器的状态转移。7.根据权利要求I所述的处理数据库状态转移的方法,其特征在于,所述如果检测到主备数据库服务器发生状态转移,通知数据库应用层,具体包括使用推模式,将携带有已发生主备数据库服务器状态转移和当前的主数据库服务器标识信息的通知推送到数据库应用层。8.根据权利要求I所述的处理数据库状态转移的方法,其特征在于,所述对主备数据库服务器的状态转移进行统一检测包括 对计划中的主备数据库服务器转移操作进行统一检测;或 对非计划系统故障导致的主备数据库服务器转移进行统一检测。9.根据权利要求I所述的处理数据库状态转移的方法,其特征在于,还包括接收数据库应用层在启动时或者启动后的特定时间内的注册请求,并在注册信息中保存应用层所在的连接建立相关信息; 所述通知数据库应用层,具体包括 读取注册信息获得数据库应用层的连接建立相关信息,通过连接建立相关信息通知数据库应用层。10.根据权利要求1、2、7-9任一项所述的处理数据库状态转移的方法,其特征在于,所述主备数据库服务器包括分布式数据库系统的数据库集群中的主备数据库服务器。11.一种处理数据库状态转移的系统,其特征在于,包...

【专利技术属性】
技术研发人员:王福强
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1