CN114490196A - 数据库切换方法、系统、设备及介质 - Google Patents
数据库切换方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114490196A CN114490196A CN202210136205.7A CN202210136205A CN114490196A CN 114490196 A CN114490196 A CN 114490196A CN 202210136205 A CN202210136205 A CN 202210136205A CN 114490196 A CN114490196 A CN 114490196A
- Authority
- CN
- China
- Prior art keywords
- database
- switching
- time length
- preset time
- databases
- 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
Images
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
本发明涉及数据处理领域,提供了一种数据库切换方法,所述方法包括:监测第一数据库的工作状态,第一数据库为数据库集群中的其中一个数据库;若第一数据库的工作状态为异常状态,则获取数据库集群的集群结构信息;根据集群结构信息确定与第一数据库关联的第二数据库,并启动由第一数据库到第二数据库的切换操作;检测切换操作的延迟时长是否小于第一预设时长;如果延迟时长小于第一预设时长,则将与第一数据库关联的多个第三数据库迁移到第二数据库;及如果延迟时长不小于预设时长,则停止并退出切换操作,生成切换失败信息。本发明保障了切换成功率和切换效率、提高了切换时数据完整性以及降低了运维成本。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种数据库切换方法、系统、设备及介质。
背景技术
数据库高可用是数据库领域最重要的基础保障,例如,数据库在出现服务器宕机、数据库夯死、硬件故障等问题时,可以通过快速识别故障并通过高可用切换进行数据库之间的快速切换,实现恢复数据库的正常运行,以减少企业资损、提高客户满意度。但是,传统数据库大多都是开源数据库,这些开源数据库广泛被应用在金融等行业,而这些开源数据库在高可用切换时有着明显的缺陷短板,例如,由于缺少强一致的数据同步保障,DBA(Database Administrator数据库管理员)在切换时容易因为切换时数据缺失、手动操作等问题,从而导致切换完整性、切换效率较低,以及运维成本过高等问题。因此,如何解决传统数据库在切换时容易因为切换时数据缺失和手动操作,导致切换效率和切换成功率较低以及运维成本过高的问题,成为了当期亟需解决的技术问题。
发明内容
有鉴于此,有必要提供一种数据库切换方法、系统、设备及可读存储介质,以解决传统数据库在切换时的切换效率和切换成功率较低以及运维成本过高的问题。
为实现上述目的,本发明实施例提供了一种数据库切换方法,所述方法步骤包括:
监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库;
若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息;
根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作;
检测所述切换操作的延迟时长是否小于第一预设时长;
如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;及
如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
可选的,所述将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,包括:
判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。
可选的,所述对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库的步骤,包括:
执行第一数据库的第i个位点获取操作:获取第i个第三数据库的最新日志位点,其中,i为正整数;
执行第i个日志解析操作:将所述第i个第三数据库的最新日志位点添加到预先配置的日志解析模块中进行解析,得到第i个SQL文件,并将所述第i个SQL文件的相关参数迁移到所述第二数据库;
判断是否存在第i+1个第三数据库;
如果存在第i+1个第三数据库,则执行第一数据库的第i+1个位点获取操作和第i+1个日志解析操作。
可选的,所述将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;包括:
判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量是否相同;
如果被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据库的数量相同,则将所述第二数据库调整为读写模式;
如果被迁移到所述第二数据库的第三数据数据库的数量与所述第一数据库关联的第三数据数据库的数量不相同,则将所述第二数据库调整为只读模式。
可选的,还包括:
检测所述第二数据库的工作状态;
根据所述第二数据库的工作状态判断是否对所述第二数据库进行切换操作。
可选的,还包括:将所述第一数据库的工作状态上传到区块链。
为实现上述目的,本发明实施例还提供了一种数据库切换系统,包括:
监测模块,用于监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库;
获取模块,用于若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息;
启动模块,用于根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作;
检测模块,用于检测所述切换操作的延迟时长是否小于第一预设时长;
迁移模块,用于如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;及
退出模块,用于如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
可选的,所述迁移模块,还用于:
判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述的数据库切换方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的数据库切换方法的步骤。
本发明实施例提供的数据库切换方法、系统、计算机设备及计算机可读存储介质,本实施例根据所述工作状态对第一数据库进行切换,根据延迟时长对切换操作进行调控,解决了现有切换的切换时间过长的问题,提高了切换效率,并在切换时增加前置步骤检查与切换后检查动作,以及发现切换时的问题并及时处理,保障了切换成功率和切换效率、提高了切换时数据完整性以及降低了运维成本。
附图说明
图1为本发明实施例数据库切换方法的流程示意图;
图2为本发明数据库切换系统实施例二的程序模块示意图;
图3为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
参阅图1,示出了本发明实施例之数据库切换方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。本实施例中的数据库切换系统可以被执行在计算机设备2中,下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库。
所述数据库集群可以是一个高可用集群,高可用集群英文原文为HighAvailabilityCluster,简称HACluster,简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络高可用集群是指以减少服务中断时间为目的的服务器集群技术源。这些单个的计算机系统就是集群的节点(node)。高可用性集群(HAcluster)是指如单系统一样地运行并支持(计算机)持续正常运行的一个主机群。然而数据库集群中任意一个数据库的工作状态都会影响整个集群,因此,对集群中的监测第一数据库的工作状态必不可少。
在一些实施例中,计算机设备2(数据库切换系统)可以远程登录所述第一数据库节点,并监测所述第一数据库节点中的数据库进程是否存在,若存在,则表示所述第一数据库节点的工作状态为正常;若不存在,则表示所述第一数据库节点的工作状态存在异常。
步骤S102,若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息。
所述第一数据库的工作状态为异常状态还可以数据库在服务器宕机状态、数据库夯死状态、硬件出现问题状态等。
所述集群结构信息包括所述数据库集群中各个数据库的地址信息和端口信息。其中,所述集群结构信息可以在所述数据库集群的元数据库中查询,例如,可以通过查询元数据库中的database_instance表的hostname和port字段,并通过show slave status信息中的master_host和port信息来向元数据库中写入数据库集群的拓补结构信息。
步骤S104,根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作。
与所述第一数据库关联的第二数据库可以是预先为所述第一数据库配置的数据库,也可以是在监测所述第一数据库的工作状态为异常状态时,根据一定的条件从所述第一数据库关联的数据库中筛选得到的数据库。
所述切换操作可以是工作人员根据检测到的工作状态手动触发切换操作,也可以是通过一些前置步骤自动根据工作状态自动触发切换操作。
步骤S106,检测所述切换操作的延迟时长是否小于第一预设时长。
所述延迟时长为从所述第一数据库切换到所述第二数据库延迟时间,由于从所述第一数据库切换到第二数据库,无法做到瞬间完成往往会有一些延迟,即,从所述第一数据库切换到第二数据库会有一些延迟。
所述第一预设时长可以是预先配置在所述第一数据库的配置文件中的参数:SlaveBinLogEnableMaxLagSeconds,该参数表示在延迟情况下可以容忍的最大延迟时间,即所述第一预设时长,例如,预设时长可以设置为100秒。
步骤S108,如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息。
所述只读模式为只能进行数据读取不同进行数据写入,可以通过连接第一数据库所执行的set global read_only=1语句进行设置。
可以理解的是,如果所述延迟时长小于所述第一预设时长,则表明从所述第一数据库切换到第二数据库的延迟时长为可容忍的时长。当所述延迟时长为可容忍的时长时,可以执行第一数据库的从库迁移操作(即,将与所述第一数据库关联的多个第三数据数据库迁移到所述第二数据库的操作)。
所述第三数据库为所述第一数据库的从库,所述集群结构信息还包括各个第三数据库的地址信息和端口信息,各个第三数据库关联与所述第一数据库。所述迁移操作可以是对所述第一数据库和第二数据库的地址和接口,以实现从第一数据库到第二数据库的迁移。
在示例性的实施例中,所述步骤S108可以包括步骤S200~步骤S204,其中:步骤S200,判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;步骤S202,如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;步骤S204,如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。本本实施例根据所述延迟时长判断是否对所述第一数据库进行日志补偿操作,提高了数据库切换效率,提高了数据库的切换成功率。
所述第二预设时长可以是预先配置在所述第一数据库的配置文件中的参数:ReasonableMaintenanceReplicationLagSecond,该参数表示在延迟情况下可以最小延迟时间,例如,预设时长可以设置为10秒。
当所述延迟时长低于所述第二预设时长时,可以不用进行日志补偿操作,只需将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,例如,可以获取到第三数据库执行到第一数据库的binlog位点,并通过show slave status查看Exec_Master_Log_Pos字段,以将各个第三数据库迁移到所述第二数据库。
在示例性的实施例中,所述步骤S202可以包括步骤S300~步骤S306,其中:步骤S300,执行第一数据库的第i个位点获取操作:获取第i个第三数据库的最新日志位点,其中,i为正整数;步骤S302,执行第i个日志解析操作:将所述第i个第三数据库的最新日志位点添加到预先配置的日志解析模块中进行解析,得到第i个SQL文件,并将所述第i个SQL文件的相关参数迁移到所述第二数据库;步骤S304,判断是否存在第i+1个第三数据库;步骤S306,如果存在第i+1个第三数据库,则执行第一数据库的第i+1个位点获取操作和第i+1个日志解析操作。本实施例通过对延迟时长大于第二预设时长且小于所述第一预设时长的第一数据库进行日志补偿操作,进一步提高了数据库切换效率。
示例性的,所述日志解析模块可以时是预先配置的自研发模块,所述日志解析模块可以从老主库拉取最新的binlog到orchestrator主节点上解析为SQL(StructuredQuery Language结构化查询语言)文件,在解析完成,可以对SQL文件进行应用,即在迁移到所述第二数据库后可以应用SQL文件。在一些实施例中,还可以根据解析后文件大小,调整导入的相关参数以方便文件的导入,在导入之后可以调整的相关参数进行还原,以保证数据的真实性和完整性。本实施例为对多个第三数据库的迁移过,直到全部的第三数据库的迁移成功后则日志解析操作结束。
在示例性的实施例中,所述步骤S108可以包括步骤S400~步骤S404,其中:步骤S400,判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量是否相同;步骤S402,如果被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据库的数量相同,则将所述第二数据库调整为读写模式;步骤S404,如果被迁移到所述第二数据库的第三数据数据库的数量与所述第一数据库关联的第三数据数据库的数量不相同,则将所述第二数据库调整为只读模式。本实施例通过判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量确定切换操作是否成功,以便及时发现重新调整切换操作,以降低第一数据库的工作状态为异常状态时对业务的影响时长,降低了运维成本。
本实施例在切换时,可以通过外部HOOK(钩子:改变程序执行流程的一种技术的统称)判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量是否相同,提高了切换的准确率。
在示例性的实施例中,所述数据库切换方法还包括:检测所述第二数据库的工作状态;根据所述第二数据库的工作状态判断是否对所述第二数据库进行切换操作。本实施例在切换时,通过增加了外部HOOK,可以在切之后对配置对所述第二数据库的工作状态的检测步骤,保障了切换成功率、提高了切换完整性和切换效率。
步骤S110,如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
当停止并退出所述切换操作,则该切换操作失败,本实施例可以生成切换失败信息,以针对性对工作人员进行通知,提高了切换的成功率。本实施例通过对所述工作状态为异常状态的第一数据库进行切换,并增加了日志补偿机制,解决了现有技术中在切换时因为数据缺失或手动操作,导致业务影响时间过长、运维成本过高的问题,通过在切换之前增加前置检查步骤和在切换之后增加后置检查步骤,保障了切换成功率、提高了切换完整性和切换效率。
在示例性的实施例中,所述数据库切换方法还包括:将所述第一数据库的工作状态上传到区块链。
示例性的,将所述第一数据库的工作状态上传至区块链可保证其安全性和公正透明性。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
实施例二
图2为本发明数据库切换系统实施例二的程序模块示意图。数据库切换系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述数据库切换方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据库切换系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
监测模块200,用于监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库。
获取模块202,用于若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息。
启动模块204,用于根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作。
检测模块206,用于检测所述切换操作的延迟时长是否小于第一预设时长。
迁移模块208,用于如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息。
退出模块210,用于如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
示例性的,所述迁移模块208,还用于:判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。
示例性的,所述迁移模块208,还用于:执行第一数据库的第i个位点获取操作:获取第i个第三数据库的最新日志位点,其中,i为正整数;执行第i个日志解析操作:将所述第i个第三数据库的最新日志位点添加到预先配置的日志解析模块中进行解析,得到第i个SQL文件,并将所述第i个SQL文件的相关参数迁移到所述第二数据库;判断是否存在第i+1个第三数据库;如果存在第i+1个第三数据库,则执行第一数据库的第i+1个位点获取操作和第i+1个日志解析操作。
示例性的,所述迁移模块208,还用于:判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量是否相同;如果被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据库的数量相同,则将所述第二数据库调整为读写模式;如果被迁移到所述第二数据库的第三数据数据库的数量与所述第一数据库关联的第三数据数据库的数量不相同,则将所述第二数据库调整为只读模式。
示例性的,所述数据库切换系统20还包括,第二数据库检测模块,所述第二数据库检测模块,用于检测所述第二数据库的工作状态;根据所述第二数据库的工作状态判断是否对所述第二数据库进行切换操作。
示例性的,所述数据库切换系统20还包括,上传模块,所述上传模块,用于将所述第一数据库的工作状态上传到区块链。
实施例三
参阅图3,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及数据库切换系统20。
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的数据库切换系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行数据库切换系统20,以实现实施例一的数据库切换方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communicatI/On,GSM)、宽带码分多址(Wideband CodeDivisI/On Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的数据库切换系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图2示出了本发明实施例二之所述实现数据库切换系统20的程序模块示意图,该实施例中,所述数据库切换系统20可以被划分为监测模块200、获取模块202、启动模块204、检测模块206、迁移模块208和退出模块210。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述数据库切换系统20在计算机设备2中的执行过程。所述程序模块200-210的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质数据库切换系统20,被处理器执行时实现实施例一的数据库切换方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据库切换方法,其特征在于,所述方法包括:
监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库;
若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息;
根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作;
检测所述切换操作的延迟时长是否小于第一预设时长;
如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;及
如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
2.如权利要求1所述的数据库切换方法,其特征在于,所述将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,包括:
判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。
3.如权利要求2所述的数据库切换方法,其特征在于,所述对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库的步骤,包括:
执行第一数据库的第i个位点获取操作:获取第i个第三数据库的最新日志位点,其中,i为正整数;
执行第i个日志解析操作:将所述第i个第三数据库的最新日志位点添加到预先配置的日志解析模块中进行解析,得到第i个SQL文件,并将所述第i个SQL文件的相关参数迁移到所述第二数据库;
判断是否存在第i+1个第三数据库;
如果存在第i+1个第三数据库,则执行第一数据库的第i+1个位点获取操作和第i+1个日志解析操作。
4.如权利要求1所述的数据库切换方法,其特征在于,所述将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;包括:
判断被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据数据库的数量是否相同;
如果被迁移到所述第二数据库的第三数据库的数量与所述第一数据库关联的第三数据库的数量相同,则将所述第二数据库调整为读写模式;
如果被迁移到所述第二数据库的第三数据数据库的数量与所述第一数据库关联的第三数据数据库的数量不相同,则将所述第二数据库调整为只读模式。
5.如权利要求4所述的数据库切换方法,其特征在于,还包括:
检测所述第二数据库的工作状态;
根据所述第二数据库的工作状态判断是否对所述第二数据库进行切换操作。
6.如权利要求1至5中任一项所述的数据库切换方法,其特征在于,还包括:将所述第一数据库的工作状态上传到区块链。
7.一种数据库切换系统,其特征在于,包括:
监测模块,用于监测第一数据库的工作状态,所述第一数据库为数据库集群中的其中一个数据库;
获取模块,用于若所述第一数据库的工作状态为异常状态,则获取所述数据库集群的集群结构信息;
启动模块,用于根据所述集群结构信息确定与所述第一数据库关联的第二数据库,并启动由所述第一数据库到所述第二数据库的切换操作;
检测模块,用于检测所述切换操作的延迟时长是否小于第一预设时长;
迁移模块,用于如果所述延迟时长小于所述第一预设时长,则将所述第一数据库的调整为只读模式,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库,以及将所述第二数据库调整为读写模式,生成切换成功信息;及
退出模块,用于如果所述延迟时长不小于所述预设时长,则停止并退出所述切换操作,生成切换失败信息。
8.如权利要求7所述的数据库切换系统,其特征在于,所述迁移模块,还用于:
判断所述延迟时长是否大于第二预设时长,所述第二预设时长小于所述第一预设时长;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则对所述第一数据库执行日志补偿操作,基于所述日志补偿操作将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库;
如果所述延迟时长大于第二预设时长且小于所述第一预设时长,则不执行所述日志补偿操作,并将与所述第一数据库关联的多个第三数据库迁移到所述第二数据库。
9.一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的数据库切换方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至6中任一项所述的数据库切换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210136205.7A CN114490196A (zh) | 2022-02-15 | 2022-02-15 | 数据库切换方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210136205.7A CN114490196A (zh) | 2022-02-15 | 2022-02-15 | 数据库切换方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490196A true CN114490196A (zh) | 2022-05-13 |
Family
ID=81480441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210136205.7A Pending CN114490196A (zh) | 2022-02-15 | 2022-02-15 | 数据库切换方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490196A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794769A (zh) * | 2022-10-09 | 2023-03-14 | 云和恩墨(北京)信息技术有限公司 | 高可用数据库管理的方法、电子设备及存储介质 |
-
2022
- 2022-02-15 CN CN202210136205.7A patent/CN114490196A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794769A (zh) * | 2022-10-09 | 2023-03-14 | 云和恩墨(北京)信息技术有限公司 | 高可用数据库管理的方法、电子设备及存储介质 |
CN115794769B (zh) * | 2022-10-09 | 2024-03-19 | 云和恩墨(北京)信息技术有限公司 | 高可用数据库管理的方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032824B (zh) | 数据库校验方法、装置、计算机设备和存储介质 | |
CN106648994B (zh) | 一种备份操作日志的方法,设备和系统 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN108965383B (zh) | 文件同步方法、装置、计算机设备和存储介质 | |
CN113448862B (zh) | 软件版本测试方法、装置及计算机设备 | |
CN111190823A (zh) | Ui自动化测试方法、电子装置及计算机可读存储介质 | |
CN107729213B (zh) | 一种后台任务监控方法及装置 | |
CN111737227A (zh) | 数据修改方法及系统 | |
CN112416957A (zh) | 基于数据模型层的数据增量更新方法、装置及计算机设备 | |
CN114490196A (zh) | 数据库切换方法、系统、设备及介质 | |
CN111858605A (zh) | 数据库自动化审计方法、系统、设备及存储介质 | |
CN111654522A (zh) | 文件同步方法、文件同步服务器及存储介质 | |
CN109558209B (zh) | 一种用于虚拟机的监控方法 | |
CN107451202B (zh) | 一种数据访问方法及设备 | |
CN108737184B (zh) | 一种容灾系统的管理方法和装置 | |
CN110866834A (zh) | 批处理程序的执行方法及系统 | |
CN111338644A (zh) | 任务脚本部署方法及系统 | |
CN106708541A (zh) | 版本升级处理方法及装置 | |
CN109766235A (zh) | 基于软件监控的配置文件检测方法、系统、设备及介质 | |
CN114143308A (zh) | 文件上传信息处理方法、装置、计算机设备及存储介质 | |
CN111752786A (zh) | 压力测试过程中的数据存储方法、汇总方法、设备及介质 | |
CN114338535B (zh) | 基于zookeeper的集群限流方法、系统、设备及存储介质 | |
CN112436974B (zh) | Cdn数据资源一致性检测方法、装置以及计算机设备 | |
CN112269583B (zh) | 设备运行异常文件升级处理方法、服务器和存储介质 | |
CN111666035B (zh) | 一种分布式存储系统的管理方法及装置 |
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 |