CN104598463B - 用于切换数据库的方法和装置 - Google Patents
用于切换数据库的方法和装置 Download PDFInfo
- Publication number
- CN104598463B CN104598463B CN201310529458.1A CN201310529458A CN104598463B CN 104598463 B CN104598463 B CN 104598463B CN 201310529458 A CN201310529458 A CN 201310529458A CN 104598463 B CN104598463 B CN 104598463B
- Authority
- CN
- China
- Prior art keywords
- data processing
- processing request
- service part
- user
- database
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供用于切换数据库的方法和装置。该方法包括:将第一数据库中的数据映射到第二数据库中;将针对一应用的服务器划分为第一服务部分和第二服务部分,使得第一服务部分使用第一数据库来针对用户的数据处理请求执行数据处理,并且第二服务部分使用第二数据库来针对用户的数据处理请求执行数据处理;以及在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。由此可以在不影响用户使用或者用户感知不到的情况下实现快速且平滑地切换数据库。
Description
技术领域
本申请涉及数据处理领域,更具体地涉及一种在同一分布式应用下切换数据库的方法和装置。
背景技术
随着大数据时代的到来,大数据处理已经越来越受到关注。在目前的分布式应用中,由于数据量或者访问量的不断增加,数据库的容量和吞吐量需要不断扩大,因此需要对数据库进行扩容,即,将某个应用从使用旧数据库切换成使用新数据库来完成数据处理。在此扩容过程中,不可避免地可能出现数据同步、停机切换、容灾、脏数据校验和处理等问题。
在目前的现有技术中,关于如何针对某个应用切换数据库,主要有两种解决方案。一种是停机切换,即,使得待切换数据库的应用暂时停止对用户提供服务,而利用这段时间将旧数据库中的数据映射到新数据库中并根据该映射关系调试针对该应用的服务器与新数据库之间的调用和衔接关系。之后再恢复该应用对用户提供服务。这种方案会影响用户对应用服务的使用,导致用户使用体验差。
另一种是针对使用旧数据库的应用,新建一个使用新数据库的应用,保持两个应用同步,使得二者同时支撑该应用的业务。在无需停机的情况下,在保持将旧数据库的数据实时同步到新数据库的同时,将用户的数据处理请求从使用旧数据库的应用上逐渐切换到使用新数据库的应用上,最后完全由使用新数据库的应用来处理用户的数据处理请求,此时使得原应用停止服务,新应用对外提供服务,从而实现数据库的最终切换。由于这种方案需要重新建立新的应用,包含全新代码的编写和测试等,所以需要耗费很高的人力成本和时间成本。并且往往在开发和使用了新的应用之后很短的时间内,由于数据量或者访问量的剧增导致数据库再次需要扩容,而此时这种需要高人力成本和时间成本的方案显然就会影响系统效益成本而不适用。并且,在这种方案中,尽管无需停机,但由于是在两个相对独立的应用系统之间进行数据交换,因此数据交换的复杂度高,所需的时间长,导致在整个切换数据库的过程中用户都能够感知到速度的下降,影响用户的使用体验。
为此,需求一种新的切换数据库的技术,使得在不影响用户使用或者用户感知不到的情况下实现快速且平滑地切换数据库。
发明内容
本申请的目的就在于提供一种切换数据库的技术,使得在不影响用户使用或者用户感知不到的情况下实现快速且平滑地切换数据库,以克服上述现有技术中的问题。
具体而言,根据本申请实施例的一个方面,提供一种用于切换数据库的方法,其特征在于,包括:将第一数据库中的数据映射到第二数据库中;将针对一应用的服务器划分为第一服务部分和第二服务部分,使得第一服务部分使用第一数据库来针对用户的数据处理请求执行数据处理,并且第二服务部分使用第二数据库来针对用户的数据处理请求执行数据处理;以及在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。
根据本申请实施例的另一个方面,提供一种用于切换数据库的装置,其特征在于,包括:映射模块,用于将第一数据库中的数据映射到第二数据库中;划分模块,用于将针对一应用的服务器划分为第一服务部分和第二服务部分,使得第一服务部分使用第一数据库来针对用户的数据处理请求执行数据处理,并且第二服务部分使用第二数据库来针对用户的数据处理请求执行数据处理;以及切换模块,用于在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。
与现有技术相比,根据本申请的技术方案,能够在不影响用户使用或者用户感知不到的情况下实现快速且平滑地切换数据库。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一个实施例的用于切换数据库的方法的流程图;
图2示出了根据本申请一个具体实施例的用于切换数据库的实现架构的示意图;
图3是根据本申请一个具体实施例的用于将数据处理请求逐渐从第一服务部分切换到第二服务部分的方法的流程图;以及
图4是根据本申请一个实施例的用于切换数据库的装置的结构框图。
具体实施方式
本申请的主要思想就在于,通过在同一分布式应用下,将该应用的服务器划分成第一服务部分和第二服务部分,第一服务部分使用旧数据库来执行数据处理,第二服务部分使用新数据库来执行数据处理,然后通过同一应用下的两个服务部分间的数据交换来逐渐将用户的数据处理请求从使用旧数据库处理切换成使用新数据库处理,从而完成数据库的最终切换。需要指出的是,本文中所述的服务器可以对应于一个独立的服务器,也可以对应于一个服务器集群。类似地,第一服务部分或第二服务部分可以对应于一个独立服务器中的部分处理资源,也可以对应于一个服务器集群中的一个或多个服务器。
与现有技术中通过新建应用的方式来切换数据库相比,本申请的方案可以避免新建应用并且可以避免在两个相对独立的应用间进行数据交换,而只需要通过同一应用中的两个服务部分间的简单的数据交换,就可以完成数据库的切换。由此可以节约开发成本,并且可以减少切换时间,从而实现在不影响用户使用或用户感知不到的情况下快速且平滑地切换数据库,提高用户使用体验。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,图1示出了根据本申请一个实施例的用于切换数据库的方法100的流程图。
如图1所示,在步骤S110处,将第一数据库中的数据映射到第二数据库中。
具体而言,对于任一应用服务器(即,针对某一应用的服务器)而言,当需要扩大数据库的容量时,需要在不影响正常处理用户数据请求的情况下,从使用旧数据库(第一数据库)处理用户数据请求的状态切换为使用扩容后的新数据库(第二数据库)处理用户数据请求的状态。根据本申请的实施例,可以将第一数据库中的数据实时同步到第二数据库中,并在第一数据库和第二数据库的数据之间建立映射关系。
然后在步骤S120处,将应用服务器划分成第一服务部分和第二服务部分,使得第一服务部分使用第一数据库来针对用户的数据处理请求执行数据处理,并且第二服务部分使用第二数据库来针对用户的数据处理请求执行数据处理。
也就是说,保持服务器中的一部分使用原有的第一数据库来处理用户数据请求,同时根据步骤S110中建立的映射关系,将服务器中的另一部分修改为使用新建的第二数据库来处理用户数据请求。根据本申请的一个实施例,可以根据服务器(即,应用服务)的版本号来将服务器划分为第一服务部分和第二服务部分。也就是,使得第一服务部分和第二服务部分具有不同的版本号。这里应理解的是,本申请并不限于上述服务划分方式,而是可以采用本领域已知或未来开发的任意合适方式来进行服务的划分。
应指出的是,其中第一服务部分面向用户,即用户的数据处理请求都是指向第一服务部分的。本文中提及的用户的数据处理请求可以指经由前端Web服务器处理后发送给后端应用服务器的用户数据请求。
在本申请的具体实施例中,第一服务部分和第二服务部分中实际使用的物理设备的数量是可变的。可以根据实际服务负载的需要,调整第一服务部分和第二服务部分所需的物理承载设备的数量。
在进行了上述服务划分之后,在步骤S130处,可以在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。
具体而言,为了不影响用户正常使用该应用,需要将用户的数据处理请求从第一服务部分上一部分一部分地逐渐切换到第二服务部分上处理,可以称为无缝切换。这里需要指出的是,可以按照任意预定规则,即,使用任意合适的切换方式,来实现用户数据处理请求从第一服务部分到第二服务部分的无缝切换,本申请并不对此做任何限制。
另外,这里提及的实时同步是指,当第一数据库中的数据发生变化时,需要实时或准实时地将变化数据同步到第二数据库中。
至此描述了根据本申请一个实施例的用于切换数据库的方法的步骤流程。为了便于理解本申请的构思,下面结合图2描述根据本申请一个具体实施例的用于切换数据库的实现架构200。根据本申请实施例的用于切换数据库的方法可以在图2所示的应用服务器210上来实施。
如图2所示,应用服务器210可以包括第一服务部分211和第二服务部分212。第一服务部分211可以调用或使用第一数据库220来执行数据处理。第二服务部分212可以调用或使用第二数据库230来执行数据处理。第一服务部分211包括代理部分211-1和数据处理部分211-2。第二服务部分212包括数据处理部分212-1。
这里需要指出的是,第一服务部分211直接对外提供服务,而第二服务部分212不直接对外提供服务,而是通过第一服务部分211、具体地通过代理部分211-1来对外提供服务。
特别是,代理部分211-1可以将接收到的数据处理请求按照预定规则转发给第一服务部分211的数据处理部分211-2处理,或者转发给第二服务部分212以由数据处理部分212-1处理,由此逐渐完成数据处理请求从第一服务部分211到第二服务部分212的完全切换。
关于代理部分211-1,其也可以从第一服务部分211中独立出来,单独作为应用服务器210的一个应用组件。因此,本申请对其实现形式并不做任何限制。
关于上文提及的预定规则,根据本申请的一个具体实施例,可以根据用户的标识和数据处理请求的类型,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。下面将参照图3描述根据该具体实施例的用于将数据处理请求逐渐从第一服务部分切换到第二服务部分的方法300。
如图3所示,在步骤S310处,根据用户标识将同一类型的数据处理请求分成至少一个数据处理请求分组。
在本申请的一个具体实施例中,数据处理请求的类型可以包括读请求类型和写请求类型。读请求类型例如可以包括对数据库的数据查询请求,写请求类型例如可以包括对数据库的数据添加或写入请求以及对数据库的数据更新(包括对数据的删除)请求。
接着,可以根据用户的标识,将相同类型的数据处理请求(写请求类型或读请求类型)分成一个或多个数据处理请求分组。例如,针对数据查询请求,可以将用户标识的后两位为01的用户的数据查询请求构成一个分组,将用户标识的后两位为02的用户的数据查询请求构成另一个分组,由此获得多个数据处理请求分组。当然,上述分组方式仅为示例,本申请并不限于此,而是可以使用根据用户标识的采用其他任意合适的分组方式。
接下来,在步骤S320处,在每个数据处理请求分组中,逐个地将数据处理请求从第一服务部分转发给第二服务部分来处理并验证处理的正确性。
具体而言,针对在步骤S310中获取到的各个数据处理请求分组中的每一个分组,可以将其中的数据处理请求逐个地从第一服务部分转发给第二服务部分来处理。由于网络和业务环境的复杂性,在进行转发的过程中,可能会存在业务上的异常导致转发过来的数据处理错误。因此,需要验证第二服务部分的处理的正确性。
在本申请的一个实施例中,可以根据用户的反馈来判断对数据处理请求的处理是否正确。具体而言,当第二服务部分将数据处理结果经由第一服务部分返回给用户之后,用户反馈数据处理结果有误时,则可以验证第二服务部分的处理不正确,即验证不通过。当用户反馈数据处理结果无误时,可以验证第二服务部分的处理正确,即验证通过。这里需要指出的是,除了根据用户的反馈来判断对数据处理请求的处理是否正确以外,还可以通过本领域已知或未来开发的其它任意合适方式来进行验证处理。
在步骤S330处,在某一数据处理请求分组中,当验证通过的数据处理请求的数目超过预定阈值时,将所述数据处理请求分组中的所有数据处理请求从第一服务部分切换给第二服务部分来处理。
例如,针对上述每个数据处理请求分组,其中验证通过的数据处理请求的数目超过预定阈值(例如100条)时,就可以将所述数据处理请求分组中的所有数据处理请求都从第一服务部分切换给第二服务部分处理。由此完成了针对所述数据处理请求分组的从第一服务部分至第二服务部分的切换操作。
根据本申请的优选实施例,可以先针对读请求类型的数据处理请求执行步骤S320和S330中的上述操作,再针对写请求类型的数据处理请求执行步骤S320和S330中的上述操作。由此可以使得更加平滑稳定地切换数据库。但本申请并不限于此,而是可以先针对写请求类型再针对读请求类型或者同时针对这两种请求类型来实施切换。
通过针对每种数据处理请求类型的数据处理请求分别执行步骤S320和步骤S330的操作,可以将所有用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,最终完全由第二服务部分来针对数据处理请求执行数据处理。此时第一服务部分只起到转发作用。这也就完成了针对某应用的数据库切换操作。
根据本申请的优选实施例,此后还可以将第一服务部分和第二服务部分整合在一起,以共同使用第二数据库来针对用户的数据处理请求执行数据处理。在一个更具体的实施例中,可以通过将第二服务部分的版本号修改为与第一服务部分的版本号相同,使得第二服务部分可以直接对外提供服务,并按照第二服务部分对第二数据库的调用关系,将第一服务部分也修改为使用第二数据库来针对用户的数据处理请求执行数据处理,由此完成整合处理。通过这样的操作,就可以将第一服务部分和第二服务部分整合成一体,成为扩容后的应用服务器,为用户提供服务。
至此结合图1至图3详细地描述了根据本申请实施例的用于切换数据库的方法。根据本申请实施例的方法,可以通过同一应用下的两个服务部分间的数据交换来逐渐将用户的数据处理请求从使用旧数据库处理切换成使用新数据库处理,从而完成数据库的最终切换。由此可以节约开发成本,并且可以减少切换时间,从而实现在不影响用户使用或用户感知不到的情况下快速且平滑地切换数据库,提高用户使用体验。
与上述用于切换数据库的方法类似,本申请还提供一种用于切换数据库的装置。
参照图4,图4是根据本申请一个实施例的用于切换数据库的装置400的结构框图。
如图4所示,装置400可以包括映射模块410、划分模块420和切换模块430。
具体而言,映射模块410可以用于将第一数据库中的数据映射到第二数据库中。划分模块420可以用于将针对一应用的服务器划分为第一服务部分和第二服务部分,使得第一服务部分使用第一数据库来针对用户的数据处理请求执行数据处理,并且第二服务部分使用第二数据库来针对用户的数据处理请求执行数据处理。切换模块430可以用于在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。
根据本申请的实施例,划分模块420可以进一步包括:版本号划分子模块,用于根据服务器的版本号来将服务器划分为第一服务部分和第二服务部分。
根据本申请的实施例,切换模块430可以根据用户的标识和数据处理请求的类型,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由第二服务部分针对用户的数据处理请求执行数据处理。
根据本申请的具体实施例,切换模块430可以进一步包括:切换子模块(图中未示出),用于针对每个数据处理请求类型的数据处理请求执行以下操作:
根据用户标识来将同一类型的数据处理请求分成至少一个数据处理请求分组;
在每个数据处理请求分组中,逐个地将数据处理请求从第一服务部分转发给第二服务部分来处理并验证处理的正确性;以及
当验证通过的数据处理请求的数目超过预定阈值时,将所述数据处理请求分组中的所有数据处理请求从第一服务部分切换给第二服务部分来处理。
根据本申请的更具体实施例,验证处理可以包括:根据用户的反馈来判断对数据处理请求的处理是否正确。
根据本申请的实施例,数据处理请求的类型可以包括:读请求类型和写请求类型。
根据本申请的更具体实施例,切换子模块可以先针对读请求类型的数据处理请求执行上述操作,再针对写请求类型的数据处理请求执行上述操作。
根据本申请的实施例,装置400还可以包括:整合模块(图中未示出),用于将第一服务部分和第二服务部分整合在一起,以共同使用第二数据库来针对用户的数据处理请求执行数据处理。
根据本申请的具体实施例,整合模块可以进一步包括:修改子模块,用于将第二服务部分的版本号修改为与第一服务部分的版本号相同,并且将第一服务部分修改为使用第二数据库来针对用户的数据处理请求执行数据处理。
至此描述了根据本申请一个实施例的用于切换数据库的装置。以上描述的用于切换数据库的装置与之前描述的用于切换数据库的方法的处理是对应的,因此,关于其具体细节,可以参见之前描述的用于切换数据库的方法,这里不再赘述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、设备、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (18)
1.一种用于切换数据库的方法,其特征在于,包括:
将第一数据库中的数据映射到第二数据库中;
将针对一应用的服务器划分为第一服务部分和第二服务部分,使得所述第一服务部分使用所述第一数据库来针对用户的数据处理请求执行数据处理,并且所述第二服务部分使用所述第二数据库来针对用户的数据处理请求执行数据处理,所述用户的数据处理请求是所述针对一应用的服务器接收的数据处理请求;以及
在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理。
2.根据权利要求1所述的方法,其特征在于,所述将针对一应用的服务器划分为第一服务部分和第二服务部分的步骤进一步包括:
根据服务器的版本号来将服务器划分为第一服务部分和第二服务部分。
3.根据权利要求1所述的方法,其特征在于,所述将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理的步骤进一步包括:
根据用户的标识和数据处理请求的类型,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理。
4.根据权利要求3所述的方法,其特征在于,所述根据用户的标识和数据处理请求的类型,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理的步骤进一步包括:
针对每个数据处理请求类型的数据处理请求执行以下操作:
根据用户标识来将同一类型的数据处理请求分成至少一个数据处理请求分组;
在每个数据处理请求分组中,逐个地将数据处理请求从第一服务部分转发给第二服务部分来处理并验证处理的正确性;以及
当验证通过的数据处理请求的数目超过预定阈值时,将所述数据处理请求分组中的所有数据处理请求从第一服务部分切换给第二服务部分来处理。
5.根据权利要求4所述的方法,其特征在于,所述验证处理包括:
根据用户的反馈来判断对数据处理请求的处理是否正确。
6.根据权利要求4所述的方法,其特征在于,所述数据处理请求的类型包括:读请求类型和写请求类型。
7.根据权利要求6所述的方法,其特征在于,先针对读请求类型的数据处理请求执行上述操作,再针对写请求类型的数据处理请求执行上述操作。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
将第一服务部分和第二服务部分整合在一起,以共同使用第二数据库来针对用户的数据处理请求执行数据处理。
9.根据权利要求8所述的方法,其特征在于,所述将第一服务部分和第二服务部分整合在一起,共同使用第二数据库来针对用户的数据处理请求执行数据处理的步骤进一步包括:
将第二服务部分的版本号修改为与第一服务部分的版本号相同,并且将第一服务部分修改为使用第二数据库来针对用户的数据处理请求执行数据处理。
10.一种用于切换数据库的装置,其特征在于,包括:
映射模块,用于将第一数据库中的数据映射到第二数据库中;
划分模块,用于将针对一应用的服务器划分为第一服务部分和第二服务部分,使得所述第一服务部分使用所述第一数据库来针对用户的数据处理请求执行数据处理,并且所述第二服务部分使用所述第二数据库来针对用户的数据处理请求执行数据处理,所述用户的数据处理请求是所述针对一应用的服务器接收的数据处理请求;以及
切换模块,用于在保持将第一数据库的数据实时同步到第二数据库的情况下,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理。
11.根据权利要求10所述的装置,其特征在于,所述划分模块进一步包括:
版本号划分子模块,用于根据服务器的版本号来将服务器划分为第一服务部分和第二服务部分。
12.根据权利要求10所述的装置,其特征在于,所述切换模块根据用户的标识和数据处理请求的类型,将用户的数据处理请求逐渐从第一服务部分切换到第二服务部分,以最终完全由所述第二服务部分针对用户的数据处理请求执行数据处理。
13.根据权利要求12所述的装置,其特征在于,所述切换模块进一步包括:切换子模块,用于针对每个数据处理请求类型的数据处理请求执行以下操作:
根据用户标识来将同一类型的数据处理请求分成至少一个数据处理请求分组;
在每个数据处理请求分组中,逐个地将数据处理请求从第一服务部分转发给第二服务部分来处理并验证处理的正确性;以及
当验证通过的数据处理请求的数目超过预定阈值时,将所述数据处理请求分组中的所有数据处理请求从第一服务部分切换给第二服务部分来处理。
14.根据权利要求13所述的装置,其特征在于,所述验证处理包括:
根据用户的反馈来判断对数据处理请求的处理是否正确。
15.根据权利要求13所述的装置,其特征在于,所述数据处理请求的类型包括:读请求类型和写请求类型。
16.根据权利要求15所述的装置,其特征在于,所述切换子模块先针对读请求类型的数据处理请求执行上述操作,再针对写请求类型的数据处理请求执行上述操作。
17.根据权利要求10-16中任一项所述的装置,其特征在于,还包括:
整合模块,用于将第一服务部分和第二服务部分整合在一起,以共同使用第二数据库来针对用户的数据处理请求执行数据处理。
18.根据权利要求17所述的装置,其特征在于,所述整合模块进一步包括:
修改子模块,用于将第二服务部分的版本号修改为与第一服务部分的版本号相同,并且将第一服务部分修改为使用第二数据库来针对用户的数据处理请求执行数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310529458.1A CN104598463B (zh) | 2013-10-31 | 2013-10-31 | 用于切换数据库的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310529458.1A CN104598463B (zh) | 2013-10-31 | 2013-10-31 | 用于切换数据库的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104598463A CN104598463A (zh) | 2015-05-06 |
CN104598463B true CN104598463B (zh) | 2018-06-15 |
Family
ID=53124261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310529458.1A Active CN104598463B (zh) | 2013-10-31 | 2013-10-31 | 用于切换数据库的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598463B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888244B (zh) * | 2016-06-02 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种业务处理方法及装置 |
CN109388627B (zh) * | 2017-08-08 | 2022-08-09 | 阿里巴巴集团控股有限公司 | 一种数据库访问的控制方法、装置及电子设备 |
CN113836154B (zh) * | 2018-06-21 | 2024-05-03 | 创新先进技术有限公司 | 一种数据库切换方法及装置 |
CN109710675A (zh) * | 2018-12-26 | 2019-05-03 | 深圳乐信软件技术有限公司 | 一种存储数据库切换方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN102779191A (zh) * | 2012-07-03 | 2012-11-14 | 互动在线(北京)科技有限公司 | 一种MySQL数据库平滑升级的实现系统及实现方法 |
CN102955845A (zh) * | 2012-10-23 | 2013-03-06 | 北京亿赞普网络技术有限公司 | 数据访问方法、装置与分布式数据库系统 |
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
-
2013
- 2013-10-31 CN CN201310529458.1A patent/CN104598463B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN102779191A (zh) * | 2012-07-03 | 2012-11-14 | 互动在线(北京)科技有限公司 | 一种MySQL数据库平滑升级的实现系统及实现方法 |
CN102955845A (zh) * | 2012-10-23 | 2013-03-06 | 北京亿赞普网络技术有限公司 | 数据访问方法、装置与分布式数据库系统 |
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104598463A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339041B (zh) | 文件解析入库、文件生成方法及装置 | |
US20200026700A1 (en) | Blockchain-based data storage and query method and device | |
EP3547169B1 (en) | Block chain-based data processing method and equipment | |
US9355134B1 (en) | Facilitating data redistribution in database sharding | |
US9576019B2 (en) | Increasing distributed database capacity | |
CN105224343A (zh) | 一种应用程序的更新提示方法和装置 | |
CN104598463B (zh) | 用于切换数据库的方法和装置 | |
WO2017053892A1 (en) | Method and apparatus for transferring data between databases | |
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
CN108334515A (zh) | 一种处理崩溃文件中堆栈地址的方法、装置及系统 | |
CN105824849A (zh) | 一种数据导入方法及适配器 | |
CN106873960A (zh) | 一种应用软件的更新方法和设备 | |
CN108848244A (zh) | 一种分页显示的方法及装置 | |
TWI686703B (zh) | 資料儲存與業務處理的方法及裝置 | |
CN106326062A (zh) | 应用程序的运行状态控制方法和装置 | |
EP3640813A1 (en) | Random walk method, apparatus and device, and cluster-based random walk method, apparatus and device | |
CN108259526B (zh) | 一种数据传输方法和装置 | |
US20210073850A1 (en) | Redemption code distribution | |
CN110532243A (zh) | 数据处理方法、装置和电子设备 | |
CN109388425A (zh) | 一种前端工程的接口切换方法、系统、装置和存储介质 | |
CN106570029B (zh) | 分布式关系型数据库的数据处理方法及系统 | |
CN110069488A (zh) | 一种数据存储方法、数据读取方法及其装置 | |
US10552188B2 (en) | Virtual private cloud services with physical machine servers and virtual machines | |
CN110020114A (zh) | 数据查询的处理方法、装置及设备 | |
CN110489392A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |