CN113836154B - 一种数据库切换方法及装置 - Google Patents
一种数据库切换方法及装置 Download PDFInfo
- Publication number
- CN113836154B CN113836154B CN202111028307.9A CN202111028307A CN113836154B CN 113836154 B CN113836154 B CN 113836154B CN 202111028307 A CN202111028307 A CN 202111028307A CN 113836154 B CN113836154 B CN 113836154B
- Authority
- CN
- China
- Prior art keywords
- service
- data processing
- processing request
- database
- received data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 243
- 238000012795 verification Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种数据库切换方法及装置。一种数据库切换方法,该方法包括:接收应用服务器下发的数据处理请求;分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;校验在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果是否一致;若是,则对接收的数据处理请求对应的业务类型的服务进行记录;查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;若是,则控制由所述源数据库切换至所述目标数据库。
Description
技术领域
本说明书实施例涉及数据处理技术领域,尤其涉及一种数据库切换方法及装置。
背景技术
数据库是金融、商业、交通等领域乃至整个社会的关键基础设施,数据库的持续可用是金融、商业、交通等领域可持续向用户正常进行服务的保障。在数据库的实际应用中,出于数据安全、数据处理效率、数据库运维成本、业务发展需求等方面的考虑,可能存在切换数据库的需求。例如,出于数据库运维成本的考虑,需要将业务系统现在应用的数据库切换至数据库运维成本较低的数据库。
数据库切换是一种高风险的操作,如果处理不当,很容易导致业务系统瘫痪,因此目前常用的数据库切换方式为预先设置某一时间点或某一唯一性的序列号作为切换条件,当达到所预先设置的切换条件时,将源数据库切换至目标数据库。然而,这种数据库切换方式,在切换至目标数据库之后,有可能导致业务系统提供的服务出现故障,因而导致数据错乱。
发明内容
针对上述技术问题,本说明书实施例提供一种数据库切换方法及装置,技术方案如下:
一种数据库切换方法,应用于业务系统,所述业务系统与源数据库以及待切换的目标数据库连接;所述方法包括:
接收数据处理请求;所述数据处理请求包括应用服务器下发的实际数据处理请求和虚拟数据处理请求;
分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;
在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果一致的情况下,记录接收的数据处理请求对应的业务类型的服务;
所述虚拟数据处理请求用于校验除实际数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务;
在所述业务系统内对外提供的所有业务类型的服务的记录满足预设的要求的情况下,控制由所述源数据库切换至所述目标数据库。
一种数据库切换装置,应用于业务系统,所述业务系统与源数据库以及待切换的目标数据库连接;所述装置包括:业务状态记录模块以及数据库切换模块,所述数据库切换模块根据所述业务状态记录模块执行结果来执行;
所述业务状态记录模块用于:接收数据处理请求;所述数据处理请求包括应用服务器下发的实际数据处理请求和虚拟数据处理请求;分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果一致的情况下,记录接收的数据处理请求对应的业务类型的服务;所述虚拟数据处理请求用于校验除实际数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务;
所述数据库切换模块用于:在所述业务系统对外提供的所有业务类型的服务的记录满足预设的要求的情况下,控制由所述源数据库切换至所述目标数据库。
本说明书实施例所提供的技术方案,通过分别在源数据库中和目标数据库中针对所接收的数据处理请求进行处理,校验在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果是否一致,若是,则对接收的数据处理请求对应的业务类型的服务进行记录,查看在业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,若是,则控制由源数据库切换至目标数据库。如此一来,在切换至目标数据库之后,有效的保证了业务系统能够正常的对外提供服务,避免因业务系统提供的服务出现故障所导致的数据错乱。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的数据库切换校验过程中的连接状态示意图以及切换至目标数据库之后的连接状态示意图;
图2是本说明书实施例的数据库切换方法的流程示意图;
图3是本说明书实施例的业务系统对外提供的所有业务类型的服务的记录状态示意图;
图4是本说明书实施例的数据库切换装置的结构示意图;
图5是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。随着数据库在金融、商业、交通等领域的应用,数据库的持续可用是金融、商业、交通等领域可持续向用户正常进行服务的保障。在数据库的初始应用阶段,可能没有考虑到数据安全、数据处理效率、数据库运维成本等因素的影响,选择了某种数据库产品,例如Qrcale数据库。但是随着业务的不断发展,当前应用的数据库不能满足未来的业务发展需求,或者当前应用的数据库的数据处理效率并不理想,或者当前应用的数据库的运维成本略高等等,存在切换数据库的需求,例如由当前应用的Qrcale数据库切换至Mysql数据库,意味着需要切换至满足未来业务发展需求的数据库,或者数据处理效率更高的数据库,或者数据库运维成本较低的数据库等等。
正是基于上述切换数据库的需求,目前常用的数据库切换方式为预先设置某一时间点或某一唯一性的序列号作为切换条件,当达到所预先设置的切换条件时,将源数据库切换至目标数据库,意味着业务系统基于目标数据库对外提供服务。对于这种数据库切换方式,在切换至目标数据库之后,有可能导致业务系统提供的服务出现故障,在业务系统提供的服务出现故障之后,在数据处理请求的处理过程中,会导致数据错乱。
针对上述问题,本说明书实施例提供一种技术方案,在切换至目标数据库之前,对业务系统对外提供的所有业务类型的服务进行校验,若通过校验,则对相应的业务类型的服务进行记录,查看在业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,若是,则控制由源数据库切换至目标数据库。如此一来,在切换至目标数据库之后,有效的保证了业务系统能够正常的对外提供服务,避免因业务系统提供的服务出现故障所导致的数据错乱。
具体的,本说明书实施例提供的技术方案如下:业务状态记录步骤以及数据库切换步骤,所述数据库切换步骤根据所述业务状态记录步骤执行结果来执行;
所述业务状态记录步骤包括:接收应用服务器下发的数据处理请求;分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;校验在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果是否一致;若是,则对接收的数据处理请求对应的业务类型的服务进行记录;
所述数据库切换步骤包括:查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;若是,则控制由所述源数据库切换至所述目标数据库。
另外在本说明书实施例中,源数据库为现有正在应用的数据库,目标数据库为待切换的目标数据库,例如源数据库为Qrcale数据库,目标数据库为Mysql数据库。其中在切换至目标数据库之前已将源数据库中的历史数据同步至目标数据库,例如在源数据库中存储有A、B、C,则将源数据库中存储的A、B、C同步至目标数据库,以使源数据库和目标数据库存储的历史数据一致。
业务系统与源数据库以及待切换的目标数据库连接,其中数据库切换校验过程中的连接状态示意图以及切换至目标数据库之后的连接状态示意图,如图1所示。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
如图2所示,为本说明书实施例提供的一种数据库切换方法的流程图,该方法具体可以包括以下步骤:
S201,接收应用服务器下发的数据处理请求;
在本说明书实施例中,数据处理请求可以是数据写入请求,或数据读取请求,或数据修改请求,或数据删除请求等等,本说明书实施例对此不作限定。
在本说明书实施例中,业务系统对外提供不同业务类型的服务,作为一个例子,业务系统可以对外提供不同业务类型的服务接口,应用服务器通过业务系统提供的不同业务类型的服务接口下发数据处理请求。其中在接收到应用服务器下发的数据处理请求之后,确定所接收到的应用服务器下发的数据处理请求对应的业务类型的服务,即属于业务系统内对外提供的哪种业务类型的服务,以便于后续当在源数据库针对所接收的数据处理请求的处理结果与在目标数据库针对所接收的数据处理请求的处理结果一致时,对相应的服务进行记录。作为一个例子,在接收到应用服务器下发的数据处理请求之后,确定接收该数据处理请求的业务类型的服务接口,根据该服务接口可以确定所接收到的应用服务器下发的数据处理请求对应的业务类型的服务。
S202,分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;
在确定所接收到的应用服务器下发的数据处理请求对应的业务类型的服务之后,作为一种实现方式,为所接收的应用服务器下发的数据处理请求添加业务标签,该业务标签用于标记数据处理请求对应的业务类型的服务。
在源数据库中与目标数据库中针对所接收的数据处理请求进行处理之前,作为一种具体实现方式,可以根据为所接收的应用服务器下发的数据处理请求所添加的业务标签,在已配置的业务处理指令中查找与所添加的业务标签相匹配的业务处理指令,按照所查找到的业务处理指令,分别在源数据库中与目标数据库中针对所接收的数据处理请求进行处理。
作为一个例子,以数据处理请求是数据写入请求为例进行说明,为数据写入请求添加业务标签,该业务标签为Timing_trans,在已配置的业务处理指令中查找与Timing_trans相匹配的业务处理指令,其中该业务处理指令至少包括服务属性字段、数据库属性字段、双写状态属性字段、数据库表属性字段。
服务属性字段,用于标识配置业务处理指令时针对的对象,即针对业务系统对外提供的不同业务类型的服务所配置的业务处理指令,如下表1所示。
编码值 | 描述 |
Timing_trans | 定时记账服务 |
Realtime_trans | 实时记账服务 |
表1数据库属性字段,用于标识源数据库和目标数据库,如下表2所示。
表2
双写状态属性字段,用于标识对应数据库的写入状态,如下表3所示,其中强一致写表示对于源数据库或目标数据库而言,任一数据库写入失败,则数据写入请求中携带的数据写入失败,等待重试,再次写入源数据库和目标数据库意味着会影响另一数据库的写入;弱一致写表示对于源数据库或目标数据库而言,任一数据库写入失败,不影响另一数据库写入,业务系统会打印出写入哪个数据库失败的异常信息。
编码值 | 描述 |
T | 强一致写 |
F | 弱一致写 |
表3
数据库表属性字段,用于按照数据库表切换校验,意味着,在该业务类型的服务的情况下,校验写入数据库表的结果是否一致,例如数据库分为100张数据库表,该标识设计为00-99、ALL,如果配置的数据库表标识为ALL,则表示在该业务类型的服务的情况下,校验写入全部数据库表的结果是否一致。
在查找到业务处理指令之后,例如查找的业务处理指令为“Timing_trans#Qrcale#T#00,Timing_trans#Mysql#T#00”,表示与定时记账服务对应的数据写入请求中携带的待写入数据强一致写入源数据库中数据库表00,强一致写入目标数据库数据库表00,按照上述业务处理指令,分别将数据写入请求中携带的待写入数据写入源数据库中与目标数据库中。
另外,作为一种优先实施方式,按照所查找到的业务处理指令,分别在源数据库与目标数据库中并行处理所接收的数据处理请求,意味着在源数据库对所接收的数据处理请求进行处理,与在目标数据库对所接收的数据处理请求进行处理,两者互不影响。
其中,按照所查找到的业务处理指令,分别在源数据库与目标数据库中并行处理所接收的数据处理请求,具体可以是:按照所查找到的业务处理指令,与源数据库对应的SQL语句以及目标数据库对应的SQL语句,分别在源数据库与目标数据库并行处理所接收的数据处理请求。
S203,校验在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果是否一致;
以数据写入请求为例,校验在源数据库中针对所接收的数据写入请求的写入结果与在目标数据库中针对所接收的数据写入请求的写入结果是否一致,作为一个例子,向源数据库以及目标数据库写入“X”,检验在源数据库写入“X”的结果与在目标数据库写入“X”的结果是否一致。
S204,若是,则对接收的数据处理请求对应的业务类型的服务进行记录;
若在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果一致,则表示所接收的数据处理请求对应的业务类型的服务通过校验,相应的在预先设置的校验记录表中对通过校验的服务进行记录。
作为一个例子,假设当前业务系统对外提供5种不同业务类型的服务,分别记为服务1、服务2、服务3、服务4、服务5,对于每次所接收的数据处理请求,分别在源数据库和目标数据库针对所接收的数据处理请求并行处理,并且在源数据库和目标数据库针对所接收的数据处理请求的处理结果一致的情况下,对接收的数据处理请求对应的业务类型的服务进行记录,记录状态示意图如图3所示。
若在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果不一致,则表示所接收的数据处理请求对应的业务类型的服务没有通过校验,则提示用户与接收的数据处理请求对应的业务类型的服务校验失败。
S205,查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;
如上述所说的校验记录,在校验记录表中查看业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,其中这里预设的要求可以是预先设置的阈值,则在校验记录表中查看业务系统内所有业务类型的服务的记录次数是否超过预设的阈值,意味着每种业务类型的服务校验通过一次,则相应的校验记录次数累积加1,查看累积的校验记录次数是否超过预设的阈值。比如对于一些重要业务类型的服务可以预先设置数值较大的阈值,对于一些并不重要的业务类型的服务可以预先设置数值较小的阈值,例如对于上述所说的服务1、服务2、服务3、服务4、服务5,预先为服务1设置的阈值为5,预先为服务2设置的阈值为10,预先为服务3设置的阈值为5等等,具体可以根据实际情况而定。
其中在校验记录表中查看业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,可以周期性的查看,例如预先设置监测周期,以5秒为间隔,在校验记录表中周期性的查看业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求。还可以在对接收的数据处理请求对应的业务类型的服务进行记录之后,触发查看机制,在校验记录表中查看业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求。
S206,若是,则控制由所述源数据库切换至所述目标数据库。
若业务系统内对外提供的所有业务类型的服务的记录满足预设的要求,表示业务系统内对外提供的所有业务类型的服务均已通过校验,则可以控制由源数据库切换至目标数据库,并且后续只在目标数据库中对所接收的数据处理请求进行处理。
若业务系统内对外提供的所有业务类型的服务的记录不满足预设的要求,则表示在业务系统对外提供的所有业务类型的服务中,有些业务类型的服务没有通过校验,即在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果不一致,导致所接收的数据处理请求对应的业务类型的服务没有通过校验,则不做数据库切换,只在源数据库中对所接收的数据处理请求进行处理。
在上述技术方案的基础之上,本说明书实施例还可以进一步包括:
S207,在预设的时间段内,判断所接收的应用服务器下发的数据处理请求对应的业务类型的服务是否覆盖所述业务系统内对外提供的所有不同业务类型的服务;若否,则触发数据处理请求构建库构建虚拟数据处理请求,所述虚拟数据处理请求用于校验除应用服务器下发的数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务。
为了提高对业务系统内对外提供的不同业务类型的服务的校验效率,本说明书实施例在预设的时间段内,判断所接收的应用服务器下发的数据处理请求对应的业务类型的服务是否覆盖所述业务系统内对外提供的所有不同业务类型的服务,作为一个例子,统计一天之内,所接收的应用服务器下发的数据处理请求对应3种业务类型的服务,而业务系统可以对外提供5种不同业务类型的服务,由此可以得知所接收的应用服务器下发的数据处理请求对应的业务类型的服务并没有覆盖所述业务系统内对外提供的所有不同业务类型的服务。
在所接收的应用服务器下发的数据处理请求对应的业务类型的服务没有覆盖所述业务系统内对外提供的所有不同业务类型的服务的情况下,触发数据处理请求构建库构建虚拟数据处理请求,所述虚拟数据处理请求是针对没有覆盖的其余业务类型的服务构建的,以此确保对业务系统内对外提供的所有业务类型的服务进行校验。
具体的,在接收应用服务器下发的数据处理请求的同时,还可以接收数据处理请求构建库补发的虚拟数据处理请求,分别在源数据库中与目标数据库中针对所接收的数据处理请求以及虚拟数据处理请求进行处理,校验在源数据库中针对所接收的数据处理请求以及虚拟数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求以及虚拟数据处理请求的处理结果是否一致,若是,则对接收的数据处理请求对应的业务类型的服务以及虚拟数据处理请求对应的业务类型的服务进行记录。
由上述对本说明书实施例技术方案的描述,通过分别在源数据库中和目标数据库中针对所接收的数据处理请求进行处理,校验在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果是否一致,若是,则对接收的数据处理请求对应的业务类型的服务进行记录,查看在业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,若是,则控制由源数据库切换至目标数据库。如此一来,可以做到业务系统不停机切换数据库,对业务系统对外提供的所有业务类型的服务进行逐步校验,在业务系统内对外提供的所有业务类型的服务的记录满足预设的要求之后,才控制由源数据库切换至目标数据库。
应用本说明书实施例提供的技术方案,在切换至目标数据库之后,有效的保证了业务系统能够正常的对外提供服务,避免因业务系统提供的服务出现故障所导致的数据错乱。
相对于上述方法实施例,本说明书实施例还提供一种数据库切换装置,如图4所示,可以包括:业务状态记录模块410以及数据库切换模块420,所述业务状态记录模块包括:请求接收子模块411、请求处理子模块412、结果校验子模块413、服务记录子模块414,所述数据库切换模块420包括:查看子模块421、数据库切换子模块422。
请求接收子模块411,用于接收应用服务器下发的数据处理请求;
请求处理子模块412,用于分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;
结果校验子模块413,用于校验在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果是否一致;
服务记录子模块414,用于若是,则对接收的数据处理请求对应的业务类型的服务进行记录;
查看子模块421,用于查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;
数据库切换子模块422,用于若是,则控制由所述源数据库切换至所述目标数据库。
根据本说明书提供的一种具体实施方式,所述请求处理子模块412具体用于:
分别在所述源数据库与所述目标数据库并行处理所接收的数据处理请求。
根据本说明书提供的一种具体实施方式,所述查看子模块421具体用于:
按照预设的周期,查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;
或
在对接收的数据处理请求对应的业务类型的服务进行记录之后,查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求。
根据本说明书提供的一种具体实施方式,所述业务状态记录模块410还包括:请求构建子模块415;
所述请求构建子模块415,用于在预设的时间段内,判断所接收的应用服务器下发的数据处理请求对应的业务类型的服务是否覆盖所述业务系统内对外提供的所有不同业务类型的服务;
若否,则触发数据处理请求构建库构建虚拟数据处理请求,所述虚拟数据处理请求用于校验除应用服务器下发的数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务。
根据本说明书提供的一种具体实施方式,所述业务状态记录模块410还包括:提示子模块416;
所述提示子模块416,用于若否,则提示与接收的数据处理请求对应的业务类型的服务校验失败。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
由上述对本说明书实施例技术方案的描述,通过分别在源数据库中和目标数据库中针对所接收的数据处理请求进行处理,校验在源数据库中针对所接收的数据处理请求的处理结果与在目标数据库中针对所接收的数据处理请求的处理结果是否一致,若是,则对接收的数据处理请求对应的业务类型的服务进行记录,查看在业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求,若是,则控制由源数据库切换至目标数据库。如此一来,可以做到业务系统不停机切换数据库,对业务系统对外提供的所有业务类型的服务进行逐步校验,在业务系统内对外提供的所有业务类型的服务的记录满足预设的要求之后,才控制由源数据库切换至目标数据库。
应用本说明书实施例提供的技术方案,在切换至目标数据库之后,有效的保证了业务系统能够正常的对外提供服务,避免因业务系统提供的服务出现故障所导致的数据错乱。
本说明书实施例还提供一种计算机设备,如图5所示,该设备可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的数据库切换方法。该方法至少包括:
一种数据库切换方法,该方法包括:业务状态记录步骤以及数据库切换步骤,所述数据库切换步骤根据所述业务状态记录步骤执行结果来执行;
所述业务状态记录步骤包括:
接收应用服务器下发的数据处理请求;
分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;
校验在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果是否一致;
若是,则对接收的数据处理请求对应的业务类型的服务进行记录;
所述数据库切换步骤包括:
查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;
若是,则控制由所述源数据库切换至所述目标数据库。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (12)
1.一种数据库切换方法,应用于业务系统,所述业务系统与源数据库以及待切换的目标数据库连接;所述方法包括:
接收数据处理请求;所述数据处理请求包括应用服务器下发的实际数据处理请求和虚拟数据处理请求;
分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;
在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果一致的情况下,记录接收的数据处理请求对应的业务类型的服务;
所述虚拟数据处理请求用于校验除实际数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务;所述实际数据处理请求和所述虚拟数据处理请求用于对所述业务系统内对外提供的所有业务类型的服务进行校验;
在所述业务系统内对外提供的所有业务类型的服务的记录满足预设的要求的情况下,控制由所述源数据库切换至所述目标数据库。
2.根据权利要求1所述的方法,所述虚拟数据处理请求是由数据处理请求构建库发送的。
3.根据权利要求1所述的方法,还包括:
在所接收的应用服务器下发的实际数据处理请求对应的业务类型的服务没有覆盖所述业务系统内对外提供的所有不同业务类型的服务的情况下,触发数据处理请求构建库构建虚拟数据处理请求。
4.根据权利要求1所述的方法,所述业务系统对外提供不同业务类型的服务接口,应用服务器通过所述业务系统提供的不同业务类型的服务接口下发数据处理请求;所述方法还包括:
在接收到应用服务器下发的实际数据处理请求之后,确定接收该实际数据处理请求的业务类型的服务接口,根据该服务接口确定该实际数据处理请求对应的业务类型的服务。
5.根据权利要求1所述的方法,还包括:
在确定该实际数据处理请求对应的业务类型的服务之后,为该实际数据处理请求添加业务标签,所述业务标签用于标记数据处理请求对应的业务类型的服务。
6.根据权利要求1所述的方法,所述记录接收的数据处理请求对应的业务类型的服务,包括:
在预先设置的校验记录表中记录接收的数据处理请求对应的业务类型的服务。
7.根据权利要求6所述的方法,所述业务系统对外提供的所有业务类型的服务的记录满足预设的要求的情况,包括:
在所述校验记录表中,所述业务系统对外提供的所有业务类型的服务的校验记录次数超过预设阈值的情况。
8.根据权利要求1所述的方法,所述分别在所述源数据库与所述目标数据库针对所接收的数据处理请求进行处理,包括:
分别在所述源数据库与所述目标数据库中并行处理所接收的数据处理请求。
9.根据权利要求1所述的方法,还包括:
按照预设的周期,查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求;
或
在对接收的数据处理请求对应的业务类型的服务进行记录之后,查看在所述业务系统内对外提供的所有业务类型的服务的记录是否满足预设的要求。
10.根据权利要求1所述的方法,所述方法还包括:
在所述业务系统内对外提供的所有业务类型的服务的记录没有满足预设的要求的情况下,提示与接收的数据处理请求对应的业务类型的服务校验失败。
11.一种数据库切换装置,应用于业务系统,所述业务系统与源数据库以及待切换的目标数据库连接;所述装置包括:业务状态记录模块以及数据库切换模块,所述数据库切换模块根据所述业务状态记录模块执行结果来执行;
所述业务状态记录模块用于:接收数据处理请求;所述数据处理请求包括应用服务器下发的实际数据处理请求和虚拟数据处理请求;分别在所述源数据库中与所述目标数据库中针对所接收的数据处理请求进行处理;在所述源数据库中针对所接收的数据处理请求的处理结果与在所述目标数据库中针对所接收的数据处理请求的处理结果一致的情况下,记录接收的数据处理请求对应的业务类型的服务;所述虚拟数据处理请求用于校验除实际数据处理请求对应的业务类型的服务之外的所述业务系统内对外提供的其它业务类型的服务;所述实际数据处理请求和所述虚拟数据处理请求用于对所述业务系统内对外提供的所有业务类型的服务进行校验;
所述数据库切换模块用于:在所述业务系统对外提供的所有业务类型的服务的记录满足预设的要求的情况下,控制由所述源数据库切换至所述目标数据库。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111028307.9A CN113836154B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111028307.9A CN113836154B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
CN201810641751.XA CN108920563B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810641751.XA Division CN108920563B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836154A CN113836154A (zh) | 2021-12-24 |
CN113836154B true CN113836154B (zh) | 2024-05-03 |
Family
ID=64421663
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111028307.9A Active CN113836154B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
CN201810641751.XA Active CN108920563B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810641751.XA Active CN108920563B (zh) | 2018-06-21 | 2018-06-21 | 一种数据库切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113836154B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015469B (zh) * | 2020-07-14 | 2023-11-14 | 北京淇瑀信息科技有限公司 | 一种系统重构方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294752A (zh) * | 2012-01-30 | 2013-09-11 | 国际商业机器公司 | 日志传送物理复制环境中备用数据库的在线验证方法和系统 |
JP2014219868A (ja) * | 2013-05-09 | 2014-11-20 | 西日本電信電話株式会社 | データベースの移行方法 |
CN104598463A (zh) * | 2013-10-31 | 2015-05-06 | 阿里巴巴集团控股有限公司 | 用于切换数据库的方法和装置 |
CN107391758A (zh) * | 2017-08-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据库切换方法、装置及设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7280529B1 (en) * | 2000-05-20 | 2007-10-09 | Ciena Corporation | Providing network management access through user profiles |
CN103403707B (zh) * | 2010-12-28 | 2017-11-14 | 思杰系统有限公司 | 用于数据库代理请求交换的系统和方法 |
CN103077242B (zh) * | 2013-01-11 | 2016-03-09 | 北京佳讯飞鸿电气股份有限公司 | 一种实现数据库服务器双机热备的方法 |
US9792321B2 (en) * | 2013-07-09 | 2017-10-17 | Oracle International Corporation | Online database migration |
CN104346454B (zh) * | 2014-10-30 | 2017-12-05 | 上海新炬网络技术有限公司 | 基于Oracle数据库的数据一致性校验方法 |
CN106919590B (zh) * | 2015-12-24 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 一种多业务复用处理方法、装置、及系统 |
US20180157653A1 (en) * | 2016-12-01 | 2018-06-07 | Bank Of America Corporation | Enabling migration of relational database to a cloud network |
CN107016029B (zh) * | 2016-12-13 | 2020-11-06 | 创新先进技术有限公司 | 一种业务数据的处理方法、装置及系统 |
-
2018
- 2018-06-21 CN CN202111028307.9A patent/CN113836154B/zh active Active
- 2018-06-21 CN CN201810641751.XA patent/CN108920563B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294752A (zh) * | 2012-01-30 | 2013-09-11 | 国际商业机器公司 | 日志传送物理复制环境中备用数据库的在线验证方法和系统 |
JP2014219868A (ja) * | 2013-05-09 | 2014-11-20 | 西日本電信電話株式会社 | データベースの移行方法 |
CN104598463A (zh) * | 2013-10-31 | 2015-05-06 | 阿里巴巴集团控股有限公司 | 用于切换数据库的方法和装置 |
CN107391758A (zh) * | 2017-08-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 数据库切换方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
Migrating a specialized locally created database into WorldCat;Nelson;et al;Digital Library Perspectives;第32卷(第1期);41-51 * |
数据库容灾系统的研究与设计;赵嘉林,等;计算机应用;第26卷(第10期);17-20 * |
Also Published As
Publication number | Publication date |
---|---|
CN113836154A (zh) | 2021-12-24 |
CN108920563A (zh) | 2018-11-30 |
CN108920563B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210160053A1 (en) | Merkle tree construction methods and apparatuses and simplified payment verification methods and apparatuses | |
US20200201560A1 (en) | Data storage method, apparatus, and device for multi-layer blockchain-type ledger | |
US11108547B2 (en) | Methods and apparatuses for reading blockchain data | |
CN109359118B (zh) | 一种数据写入方法及装置 | |
US20210158340A1 (en) | Methods and apparatuses for concealing transaction written to blockchain | |
CN111737265B (zh) | 区块数据访问方法、区块数据存储方法及装置 | |
US20220236910A1 (en) | Disk storage-based data reading methods and apparatuses, and devices | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
WO2020019892A1 (zh) | 记账方法、装置及业务财务一体化系统 | |
CN111459948B (zh) | 一种基于中心化块链式账本的交易完整性验证方法 | |
CN108616361B (zh) | 一种识别设备唯一性的方法及装置 | |
CN111046052B (zh) | 一种数据库中的操作记录存储方法、装置及设备 | |
CN111444216A (zh) | 一种基于中心化块链式账本的数据块删除方法 | |
CN108776670B (zh) | 一种异地容灾方法、系统和电子设备 | |
CN113836154B (zh) | 一种数据库切换方法及装置 | |
CN109460312A (zh) | 请求失败的处理方法及装置 | |
CN111464319B (zh) | 一种基于中心化块链式账本的交易存储、签名校验方法 | |
CN110362570B (zh) | 一种数据存储方法、装置及设备 | |
CN116822606A (zh) | 一种异常检测模型的训练方法、装置、设备及存储介质 | |
CN108804625B (zh) | 一种lsm树的优化方法、装置及计算机设备 | |
CN109039695B (zh) | 业务故障处理方法、装置及设备 | |
CN114036564A (zh) | 一种隐私数据衍生图的构建方法 | |
CN110502551A (zh) | 数据读写方法、系统及架构组件 | |
CN111444198B (zh) | 一种基于中心化块链式账本的交易存储、查询方法 | |
CN110264211B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |