一种实现数据库双主改造的方法及装置制造方法及图纸

技术编号:8532706 阅读:211 留言:0更新日期:2013-04-04 15:38
本发明专利技术公开了一种实现数据库双主改造的方法及装置以实现数据库系统能够连续服务且不丢失数据的目的,包括监测主数据库服务器的运行状态,其中,所述主数据库服务器提供写访问,配置有与其同步复制的备数据库服务器,在监测到所述主数据库服务器的运行状态异常时,以所述备数据库服务器代替主数据库服务器提供写访问,执行从库切换步骤,包括:通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置,将所述备数据库服务器设置为所述从数据库服务器的主服务器,从而满足数据库系统提供连续服务、从库跟随切换延时的情况下不丢失数据的要求。

【技术实现步骤摘要】

本专利技术涉及数据库领域,特别涉及一种实现数据库双主改造的方法及装置
技术介绍
随着使用数据库应用的发展,各种应用对数据库系统稳定性的要求不断提高。数据库系统一般为单主多从构架,主数据库服务器为应用程序提供写入访问,从数据库服务器为应用程序提供只读访问。当主数据库服务器故障时,服务暂停,随后启用从数据库服务器中的一台做主库服务器,对其进行与主数据库服务器相同的配置,接受应用程序的写入操作,重新启动写入服务,重新配置从数据库服务器,将从数据库服务器的主服务器设置为重新定位的主数据库服务器。但是,由于单主多从构架的数据库系统在主数据库服务器发生故障时,服务会发生暂停,导致服务的连续性降低。目前,MYSQL-MMM软件可以用来实现在主数据库服务器发生故障时自动切换主从关系,不必服务暂停,但是,从数据库服务器连接备数据库服务器的时间,与备用数据库服务器接替主数据库服务器的时间之间有一端延时,造成从数据库服务器会丢失延时这段时间内的写入数据,而且,该软件大概每个小时都会进行一次主备的相互切换,切换时间大概有2秒会无法访问数据库,造成了该软件现在已经无法满足各种应用对数据库系统稳定性和服务的连续性越来越高的要求。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种实现数据库双主改造的方法及装置以实现保证数据库系统能够连续服务且不丢失数据的目的。本专利技术提供了一种实现数据库双主改造的方法,该方法包括监测主数据库服务器的运行状态,其中,所述主数据库服务器提供写访问,配置有与其同步复制的备数据库服务器;在监测到所述主数据库服务器的运行状态异常时,以所述备数据库服务器代替主数据库服务器提供写访问;执行以下从库切换步骤,包括通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置;将所述备数据库服务器设置为所述从数据库服务器的主服务器。优选地,所述主数据库服务器与所述备数据库服务器共同使用一个第一虚拟IP,该第一虚拟IP用于写访问。优选地,所述从数据库服务器共同使用一个第二虚拟IP,该第二虚拟IP用于读访问。优选地,所述通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置具体包括以下步骤获得备数据库服务器最后一次读取到主数据库服务器日志中的位置为第一位置;获得从数据库服务器最后一次读取到主数据库服务器日志中的位置为第二位置;获得备数据库服务器日志结束的位置为第三位置;比较第一位置与第二位置;若第一位置等于第二位置,确定第三位置为从数据库服务器读取备数据库服务器日志时的起始位置;若第一位置大于第二位置,确定从数据库服务器读取备数据库服务器日志时的起始位置为第三位置减去第一位置与第二位置的偏移量;若第一位置小于第二位置,将从数据库服务器的中继日志中取得的第二位置之后的日志信息,发送给所述备数据库服务器使其执行所述日志信息,获得执行日志信息后的备数据库服务器日志结束的位置为更新的第三位置,确定从数据库服务器读取备数据库服务器日志时的起始位置为更新的第三位置。优选地,在监测到所述主数据库服务器的运行状态异常时,还包括在预设的间隔时间后,再判断所述主数据库服务器的运行状态是否异常;如果是,则以所述备数据库服务器代替主数据库服务器提供写访问,执行所述从库切换步骤;如果否,则继续监测数据库系统中主数据库服务器的运行状态。优选地,将所述备数据库服务器设置为所述从数据库服务器的主服务器之后,还包括发出使所述从数据库服务器启动复制的指令。优选地,还包括监测所述从数据库服务器;在监测到所述从数据库服务器运行状态异常时,增加新的从数据库服务器,并建立所述新的从数据库服务器与所述主数据库服务器之间的从属关系。优选地,所述监测主数据库服务器的运行状态具体在所述从数据库服务器端监测,所述从库切换步骤具体在所述从数据库服务器端执行。本专利技术还提供一种实现数据库双主改造的装置,包括监测单元用于监测主数据库服务器的运行状态,将所述运行状态发送至切换单元,其中,所述主数据库服务器提供写访问,配置有与其同步复制的备数据库服务器,在监测到所述主数据库服务器的运行状态异常时,以所述备数据库服务器代替主数据库服务器提供与访问;切换单元用于在监测到所述主数据库服务器的运行状态异常时,通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置,将所述备数据库服务器设置为所述从数据库服务器的主服务器。可见本专利技术具有如下有益效果由于本专利技术监测了主数据库服务器的运行状态,从而可以在主数据库服务器宕机时,由与其同步复制的备数据库服务器代替主数据库服务器提供写访问,不需要在主数据库服务器正常的状态下频繁的进行主数据库服务器和备数据库服务器之间的切换,满足了对数据库系统服务连续性的要求;在主数据库服务器与备数据库服务器切换之后,通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置,从而保证了在延时的情况下,从数据库服务器或者备数据库服务器均不会发生丢失写入数据的情况,满足了对数据系统稳定性的要求。附图说明图1是本专利技术可以实施的一种数据库系统架构图例;图2是本专利技术一种实现数据库双主改造的方法的实施例的流程图;图3是本专利技术确定从数据库服务器读取备数据库服务器日志的起始位置的流程图例;图4是本专利技术一种实现数据库双主改造的装置的实施例的组成图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术实施例作进一步详细的说明。为了使得本专利技术以下实施例更加易于理解,首选介绍本专利技术可以实施的一种数据库系统架构,参见图1,该数据库系统的结构图可以如图1所示,所述数据库系统包括主数据库服务器101,与主数据库服务器同步复制的备数据库服务器102,至少一个从属于所述主数据库服务器的从数据库服务器,例如从数据库服务器103、从数据库服务器104、从数据库服务器105,其中主数据库服务器101负责提供写访问,备数据库服务器102与主数据库服务器101做成主备模式,从数据库服务器103到105负责读访问,具体地,可以利用MYSQL搭建该数据库系统架构,可以由MYSQL提供的replication实现所述同步复制,由MYSQL提供的Ivs控制读访问在从数据库服务器之间轮替执行,当然本专利技术可以实施的数据库系统不仅局限于这一种架构,当然,该数据库系统架构,还可以利用其他方法或者工具搭建,并不局限于MYSQL或者某一具体工具,在这里介绍该数据库系统架构仅仅是为了使本领域技术人员能够更好地理解,进而实现本专利技术,而并非以任何方式限制本专利技术的范围。参见图2,为本专利技术提供的一种实现数据库双主改造的方法的实施例的流程,如图所示,包括S201、监测主数据库服务器的运行状态,其中,所述主数据库服务器提供写访问,配置有与其同步复制的备数据库服务器;例如,在所述主数据库服务器的从属服务器端对主数据库服务器进行监测,其中本文档来自技高网...

【技术保护点】
一种实现数据库双主改造的方法,其特征在于,包括:监测主数据库服务器的运行状态,其中,所述主数据库服务器提供写访问,配置有:与其同步复制的备数据库服务器;在监测到所述主数据库服务器的运行状态异常时,以所述备数据库服务器代替主数据库服务器提供写访问;执行以下从库切换步骤,包括:通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置;将所述备数据库服务器设置为所述从数据库服务器的主服务器。

【技术特征摘要】
1.一种实现数据库双主改造的方法,其特征在于,包括监测主数据库服务器的运行状态,其中,所述主数据库服务器提供写访问,配置有 与其同步复制的备数据库服务器;在监测到所述主数据库服务器的运行状态异常时,以所述备数据库服务器代替主数据库服务器提供写访问;执行以下从库切换步骤,包括通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置; 将所述备数据库服务器设置为所述从数据库服务器的主服务器。2.根据权利要求1所述的方法,其特征在于,所述主数据库服务器与所述备数据库服务器共同使用一个第一虚拟IP,该第一虚拟IP用于写访问。3.根据权利要求1所述的方法,其特征在于,所述从数据库服务器共同使用一个第二虚拟IP,该第二虚拟IP用于读访问。4.根据权利要求1所述的方法,其特征在于,所述通过计算所述备数据库服务器和从数据库服务器分别最后一次读取到主数据库服务器日志中的位置的差值,确定从数据库服务器在读取备数据库服务器日志时的起始位置具体包括以下步骤获得备数据库服务器最后一次读取到主数据库服务器日志中的位置为第一位置;获得从数据库服务器最后一次读取到主数据库服务器日志中的位置为第二位置; 获得备数据库服务器日志结束的位置为第三位置;比较第一位置与第二位置;若第一位置等于第二位置,确定第三位置为从数据库服务器读取备数据库服务器日志时的起始位置;若第一位置大于第二位置,确定从数据库服务器读取备数据库服务器日志时的起始位置为第三位置减去第一位置与第二位置的偏移量;若第一位置小于第二位置,将从数据库服务器的中继日志中取得的第二位置之后的日志信息,发送给所述备数据库服务器使其执行所述日志信息,获得执...

【专利技术属性】
技术研发人员:杨春宇
申请(专利权)人:北京世纪家天下科技发展有限公司
类型:发明
国别省市:

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

1