CN105573867A - 一种MySQL高可用性的实现方法及系统 - Google Patents
一种MySQL高可用性的实现方法及系统 Download PDFInfo
- Publication number
- CN105573867A CN105573867A CN201511021388.4A CN201511021388A CN105573867A CN 105573867 A CN105573867 A CN 105573867A CN 201511021388 A CN201511021388 A CN 201511021388A CN 105573867 A CN105573867 A CN 105573867A
- Authority
- CN
- China
- Prior art keywords
- mysql server
- mysql
- service
- server
- described main
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本发明公开了一种MySQL高可用性的实现方法,所述方法应用于一种MySQL高可用性的实现系统,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务,所述方法包括:当所述主MySQL服务器中断提供服务时,所述备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务。本发明还公开了一种MySQL高可用性的实现系统。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种MySQL高可用性的实现方法及系统。
背景技术
数据库位于现代企业应用的核心,它存储了组织机构中最有价值的资产,包括客户信息、产品信息、订单信息和历史数据等,因此,保证数据库高可用性至关重要。
基于MySQL(MySQL是一个关系型数据库管理系统)与NFS(NetworkFileSystem,网络文件系统)的高可用服务器搭建已经非常成熟,高可用方案要求数据库可靠和数据库可用,所述数据库可靠指的是数据可靠,所述数据可靠是指数据不能丢失等,所述数据库可用指的是数据库服务可用,所述服务可用是指服务器不能宕机等。
但是现有高可用方案存在如下问题:MySQL服务器传输数据时会因网络延迟导致数据丢失,或者因突然断电导致MySQL服务器不可用。而上述问题导致的数据错误会在NFS服务器的数据空间存在,这种情况下MySQL高可用方案就失败了。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种MySQL高可用性的实现方法及系统,以实现提高高可用性方案的数据可靠性及服务器可用性的目的。
为实现上述目的,本发明实施例提供的一种MySQL高可用性的实现方法,所述方法应用于一种MySQL高可用性的实现系统,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务,所述方法包括:
当所述主MySQL服务器中断提供服务时,所述备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务。
可选的,所述备MySQL服务器启动服务,包括:
若所述备MySQL服务器基于所述主MySQL服务器中断前产生的错误数据无法正常启动服务,则所述备MySQL服务器提取所述主MySQL服务器中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
可选的,所述备MySQL服务器按照下述方法确定无法正常启动服务:
所述备MySQL服务器基于所述主MySQL服务器中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
可选的,所述主MySQL服务器中断前的正常操作日志为:所述主MySQL服务器中断前最近的一个正常操作日志。
本发明实施例还提供了一种MySQL高可用性的实现系统,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务;
所述备MySQL服务器,用于当所述主MySQL服务器中断提供服务时启动服务,以接替所述主MySQL服务器继续提供正常服务。
可选的,所述备MySQL服务器,用于若基于所述主MySQL服务器中断前产生的错误数据无法正常启动服务,则提取所述主MySQL服务器中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
可选的,所述备MySQL服务器,具体用于基于所述主MySQL服务器中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
可选的,所述主MySQL服务器中断前的正常操作日志为:所述主MySQL服务器中断前最近的一个正常操作日志。
本发明实施例提供的MySQL高可用性的实现方法及系统,当主MySQL服务器中断提供服务时,通过备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务,可以继续保证MySQL数据库的高可用性,从而有效解决了因传输延迟导致主MySQL服务器传递的数据丢失、或因某一机房突然断电导致主MySQL服务器断电时造成高可用方案整体失效的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例MySQL高可用性的实现方法的流程示意图;
图2为本发明实施例MySQL高可用性的实现系统的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在云计算技术不断发展的情况下,高可用尤其是简单易用高并发高IO(Input/Output,输入/输出)的高可用方案已经成为云计算的标配。然而,对于现有高可用性方案中的MySQL服务器,当因传输延迟导致主MySQL服务器传递的数据丢失时、或者因某一机房突然断电导致主MySQL服务器断电时,会造成高可用方案整体失效。采用发明实施例,可以解决因网络延迟或者突然服务器断电的情况下导致的高可用方案的失效问题,使高可用在数据安全方面有进一步提升。下面具体介绍本发明实施例。
参见图1,为本发明实施例提供的MySQL高可用性的实现方法的流程示意图,所述方法应用于MySQL高可用性的实现系统,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务,所述方法包括:
步骤101:当所述主MySQL服务器中断提供服务时,所述备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务。
在本发明实施例中,通过搭建分别处于主备状态的主备MySQL服务器,使所述MySQL高可用性的实现系统包括:一个主MySQL服务器、一个备MySQL服务器和一个NFS服务器。所述NFS服务器用于以网络文件的形式存储MySQL数据库中的数据,所述主MySQL服务器通过访问所述NFS服务器响应用户对MySQL数据库的读写操作。通常情况下,所述备MySQL服务器处于待命状态,即所述主MySQL服务器正常工作的时候,所述备MySQL服务器不提供计算服务。
在本发明实施例中,如果因传输延迟导致所述主MySQL服务器传递的数据丢失(比如从数据库中提供给用户的部分数据丢失),则所述主MySQL服务器会中断提供服务,或者因某一机房突然断电导致所述主MySQL服务器断电而中断提供服务,当出现这种导致所述主MySQL服务器未能提供正常服务的情况时,所述备MySQL服务器能够接替主MySQL服务器的工作。
当所述主MySQL服务器提供的服务挂掉后,可能会产生错误的操作数据,而这种错误数据同时也会在NFS服务器的数据空间存在,由于MySQL的数据位置会配置到一个相同的NFS目录下,所以所述备MySQL服务器在启动时是基于所述相同NFS目录下的数据(即所述主MySQL服务器非正常工作时产生的错误数据)启动,而基于该错误数据很可能会使所述备MySQL服务器不能正常启动。如果遇到这种情况,就需要对所述备MySQL服务器设定单独的程序,以保证在无法直接启动所述备MySQL服务器的情况下,使所述备MySQL服务器能够回退到所述主MySQL服务器崩溃之前的一个日志状态,由于所述主MySQL服务器崩溃之前的一个日志状态是正常的,所以所述备MySQL服务器从所述主MySQL服务器崩溃之前的一个日志状态便能能顺利启动起来。因此,需要在所述备MySQL服务器上编写与MySQL日志相关的程序控制代码,当所述主MySQL服务器不能提供正常服务后,使所述备MySQL服务器能接替其继续正常工作。
可见,本发明实施例还包括:
若所述备MySQL服务器基于所述主MySQL服务器中断前产生的错误数据无法正常启动服务,则所述备MySQL服务器提取所述主MySQL服务器中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
其中,所述主MySQL服务器中断前的正常操作日志可以是中断前的任意一个正常操作日志,优选地,所述主MySQL服务器中断前的正常操作日志为:所述主MySQL服务器中断前最近的一个正常操作日志。
在本发明实施例中,可以按照下述方法确定所述备MySQL服务器基于错误数据无法正常启动服务:
所述备MySQL服务器基于所述主MySQL服务器中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
具体的,可以在所述备MySQL服务器中编写线程,按照固定时间间隔(比如每隔15秒钟)检测所述备MySQL服务器是否正常启动,如果在设定时间段内(比如1分钟)仍然没有启动,便可确定所述备MySQL服务器无法正常启动服务,此时就把所述备MySQL服务器的数据状态恢复到前一个日志状态,以实现正常启动。可见,本发明实施例通过线程检测,以及日志回退的方式,破解由于数据统一到同一个NFS而导致的由于数据问题,而形成的无法启动所述备MySQL服务器的问题。
参见图2,为本发明实施例提供的MySQL高可用性的实现系统的组成示意图,所述系统包括主MySQL服务器201和备MySQL服务器202,所述备MySQL服务器202在所述主MySQL服务器201正常提供服务时不提供服务;
所述备MySQL服务器202,用于当所述主MySQL服务器201中断提供服务时启动服务,以接替所述主MySQL服务器201继续提供正常服务。
在本发明实施例中,所述备MySQL服务器202,用于若基于所述主MySQL服务器201中断前产生的错误数据无法正常启动服务,则提取所述主MySQL服务器201中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
在本发明实施例中,所述备MySQL服务器202,具体用于基于所述主MySQL服务器201中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
在本发明实施例中,所述主MySQL服务器201中断前的正常操作日志为:所述主MySQL服务器201中断前最近的一个正常操作日志。
本发明实施例提供的MySQL高可用性的实现方法及系统,当主MySQL服务器中断提供服务时,通过备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务,可以继续保证MySQL数据库的高可用性,从而有效解决了因传输延迟导致主MySQL服务器传递的数据丢失、或因某一机房突然断电导致主MySQL服务器断电时造成高可用方案整体失效的问题。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种MySQL高可用性的实现方法,其特征在于,所述方法应用于一种MySQL高可用性的实现系统,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务,所述方法包括:
当所述主MySQL服务器中断提供服务时,所述备MySQL服务器启动服务,以接替所述主MySQL服务器继续提供正常服务。
2.根据权利要求1所述的方法,其特征在于,所述备MySQL服务器启动服务,包括:
若所述备MySQL服务器基于所述主MySQL服务器中断前产生的错误数据无法正常启动服务,则所述备MySQL服务器提取所述主MySQL服务器中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
3.根据权利要求2所述的方法,其特征在于,所述备MySQL服务器按照下述方法确定无法正常启动服务:
所述备MySQL服务器基于所述主MySQL服务器中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述主MySQL服务器中断前的正常操作日志为:所述主MySQL服务器中断前最近的一个正常操作日志。
5.一种MySQL高可用性的实现系统,其特征在于,所述系统包括主MySQL服务器和备MySQL服务器,所述备MySQL服务器在所述主MySQL服务器正常提供服务时不提供服务;
所述备MySQL服务器,用于当所述主MySQL服务器中断提供服务时启动服务,以接替所述主MySQL服务器继续提供正常服务。
6.根据权利要求5所述的系统,其特征在于,
所述备MySQL服务器,用于若基于所述主MySQL服务器中断前产生的错误数据无法正常启动服务,则提取所述主MySQL服务器中断前的正常操作日志,并从所述操作日志对应的数据状态启动执行。
7.根据权利要求6所述的系统,其特征在于,
所述备MySQL服务器,具体用于基于所述主MySQL服务器中断时的操作数据启动服务,并按照固定时间间隔检测自己是否已经正常启动,如果在设定时间段内未正常启动,则确定无法正常启动服务。
8.根据权利要求5至7任一项所述的系统,其特征在于,所述主MySQL服务器中断前的正常操作日志为:所述主MySQL服务器中断前最近的一个正常操作日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511021388.4A CN105573867A (zh) | 2015-12-30 | 2015-12-30 | 一种MySQL高可用性的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511021388.4A CN105573867A (zh) | 2015-12-30 | 2015-12-30 | 一种MySQL高可用性的实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105573867A true CN105573867A (zh) | 2016-05-11 |
Family
ID=55884033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511021388.4A Pending CN105573867A (zh) | 2015-12-30 | 2015-12-30 | 一种MySQL高可用性的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573867A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055434A (zh) * | 2016-05-31 | 2016-10-26 | 浪潮(北京)电子信息产业有限公司 | 一种高可用服务器的优化方法及系统 |
CN106649000A (zh) * | 2017-01-03 | 2017-05-10 | 星环信息科技(上海)有限公司 | 实时处理引擎的故障恢复方法及相应的服务器 |
CN108241701A (zh) * | 2016-12-26 | 2018-07-03 | 航天信息股份有限公司 | 一种提高MySQL高可用性的方法 |
CN112346912A (zh) * | 2020-12-01 | 2021-02-09 | 成都精灵云科技有限公司 | 基于网络文件系统的有状态服务主备高可用系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0123399B1 (ko) * | 1994-11-29 | 1997-11-21 | 양승택 | 고유용성 시스템에서의 데이타 일관성 유지방법 |
CN101060391A (zh) * | 2007-05-16 | 2007-10-24 | 华为技术有限公司 | 主备服务器切换方法及系统及主用服务器、备用服务器 |
CN101296135A (zh) * | 2008-06-27 | 2008-10-29 | 中兴通讯股份有限公司 | 故障信息的处理方法和装置 |
CN104536971A (zh) * | 2014-12-02 | 2015-04-22 | 北京锐安科技有限公司 | 一种具备高可用性的数据库 |
-
2015
- 2015-12-30 CN CN201511021388.4A patent/CN105573867A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0123399B1 (ko) * | 1994-11-29 | 1997-11-21 | 양승택 | 고유용성 시스템에서의 데이타 일관성 유지방법 |
CN101060391A (zh) * | 2007-05-16 | 2007-10-24 | 华为技术有限公司 | 主备服务器切换方法及系统及主用服务器、备用服务器 |
CN101296135A (zh) * | 2008-06-27 | 2008-10-29 | 中兴通讯股份有限公司 | 故障信息的处理方法和装置 |
CN104536971A (zh) * | 2014-12-02 | 2015-04-22 | 北京锐安科技有限公司 | 一种具备高可用性的数据库 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055434A (zh) * | 2016-05-31 | 2016-10-26 | 浪潮(北京)电子信息产业有限公司 | 一种高可用服务器的优化方法及系统 |
CN108241701A (zh) * | 2016-12-26 | 2018-07-03 | 航天信息股份有限公司 | 一种提高MySQL高可用性的方法 |
CN106649000A (zh) * | 2017-01-03 | 2017-05-10 | 星环信息科技(上海)有限公司 | 实时处理引擎的故障恢复方法及相应的服务器 |
CN106649000B (zh) * | 2017-01-03 | 2020-02-18 | 星环信息科技(上海)有限公司 | 实时处理引擎的故障恢复方法及相应的服务器 |
CN112346912A (zh) * | 2020-12-01 | 2021-02-09 | 成都精灵云科技有限公司 | 基于网络文件系统的有状态服务主备高可用系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335448B (zh) | 基于分布式环境的数据存储及处理系统 | |
CN106933843B (zh) | 数据库心跳检测方法以及装置 | |
WO2022063284A1 (zh) | 数据同步方法、装置、设备及计算机可读介质 | |
CN108491422A (zh) | 数据库自动化运维管理方法、服务器及存储介质 | |
CN105573867A (zh) | 一种MySQL高可用性的实现方法及系统 | |
CN102857371B (zh) | 一种面向集群系统的动态配置管理方法 | |
CN109871369B (zh) | 数据库切换方法、系统、介质和装置 | |
CN108710684B (zh) | Etl任务数据源切换方法、系统、计算机设备和存储介质 | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
US10055445B2 (en) | Transaction processing method and apparatus | |
CN104516796B (zh) | 一种基于命令集的网元备份与恢复方法及装置 | |
CN104461747A (zh) | 一种分布式任务调度系统 | |
CN103473328A (zh) | 一种基于mysql的数据库云及其建立方法 | |
CN103995868A (zh) | 面向分布式系统的全局事务管理器及事务处理方法 | |
CN103593257A (zh) | 一种数据备份方法及装置 | |
CN109299063B (zh) | 一种跨平台数据库迁移方法及系统 | |
CN108958965A (zh) | 一种bmc监控可恢复ecc错误的方法、装置及设备 | |
JP5201134B2 (ja) | 二重化システム、切替プログラムおよび切替方法 | |
WO2012101531A1 (en) | Data integrity protection in storage volumes | |
US10466761B2 (en) | Power system monitoring and control system | |
US10387262B1 (en) | Federated restore of single instance databases and availability group database replicas | |
CN106170013B (zh) | 一种基于Redis的Kafka消息唯一性方法 | |
CN105939203B (zh) | 表项同步方法以及装置 | |
CN115934742A (zh) | 一种故障处理方法、装置、设备及存储介质 | |
CN107888430B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160511 |
|
RJ01 | Rejection of invention patent application after publication |