数据库间切换方法和系统技术方案

技术编号:8413166 阅读:192 留言:0更新日期:2013-03-14 02:10
本发明专利技术公开了一种数据库间切换方法和系统,其中的系统具体包括关联式容器;第一连接建立模块;实例选取模块;第二连接建立模块;及标志修改模块;适于获取所述关联式容器中存储的服务的数据库实例的容器实例获取模块;所述容器实例获取模块包括:服务实例获取子模块,适于在服务启动时,依据操作系统环境变量获取服务的数据库实例;数据库连接池,适于存放所获取数据库实例及相应的连接。本发明专利技术能够提高数据库系统的处理和并发效率,以及,降低系统开销和资源浪费。

【技术实现步骤摘要】

本专利技术涉及数据库
,具体涉及一种数据库间切换方法和系统
技术介绍
数据库本身提供的一些数据备份技术,通常是指数据库本身提供一种管理、监测和自动运行的体系结构,适于创建和维护一个或多个备份数据库。一般是在物理级和逻辑级,通过传输和运行数据库日志文件,来保持生产和备份数据库的数据一致性。一旦主数据库因某种情况而不可用时,备份数据库将切换为新的主数据库,以达到无数据库损失或最小化数据损失的目的。现有一种数据库系统切换方法的流程具体可以包括步骤I、主用和备用机代理通过同时侦听以太网内广播的数据库操作数据包对各 自数据库实例进行相同数据库操作完成复制;步骤2、数据库实例向对应代理返回成功\失败标示;步骤3、主用机代理接收失败标示而备用机代理接收成功标示,则由主用机代理通知备用机代理进行主备切换;步骤4、利用消息确认机制和切换计时器来进行数据库系统主备切换。现有技术具有如下缺陷I、以广播方式将数据库操作包发给主用和备用机代理完成数据复制,加重了系统分发负载,延长了系统处理流程,容易造成系统开销的浪费,影响系统的并发效率;2、利用消息确认机制来进行数据库系统主备切换,容易造成在一定计时时间内消息拥堵排队,请求高峰期会造成大量请求等待,降低了系统的处理效率;3、主备机各有自己的代理,实现功能类似,容易造成系统冗余和资源浪费。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提高数据库系统的处理和并发效率,以及,降低系统开销和资源浪费。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据库间切换方法和系统。依据本专利技术的一个方面,提供了一种数据库间切换方法,包括采用关联式容器存储服务的数据库实例,所述关联式容器中数据库实例在存储时的可用标志为可用;在接收到业务层的调用请求时,建立主数据库与所述业务层的连接;从所述关联式容器中选取可用标志为可用的数据库实例;建立所选取数据库实例对应数据库与所述业务层的连接;在捕获到数据库与所述业务层的连接异常次数大于第一阈值时,将所述关联式容器中相应数据库实例的可用标志修改为不可用;通过如下步骤获取所述关联式容器中存储的服务的数据库实例在服务启动时,依据操作系统环境变量获取服务的数据库实例;采用数据库连接池存放所获取数据库实例及相应的连接;针对所述数据库连接池中连接正常的数据库实例,将其可用标志置为可用,并插入相应的关联式容器中。可选地,所述方法还包括无限循环探测所述关联式容器中数据库实例的可用标志是否为可用,若为不可用,则发出报警提示,由数据库管理员依据所述报警提示对所述可用标志为不可用的数据库实例对应的数据库进行维护,并在维护完成后在数据库的检查表中将所述数据库的可用标志置为可用;所述检查表与数据库一一对应,适于存储数据库的可用标志; 针对所述可用标志为不可用的数据库实例,在检测到其对应数据库的检查表中数据库的可用标志为可用时,在所述关联式容器中将其可用标志修改为可用。可选地,所述方法还包括针对数据库,记录其与所述业务层连接的数目;在建立所选取数据库实例对应数据库与所述业务层的连接前,判断所述数据库与所述业务层连接的数目是否大于第二阈值,若是,则发出报警提示,否则,建立所述数据库与所述业务层的连接。可选地,所述方法还包括在所述业务层所连接数据库进行当前事务的处理过程中,以所述业务层所连接数据库作为主数据库,将所述主数据库的更新数据复制至从数据库;在所述主数据库等待多个从数据库中至少一者复制成功后,进行下一事务的处理。可选地,所述方法还包括在等待时间大于超时时间阈值时,停止所述主数据库针对所述多个从数据库中至少一者复制成功的等待,并进行下一事务的处理。根据本专利技术的另一方面,提供了一种数据库间切换系统,包括关联式容器,适于存储服务的数据库实例,所述关联式容器中数据库实例在存储时的可用标志为可用;第一连接建立模块,适于在接收到业务层的调用请求时,建立主数据库与所述业务层的连接;实例选取模块,适于从所述关联式容器中选取可用标志为可用的数据库实例;第二连接建立模块,适于建立所选取数据库实例对应数据库与所述业务层的连接;及标志修改模块,适于在捕获到数据库与所述业务层的连接异常次数大于第一阈值时,将所述关联式容器中相应数据库实例的可用标志修改为不可用;适于获取所述关联式容器中存储的服务的数据库实例的容器实例获取模块;所述容器实例获取模块包括服务实例获取子模块,适于在服务启动时,依据操作系统环境变量获取服务的数据库实例;数据库连接池,适于存放所获取数据库实例及相应的连接;插入子模块,适于对所述数据库连接池中连接正常的数据库实例,将其可用标志置为可用,并插入相应的关联式容器中。可选地,所述系统还包括循环探测模块,适于循环探测所述关联式容器中数据库实例的可用标志是否为可用;第一报警提示模块,适于在探测到所述关联式容器中数据库实例的可用标志为不可用时,发出报警提示,由数据库管理员依据所述报警提示对所述可用标志为不可用的数据库实例对应的数据库进行维护,并在维护完成后在数据库的检查表中将所述数据库的可用标志置为可用;所述检查表与数据库一一对应,适于存储数据库的可用标志; 检查表检测修改模块,适于针对所述可用标志为不可用的数据库实例,在检测到其对应数据库的检查表中数据库的可用标志为可用时,在所述关联式容器中将其可用标志修改为可用。可选地,所述系统还包括连接数目记录模块,适于针对数据库,记录其与所述业务层连接的数目;连接数目判断模块,适于在所述第二连接建立模块建立所选取数据库实例对应数据库与所述业务层的连接前,判断所述数据库与所述业务层连接的数目是否大于第二阈值;第二报警提示模块,适于在所述数据库与所述业务层连接的数目大于第二阈值时,发出报警提示;所述第二连接建立模块,还具体适于在所述数据库与所述业务层连接的数目小于等于第二阈值时,建立所述数据库与所述业务层的连接。可选地,所述系统还包括主从复制模块,适于在所述业务层所连接数据库进行当前事务的处理过程中,以所述业务层所连接数据库作为主数据库,将所述主数据库的更新数据复制至从数据库;等待模块,适于在所述主数据库等待多个从数据库中至少一者复制成功后,进行下一事务的处理。可选地,所述系统还包括等待停止模块,适于在等待时间大于超时时间阈值时,停止所述主数据库针对所述多个从数据库中至少一者复制成功的等待,并进行下一事务的处理。根据本专利技术的数据库间切换方法和系统取得了如下有益效果本专利技术在接收到业务层的调用请求时,默认建立主数据库与所述业务层的连接,并且,如果主数据库对应数据库实例的可用标志为不可用,则建立可用数据库实例对应数据库与所述业务层的连接;可见,本专利技术能够通过建立可用标志为可用的数据库实例对应数据库与所述业务层的连接,实现主从数据库的高效、实时切换;I、现有技术中主备机各有自己的代理,实现功能类似,容易造成系统冗余和资源浪费;而本专利技术对服务的所有数据库实例进行统一代理,这样,本专利技术的数据库代理与主从库是剥离的,能够形成公用的数据库代理,因此能够节省系统资源;2、现有技术以广播方式将数据库操作包发给主用和备用机代理完成数据复制,力口重了系统分发负载,延长了系统处理流程,容易造成系统开销的浪费,影响系本文档来自技高网...

【技术保护点】
一种数据库间切换方法,包括:采用关联式容器存储服务的数据库实例,所述关联式容器中数据库实例在存储时的可用标志为可用;在接收到业务层的调用请求时,建立主数据库与所述业务层的连接;从所述关联式容器中选取可用标志为可用的数据库实例;建立所选取数据库实例对应数据库与所述业务层的连接;在捕获到数据库与所述业务层的连接异常次数大于第一阈值时,将所述关联式容器中相应数据库实例的可用标志修改为不可用;通过如下步骤获取所述关联式容器中存储的服务的数据库实例:在服务启动时,依据操作系统环境变量获取服务的数据库实例;采用数据库连接池存放所获取数据库实例及相应的连接;针对所述数据库连接池中连接正常的数据库实例,将其可用标志置为可用,并插入相应的关联式容器中。

【技术特征摘要】

【专利技术属性】
技术研发人员:李连港
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1