CN112199356A - 故障处理方法、装置、服务器以及存储介质 - Google Patents

故障处理方法、装置、服务器以及存储介质 Download PDF

Info

Publication number
CN112199356A
CN112199356A CN202011424823.9A CN202011424823A CN112199356A CN 112199356 A CN112199356 A CN 112199356A CN 202011424823 A CN202011424823 A CN 202011424823A CN 112199356 A CN112199356 A CN 112199356A
Authority
CN
China
Prior art keywords
database
middleware
routing configuration
configuration file
routing
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.)
Granted
Application number
CN202011424823.9A
Other languages
English (en)
Other versions
CN112199356B (zh
Inventor
任冠亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Shunda Technology Co ltd
Original Assignee
Beijing Shunda Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Shunda Technology Co ltd filed Critical Beijing Shunda Technology Co ltd
Priority to CN202011424823.9A priority Critical patent/CN112199356B/zh
Publication of CN112199356A publication Critical patent/CN112199356A/zh
Application granted granted Critical
Publication of CN112199356B publication Critical patent/CN112199356B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出了一种故障处理方法、装置、服务器以及存储介质,所述方法应用于服务器,包括:检测主数据库是否发生故障;若是,从至少一个从数据库中确定新的主数据库,并对所述主数据库进行故障切换;获取路由配置文件;通过第一中间件调用路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件;若第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,重新建立所述第二中间件和所述新的主数据库之间的数据连接。本申请通过自研的路由配置工具,自动修改读写分离中间件的路由信息,不仅提高了数据库的高度可用性,还减少人工干预,节省人力成本,实现业务流量的快速自愈。

Description

故障处理方法、装置、服务器以及存储介质
技术领域
本申请主要涉及计算机领域,具体涉及一种故障处理方法、装置、服务器以及存储介质。
背景技术
数据库作为存储数据的基础设施,广泛应用于计算机和网络通信等领域。在面对数据量大、业务复杂和响应延时要求高等问题时,通过使用数据库集群可以使读写分离,提高数据库的系统性能。数据库集群通常包括一个主数据库和一个或多个从数据库,其中主数据库负责数据的写入,从数据库负责数据的读取,从数据库从主数据库备份数据。当主数据库发生故障时,可以将从数据库提升为主数据库,从而减少业务的停止时间,保证数据库的高度可用性。
数据存储高可用的方案本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用。常见的高可用架构有主备架构和主从架构等。主备架构整体架构简单,备数据库主要承担数据备份的作用,不参与实际业务读写操作。在主从架构中从数据库需要参与业务操作的,应用架构需要做读写分离,将写操作写入主数据库,而读操作从从数据库读。
但是,提供高可用和读写分离的开源工具一般都是独立存在的,在遇到数据库故障时,需要进行人工干预,业务流量难以自愈。
发明内容
本申请提供一种故障处理方法、装置、服务器以及存储介质,在遇到数据库故障时,用以实现业务流量的快速自愈。
第一方面,本申请提供一种故障处理方法,应用于服务器,所述服务器中包括目标数据库集群、用于实现数据高库可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,所述方法包括:
通过所述第一中间件检测所述主数据库是否发生故障;
若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
在本申请一些实施例中,所述获取所述路由配置文件,包括:
通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件。
在本申请一些实施例中,所述通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件,包括:
通过所述第一中间件获取数据库集群关系表,所述数据库集群关系表包括数据库集群的标识和数据库集群服务信息的对应关系;
通过所述第一中间件获取目标数据库集群的标识;
根据所述目标数据库集群的标识,在所述数据库集群关系表,确定所述目标数据库集群对应的目标数据库集群服务信息;
根据所述目标数据库集群服务信息,从所述预设的文件管理平台上获取所述路由配置文件。
在本申请一些实施例中,所述路由配置文件中的路由信息包括所述主数据库的网络地址信息;所述通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,包括:
获取所述新的主数据库的网络地址信息;
通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
在本申请一些实施例中,所述通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息,包括:
通过所述第一中间件调用所述路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息;
通过所述路由配置工具下发所述替换任务至预设的任务执行系统;
通过所述预设的任务执行系统执行所述替换任务,以将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
在本申请一些实施例中,所述路由配置工具作为所述第一中间件的钩子工具与所述第一中间件关联,用于监控所述第二中间件的工作状态和修改所述路由配置文件。
在本申请一些实施例中,所述故障处理方法还包括:
在通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件之后,通过所述路由配置工具将所述更新的路由配置文件上传到所述预设的文件管理平台。
第二方面,本申请提供一种故障处理装置,应用于服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,所述装置包括:
故障检测单元,用于通过所述第一中间件检测所述主数据库是否发生故障;
故障切换单元,用于通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
文件获取单元,用于在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
信息修改单元,用于通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
数据连接单元,用于在所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
在本申请一些实施例中,所述文件获取单元具体用于:
通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件。
在本申请一些实施例中,所述文件获取单元具体还用于:
通过所述第一中间件获取数据库集群关系表,所述数据库集群关系表包括数据库集群的标识和数据库集群服务信息的对应关系;
通过所述第一中间件获取目标数据库集群的标识;
根据所述目标数据库集群的标识,在所述数据库集群关系表,确定所述目标数据库集群对应的目标数据库集群服务信息;
根据所述目标数据库集群服务信息,从所述预设的文件管理平台上获取所述路由配置文件。
在本申请一些实施例中,所述信息修改单元具体用于:
获取所述新的主数据库的网络地址信息;
通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
在本申请一些实施例中,所述信息修改单元具体还用于:
通过所述第一中间件调用所述路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息;
通过所述路由配置工具下发所述替换任务至预设的任务执行系统;
通过所述预设的任务执行系统执行所述替换任务,以将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
第三方面,本申请提供一种服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库;所述服务器包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行第一方面中任一项所述的故障处理方法中的步骤。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行第一方面中任一项所述的故障处理方法中的步骤。
本申请提供的故障处理方法、装置、服务器以及存储介质,在遇到数据库集群发生故障时,通过自研的路由配置工具,自动修改读写分离中间件的路由信息,实现读写分离中间件与新主数据库的数据连接,将数据库高可用和业务自愈联系在一起,不仅提高了数据库的高度可用性,还减少人工干预,节省人力成本,实现业务流量的快速自愈。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的故障处理系统的场景示意图;
图2是本申请实施例中提供的故障处理方法的一个实施例流程示意图;
图3是本申请实施例中获取路由配置文件的一个实施例流程示意图;
图4是本申请实施例中步骤204的一个实施例流程示意图;
图5是本申请实施例中替换网络地址信息的一个实施例流程示意图;
图6是本申请实施例提供的一个具体应用场景示意图;
图7是本申请实施例中提供的故障处理装置的一个实施例结构示意图;
图8是本申请实施例中提供的服务器的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
下面首先对本申请实施例中涉及到的一些基本概念进行介绍:
关系型数据库:关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表格及其之间的关系组成的一个数据组织。关系型数据库采用结构化查询语言(Structured Query Language,SQL) 来对数据库进行查询,SQL能够支持数据库的增加、查询、更新和删除等操作,也可以采用类似索引的方法来加快查询操作。常见的关系型数据库有 Oracle、SQLServer、DB2和MySQL等等。
读写分离:数据库集群通常包括一个主数据库和一个或多个从数据库,其中主数据库负责数据的写入,从数据库负责数据的读取,从数据库从主数据库备份数据。读写分离(Read/Write Splitting),基本的原理是让主数据库执行写入数据的操作例如事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库执行读取数据的操作例如SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
本申请实施例提供一种故障处理方法、装置、服务器以及存储介质,以下分别进行详细说明。
如图1所示,为本申请实施例所提供的故障处理系统的场景示意图,该故障处理系统可以包括服务器100及终端200,服务器100中集成有故障处理装置,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库。
本申请实施例中,目标数据库集群为关系型数据库,可以是Oracle、SQLServer、DB2和MySQL等等;用于实现数据库高可用的第一中间件可以是Orchestrator或者其他;用于实现数据库读写分离的第二中间件可以是MySQL Proxy或者其他。
优选的,用于实现数据库高可用的第一中间件可以是Orchestrator,作为MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MySQL复制的拓扑关系及状态,通过Web可更改MySQL实例的复制关系和部分配置信息,同时也提供命令行和应用程序接口,方便运维管理。
优选的,用于实现数据库读写分离的第二中间件可以是MySQL Proxy,MySQLProxy作为一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。
本申请实施例中,服务器100主要用于通过所述第一中间件检测所述主数据库是否发生故障;若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
本申请实施例中,服务器100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的服务器100,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
本申请实施例中,服务器100与终端200之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(Worldwide Interoperability forMicrowave Access, WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)的计算机网络通信等。终端200可以通过上述通信方式向服务器100发起故障处理请求。
本申请实施例中,上述的终端200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中终端200可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等,本实施例不限定终端200的类型。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的终端,例如图1中仅示出1个终端,可以理解的,该故障处理系统还可以包括一个或多个可访问服务器的其他终端,具体此处不作限定。
另外,如图1所示,该故障处理系统还可以包括存储器300,用于存储数据,如目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具等等的相关数据。
需要说明的是,图1所示的故障处理系统的场景示意图仅仅是一个示例,本申请实施例描述的故障处理系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着故障处理系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,本申请实施例中提供一种故障处理方法,该故障处理方法的执行主体为故障处理装置,该故障处理装置应用于服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,该故障处理方法包括:通过所述第一中间件检测所述主数据库是否发生故障;若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
如图2所示,为本申请实施例中故障处理方法的一个实施例流程示意图,该故障处理方法包括如下步骤201~205:
201、通过所述第一中间件检测所述主数据库是否发生故障。
在一个具体实施例中,当业务流量发生异常,如图1所示的终端200可以向如图1所示的服务器100发送故障检测请求,服务器100收到故障检测请求,通过第一中间件比如Orchestrator,检测数据库集群中的主数据库是否发生故障。
202、若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换。
在步骤201中,通过所述第一中间件检测到所述主数据库发生故障之后,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换。
在一个具体实施例中,在检测到主数据库发生的故障具体为单点故障(SinglePoint of Failure,SPOF),即整体故障时,第一中间件从数据库集群的从数据库中确定可以作为新的主数据库的从数据库,并执行故障切换。
其中,故障切换是一种备份操作模式,当主要组件异常时,其功能转移到备份组件。其要点在于有主要组件和备份组件,且主要组件故障时备份组件可以启用,并将备份组件设置为新的主要组件。通常用于幂等性操作,如:MySql的双Master模式,如果主Master故障,则切换至从Master。本申请实施例中,主要组件为数据库集群的主数据库,备份组件为数据库集群的至少一个从数据库,此时,故障切换即在主数据库发生故障时,第一中间件从数据库集群的至少一个从数据库中确定可以作为新的主数据库的从数据库,该从数据库被启用作为新的主数据库。
进一步的,第一中间件例如Orchestrator对MySQL主数据库的故障切换分为自动切换和手动切换。自动切换是Orchestrator会周期检测主数据库状态,如果发现故障,在故障条件满足单点故障的情况下,就会进行故障切换,自动提升从数据库为新的主数据库。手动切换不受自动切换中提到的条件限制和约束。
203、在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件。
在步骤202中根据所述新的主数据库对所述主数据库进行故障切换之后,即可获取所述路由配置文件。
在一个具体实施例中,在根据所述新的主数据库对所述主数据库进行故障切换之后,用于实现数据库读写分离的第二中间件例如MySQL Proxy可以正常请求读取业务流量,但是写入流量的操作持续报告错误,需要获取MySQL Proxy的路由配置文件进行信息更新。
204、通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息。
其中,所述路由配置工具为自主研发的MySQL Proxy配置文件管理工具,用于修改所述第二中间件中的路由配置文件,所述路由配置文件中的路由信息包括所述主数据库的网络地址信息。
205、若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
在一个具体实施例中,在所述第二中间件例如MySQL Proxy检测到所述路由配置文件中的路由信息发生更改,即MySQL Proxy感知到MySQL数据库进行了故障切换,重新加载所述更新的路由配置文件,MySQL Proxy与新的主数据库实现数据连接,使得数据库的读写分离恢复正常,业务流量快速自愈。
本申请实施例提供的故障处理方法,在遇到数据库集群发生故障时,通过自研的路由配置工具,自动修改读写分离中间件的路由信息,实现读写分离中间件与新主数据库的数据连接,将数据库高可用和业务自愈联系在一起,不仅提高了数据库的高度可用性,还减少人工干预,节省人力成本,实现业务流量的快速自愈。
在本申请一些实施例中,所述步骤203中所述获取所述路由配置文件,可以进一步包括:
通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件。
其中,预设的文件管理平台为项目管理和代码托管平台,GitLab和GitHub是两个常用的分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。Git是一个版本控制系统,版本控制是一种用于记录一个或多个文件内容变化,方便用户查阅特定版本修订情况的系统。
优选的,本申请实施例中预设的文件管理平台可以是GitLab,GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的网络服务,可通过网页界面访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。GitLab让开发团队对代码仓库拥有更多的控制,相比较GitHub,它不仅允许免费设置仓库权限,还允许用户选择分享一个项目的部分代码,而且允许用户设置项目的获取权限,进一步提升安全性。所以,从代码的私有性上来看,GitLab是一个更好的选择。
由于所述预设的文件管理平台上存储的可能是不同中间件的配置文件,且不同的配置文件包含的信息也各不相同,此时,如图3所示,所述通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件,进一步包括如下步骤301~304:
301、通过所述第一中间件获取数据库集群关系表,所述数据库集群关系表包括数据库集群的标识和数据库集群服务信息的对应关系;
其中,所述数据库集群服务信息包括数据库集群服务资源列表和数据库集群关联业务,用于资源查询、资源管理和授权。
302、通过所述第一中间件获取目标数据库集群的标识;
303、根据所述目标数据库集群的标识,在所述数据库集群关系表,确定所述目标数据库集群对应的目标数据库集群服务信息;
304、根据所述目标数据库集群服务信息,从所述预设的文件管理平台上获取所述路由配置文件。
其中,数据库集群服务信息可以是利用服务树生成的。服务树是一个将业务映射成树形结构,然后与资源对应起来的模型,它不仅支持业务分级,可以与业务形态灵活对应,而且可以支持多个维度精确的匹配,灵活地筛选业务与资源的关联关系。
在一个具体实施例中,通过所述第一中间件比如Orchestrator获取数据库集群关系表,所述数据库集群关系表为MySQL meta表,MySQL meta表包括数据库集群的标识和数据库集群服务信息的对应关系;数据库集群服务信息是利用服务树生成的,包括数据库集群服务资源列表和数据库集群关联业务,用于资源查询、资源管理和授权;通过Orchestrator获取目标数据库集群的标识,根据所述目标数据库集群的标识,在MySQLmeta表,确定所述目标数据库集群对应的目标数据库集群服务信息;根据所述目标数据库集群服务信息,从所述预设的文件管理平台比如GitLab上获取所述路由配置文件。
通过利用服务树生成数据库集群服务信息,根据数据库集群的标识和数据库集群服务信息的对应关系,有针对性地获取目标数据库集群的标识和目标数据库集群服务信息,可以更直接又精确地从所述预设的文件管理平台上获取所述路由配置文件,加速了业务流量恢复的进程。
如图4所示,在本申请一些实施例中,所述步骤204中所述路由配置文件中的路由信息包括所述主数据库的网络地址信息;所述通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,可以进一步包括如下步骤401~402:
401、获取所述新的主数据库的网络地址信息;
402、通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
其中,所述主数据库的网络地址信息可以包括域名、端口和包含IP地址与计算机主机名的映射关系的系统文件等等。
由于可能会存在偶发性环境变量问题,例如现有技术中超文本预处理器数据对象(Hypertext Preprocessor Data Objects,PDO)在遇到修改所述路由配置文件中的路由信息时,会选择重启MySQL Proxy,导致操作系统运行环境的一些参数在重启时间内临时改变,对业务的恢复造成影响。此时,如图5所示,所述通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息,进一步包括如下步骤501~503:
501、通过所述第一中间件调用所述路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息;
502、通过所述路由配置工具下发所述替换任务至预设的任务执行系统;
503、通过所述预设的任务执行系统执行所述替换任务,以将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
其中,所述预设的任务执行系统为自行研发的执行系统,包括任务下发工具和任务执行工具等,任务下发工具接收路由配置工具的替换任务,并将替换任务下发至任务执行工具,由任务执行工具完成所述新的主数据库的网络地址信息与所述路由配置文件中的所述主数据库的网络地址信息的替换。
通过自研的执行系统完成所述新的主数据库的网络地址信息与所述路由配置文件中的所述主数据库的网络地址信息的替换,避免了现有技术中存在的重启第二中间件的问题,提升数据库高度可用性的同时使业务得以快速自愈。
在本申请一些实施例中,所述路由配置工具作为所述第一中间件的钩子工具与所述第一中间件关联,用于监控所述第二中间件的工作状态和修改所述路由配置文件。
其中,钩子(Hook)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理Windows消息或特定事件。
具体的,在路由配置工具和第一中间件之间设置钩子机制,业务流量正常请求的时候,路由配置工具作为第一中间件的钩子工具,监控第二中间件的工作状态;当监控的第二中间件的工作状态发生改变的时候,例如业务流量读写异常,即可修改所述第二中间件的路由配置文件,使得业务流量得以快速恢复。
在本申请一些实施例中,对于路由配置文件发生更改之后,为了合理管理路由配置文件,所述故障处理方法还可以包括:在通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件之后,通过所述路由配置工具将所述更新的路由配置文件上传到所述预设的文件管理平台。
通过使用GitLab作为文件管理平台,不仅可以存储路由配置文件的历史版本信息和更新版本信息,方便及时查看,还可以作为集合所有配置文件的配置中心,配合路由配置工具完成各项文件配置、文件更新和文件同步等等操作。
下面结合一具体应用场景对本申请实施例中故障处理方法进行描述。
如图6所示,假设目标数据库集群为MySQL,MySQL包括主数据库和至少一个从数据库,用于实现数据库高可用的第一中间件为Orchestrator,用于实现数据库读写分离的第二中间件为MySQL Proxy,预设的文件管理平台为GitLab,数据库集群关系表为MySQL meta表,预设的任务执行系统为execute system,预设的任务执行系统包括任务下发工具execute system master和任务执行工具execute system agent。
具体的,通过Orchestrator检测MySQL主数据库是否发生故障;若是,通过Orchestrator从MySQL的至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;在进行故障切换之后,通过Orchestrator获取MySQLmeta表,MySQL meta表包括数据库集群的标识和数据库集群服务信息的对应关系;再通过Orchestrator获取MySQL的标识;根据MySQL的标识,在MySQL meta表,确定MySQL对应的目标数据库集群服务信息;根据所述目标数据库集群服务信息,从GitLab上获取MySQL Proxy的路由配置文件,MySQL Proxy的路由配置文件中的路由信息包括MySQL主数据库的网络地址信息。
通过Orchestrator获取所述新的主数据库的网络地址信息,再调用路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换MySQL Proxy的路由配置文件中的所述主数据库的网络地址信息;通过所述路由配置工具下发所述替换任务至execute system;通过execute system执行所述替换任务,execute system master接收路由配置工具的替换任务,并将替换任务下发至execute system agent,由executesystem agent完成所述新的主数据库的网络地址信息与MySQL Proxy的路由配置文件中的所述主数据库的网络地址信息的替换,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息。
若MySQL Proxy检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立MySQL Proxy和所述新的主数据库之间的数据连接。
进一步的,在通过Orchestrator调用所述路由配置工具修改MySQL Proxy的路由配置文件中的路由信息,得到更新的路由配置文件之后,通过所述路由配置工具将所述更新的路由配置文件上传到GitLab。
另外,所述路由配置工具作为Orchestrator的钩子工具与Orchestrator关联,业务流量正常请求的时候,路由配置工具作为Orchestrator的钩子工具,监控MySQL Proxy的工作状态;当监控的MySQL Proxy的工作状态发生改变的时候,例如业务流量读写异常,即可修改MySQL Proxy的路由配置文件。
本申请实施例在遇到MySQL发生故障时,通过自研的路由配置工具,自动修改MySQL Proxy的路由信息,实现MySQL Proxy与新主数据库的数据连接;在路由配置工具和Orchestrator之间设置钩子机制,使得MySQL Proxy的工作状态及时更新,快速应对突发故障;将历史版本和更新版本的路由配置文件上传到GitLab,一方面有利于文件的整理,另一方面作为备份中心应对数据异常或丢失的情况;本实施例提供的故障处理方法,将数据库高可用和业务自愈联系在一起,不仅提高了数据库的高度可用性,还减少人工干预,节省人力成本,实现业务流量的快速自愈。
为了更好实施本申请实施例中故障处理方法,在故障处理方法基础之上,本申请实施例中还提供一种故障处理装置,所述故障处理装置应用于服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,如图7所示,所述故障处理装置700包括:
故障检测单元701,用于通过所述第一中间件检测所述主数据库是否发生故障;
故障切换单元702,用于通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
文件获取单元703,用于在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
信息修改单元704,用于通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
数据连接单元705,用于在所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
在本申请一些实施例中,所述文件获取单元703具体用于:
通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件。
在本申请一些实施例中,所述文件获取单元703具体还用于:
通过所述第一中间件获取数据库集群关系表,所述数据库集群关系表包括数据库集群的标识和数据库集群服务信息的对应关系;
通过所述第一中间件获取目标数据库集群的标识;
根据所述目标数据库集群的标识,在所述数据库集群关系表,确定所述目标数据库集群对应的目标数据库集群服务信息;
根据所述目标数据库集群服务信息,从所述预设的文件管理平台上获取所述路由配置文件。
在本申请一些实施例中,所述信息修改单元704具体用于:
获取所述新的主数据库的网络地址信息;
通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
在本申请一些实施例中,所述信息修改单元704具体还用于:
通过所述第一中间件调用所述路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息;
通过所述路由配置工具下发所述替换任务至预设的任务执行系统;
通过所述预设的任务执行系统执行所述替换任务,以将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
本申请实施例在遇到数据库集群发生故障时,通过自研的路由配置工具,自动修改读写分离中间件的路由信息,实现读写分离中间件与新主数据库的数据连接,将数据库高可用和业务自愈联系在一起,不仅提高了数据库的高度可用性,还减少人工干预,节省人力成本,实现业务流量的快速自愈。
本申请实施例还提供一种服务器,其集成了本申请实施例所提供的任一种故障处理装置,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库;所述服务器包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行上述故障处理方法实施例中任一实施例中所述的故障处理方法中的步骤。
如图8所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体的:
该服务器可以包括一个或者一个以上处理核心的处理器801、一个或一个以上计算机可读存储介质的存储器802、电源803和输入单元804等部件。本领域技术人员可以理解,图8中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器801是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器801可包括一个或多个处理核心;处理器801可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,优选的,处理器801可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器801中。
存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器801对存储器802的访问。
服务器还包括给各个部件供电的电源803,优选的,电源803可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源803还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元804,该输入单元804可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能,如下:
通过所述第一中间件检测所述主数据库是否发生故障;
若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种故障处理方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:
通过所述第一中间件检测所述主数据库是否发生故障;
若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种故障处理方法、装置、服务器以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种故障处理方法,其特征在于,应用于服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,所述方法包括:
通过所述第一中间件检测所述主数据库是否发生故障;
若是,通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
若所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
2.根据权利要求1所述的故障处理方法,其特征在于,所述获取所述路由配置文件,包括:
通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件。
3.根据权利要求2所述的故障处理方法,其特征在于,所述通过所述第一中间件调用所述路由配置工具,从预设的文件管理平台上获取所述第二中间件的路由配置文件,包括:
通过所述第一中间件获取数据库集群关系表,所述数据库集群关系表包括数据库集群的标识和数据库集群服务信息的对应关系;
通过所述第一中间件获取目标数据库集群的标识;
根据所述目标数据库集群的标识,在所述数据库集群关系表,确定所述目标数据库集群对应的目标数据库集群服务信息;
根据所述目标数据库集群服务信息,从所述预设的文件管理平台上获取所述路由配置文件。
4.根据权利要求1所述的故障处理方法,其特征在于,所述路由配置文件中的路由信息包括所述主数据库的网络地址信息;所述通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,包括:
获取所述新的主数据库的网络地址信息;
通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
5.根据权利要求4所述的故障处理方法,其特征在于,所述通过所述第一中间件调用所述路由配置工具,将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息,包括:
通过所述第一中间件调用所述路由配置工具生成替换任务,所述替换任务用于将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息;
通过所述路由配置工具下发所述替换任务至预设的任务执行系统;
通过所述预设的任务执行系统执行所述替换任务,以将所述新的主数据库的网络地址信息,替换所述路由配置文件中的所述主数据库的网络地址信息。
6.根据权利要求1所述的故障处理方法,其特征在于,所述路由配置工具作为所述第一中间件的钩子工具与所述第一中间件关联,用于监控所述第二中间件的工作状态和修改所述路由配置文件。
7.根据权利要求1所述的故障处理方法,其特征在于,所述方法还包括:
在通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件之后,通过所述路由配置工具将所述更新的路由配置文件上传到预设的文件管理平台。
8.一种故障处理装置,其特征在于,应用于服务器,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库,所述装置包括:
故障检测单元,用于通过所述第一中间件检测所述主数据库是否发生故障;
故障切换单元,用于通过所述第一中间件从所述至少一个从数据库中确定新的主数据库,并根据所述新的主数据库对所述主数据库进行故障切换;
文件获取单元,用于在所述根据所述新的主数据库对所述主数据库进行故障切换之后,获取所述路由配置文件;
信息修改单元,用于通过所述第一中间件调用所述路由配置工具修改所述路由配置文件中的路由信息,得到更新的路由配置文件,所述更新的路由配置文件中包括更新的路由信息;
数据连接单元,用于在所述第二中间件检测到所述路由配置文件中的路由信息发生更改,重新加载所述更新的路由配置文件,以通过所述更新的路由信息重新建立所述第二中间件和所述新的主数据库之间的数据连接。
9.一种服务器,其特征在于,所述服务器中包括目标数据库集群、用于实现数据库高可用的第一中间件、用于实现数据库读写分离的第二中间件以及用于修改所述第二中间件中的路由配置文件的路由配置工具,所述目标数据库集群中包括主数据库和至少一个从数据库;所述服务器包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1至7任一项所述的故障处理方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的故障处理方法中的步骤。
CN202011424823.9A 2020-12-09 2020-12-09 故障处理方法、装置、服务器以及存储介质 Active CN112199356B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011424823.9A CN112199356B (zh) 2020-12-09 2020-12-09 故障处理方法、装置、服务器以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011424823.9A CN112199356B (zh) 2020-12-09 2020-12-09 故障处理方法、装置、服务器以及存储介质

Publications (2)

Publication Number Publication Date
CN112199356A true CN112199356A (zh) 2021-01-08
CN112199356B CN112199356B (zh) 2021-07-30

Family

ID=74033197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011424823.9A Active CN112199356B (zh) 2020-12-09 2020-12-09 故障处理方法、装置、服务器以及存储介质

Country Status (1)

Country Link
CN (1) CN112199356B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535738A (zh) * 2021-09-16 2021-10-22 上海爱可生信息技术股份有限公司 MySQL数据库系统的故障转移方法、高可用系统及电子设备
CN115794769A (zh) * 2022-10-09 2023-03-14 云和恩墨(北京)信息技术有限公司 高可用数据库管理的方法、电子设备及存储介质
CN116028427A (zh) * 2023-03-23 2023-04-28 摩尔线程智能科技(北京)有限责任公司 参数的配置系统、方法及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516966A (zh) * 2014-12-24 2015-04-15 北京奇虎科技有限公司 一种数据库集群的高可用解决方法和装置
CN105528373A (zh) * 2014-10-21 2016-04-27 阿里巴巴集团控股有限公司 数据库故障处理方法、装置、系统及服务器
US20180239677A1 (en) * 2017-02-23 2018-08-23 Salesforce.Com, Inc. Automated self-healing database system and method for implementing the same
CN108900572A (zh) * 2018-05-31 2018-11-27 康键信息技术(深圳)有限公司 主数据库域名切换控制方法、计算机设备和存储介质
CN110019312A (zh) * 2017-12-29 2019-07-16 中国移动通信集团山西有限公司 读写数据分离调度方法、装置、设备及介质
CN110069365A (zh) * 2019-04-26 2019-07-30 腾讯科技(深圳)有限公司 管理数据库的方法和相应的装置、计算机可读存储介质
CN111198921A (zh) * 2019-12-31 2020-05-26 招银云创(深圳)信息技术有限公司 数据库的切换方法、装置、计算机设备和存储介质
CN111708560A (zh) * 2020-06-17 2020-09-25 云和恩墨(北京)信息技术有限公司 数据库高可用管理系统的自动化部署方法及装置
CN111737741A (zh) * 2020-06-19 2020-10-02 中国工商银行股份有限公司 分布式数据库集群访问方法及中间服务层

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528373A (zh) * 2014-10-21 2016-04-27 阿里巴巴集团控股有限公司 数据库故障处理方法、装置、系统及服务器
CN104516966A (zh) * 2014-12-24 2015-04-15 北京奇虎科技有限公司 一种数据库集群的高可用解决方法和装置
US20180239677A1 (en) * 2017-02-23 2018-08-23 Salesforce.Com, Inc. Automated self-healing database system and method for implementing the same
CN110019312A (zh) * 2017-12-29 2019-07-16 中国移动通信集团山西有限公司 读写数据分离调度方法、装置、设备及介质
CN108900572A (zh) * 2018-05-31 2018-11-27 康键信息技术(深圳)有限公司 主数据库域名切换控制方法、计算机设备和存储介质
CN110069365A (zh) * 2019-04-26 2019-07-30 腾讯科技(深圳)有限公司 管理数据库的方法和相应的装置、计算机可读存储介质
CN111198921A (zh) * 2019-12-31 2020-05-26 招银云创(深圳)信息技术有限公司 数据库的切换方法、装置、计算机设备和存储介质
CN111708560A (zh) * 2020-06-17 2020-09-25 云和恩墨(北京)信息技术有限公司 数据库高可用管理系统的自动化部署方法及装置
CN111737741A (zh) * 2020-06-19 2020-10-02 中国工商银行股份有限公司 分布式数据库集群访问方法及中间服务层

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535738A (zh) * 2021-09-16 2021-10-22 上海爱可生信息技术股份有限公司 MySQL数据库系统的故障转移方法、高可用系统及电子设备
CN113535738B (zh) * 2021-09-16 2021-12-17 上海爱可生信息技术股份有限公司 MySQL数据库系统的故障转移方法、高可用系统及电子设备
CN115794769A (zh) * 2022-10-09 2023-03-14 云和恩墨(北京)信息技术有限公司 高可用数据库管理的方法、电子设备及存储介质
CN115794769B (zh) * 2022-10-09 2024-03-19 云和恩墨(北京)信息技术有限公司 高可用数据库管理的方法、电子设备及存储介质
CN116028427A (zh) * 2023-03-23 2023-04-28 摩尔线程智能科技(北京)有限责任公司 参数的配置系统、方法及存储介质
CN116028427B (zh) * 2023-03-23 2023-06-06 摩尔线程智能科技(北京)有限责任公司 参数的配置系统、方法及存储介质

Also Published As

Publication number Publication date
CN112199356B (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN112199356B (zh) 故障处理方法、装置、服务器以及存储介质
US10747714B2 (en) Scalable distributed data store
US10817478B2 (en) System and method for supporting persistent store versioning and integrity in a distributed data grid
US9639439B2 (en) Disaster recovery framework for cloud delivery
KR102013004B1 (ko) 확장 가능한 환경에서의 동적 로드 밸런싱 기법
US9031910B2 (en) System and method for maintaining a cluster setup
US9607001B2 (en) Automated failover of a metadata node in a distributed file system
US20140019495A1 (en) Processing a file system operation in a distributed file system
CN113515499B (zh) 一种数据库服务方法及系统
US10949401B2 (en) Data replication in site recovery environment
CN111078667B (zh) 一种数据迁移的方法以及相关装置
US9747291B1 (en) Non-disruptive upgrade configuration translator
US10452680B1 (en) Catch-up replication with log peer
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
US11003550B2 (en) Methods and systems of operating a database management system DBMS in a strong consistency mode
CN112434008A (zh) 分布式数据库升级方法、设备及介质
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
US10162841B1 (en) Data management platform
CN110858168A (zh) 集群节点故障处理方法、装置及集群节点
EP3377970B1 (en) Multi-version removal manager
US10346085B1 (en) Distributed restore anywhere for directory services
CN116389233B (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
US10970177B2 (en) Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS
CN114647501A (zh) Mycat系统部署运维方法、装置、设备和存储介质
JP2012022379A (ja) 分散トランザクション処理システム、装置、方法およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant