CN110471906B - 数据库切换方法、装置及设备 - Google Patents

数据库切换方法、装置及设备 Download PDF

Info

Publication number
CN110471906B
CN110471906B CN201910770726.6A CN201910770726A CN110471906B CN 110471906 B CN110471906 B CN 110471906B CN 201910770726 A CN201910770726 A CN 201910770726A CN 110471906 B CN110471906 B CN 110471906B
Authority
CN
China
Prior art keywords
database
data
switching
flow
indicating
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
Application number
CN201910770726.6A
Other languages
English (en)
Other versions
CN110471906A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910770726.6A priority Critical patent/CN110471906B/zh
Publication of CN110471906A publication Critical patent/CN110471906A/zh
Application granted granted Critical
Publication of CN110471906B publication Critical patent/CN110471906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F16/214Database migration support
    • 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
    • G06F16/275Synchronous replication

Landscapes

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

Abstract

本说明书提供一种数据库切换方法、装置及设备,数据库切换装置中包括数据同步模块、数据源路由模块和数据源切换模块,数据源切换模块能够用于根据数据源状态标识的指示执行对应的流程,包括:指示第一数据库的状态标所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;指示从第一数据库切换至第二数据库的状态标识的流程包括:业务处理路由至第一数据库后,停止执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;指示第二数据库的状态标识的流程包括:将业务处理路由至所述第二数据库,触发执行从第二数据库数据同步至第一数据库的流程。

Description

数据库切换方法、装置及设备
技术领域
本说明书涉及数据库技术领域,尤其涉及数据库切换方法、装置及设备。
背景技术
一些大型企业往往面临数据库切换的需求,例如,业务系统长期以来配置了某种类型的第一数据库进行数据管理,出于数据安全、数据处理效率、数据库运维成本等方面的考虑,业务方希望采用其他类型的第二数据库进行数据管理。基于此,该业务方需要将业务处理从第一数据库切换至第二数据库。
发明内容
为克服相关技术中存在的问题,本说明书提供了数据库切换方法、装置及设备。
根据本说明书实施例的第一方面,提供一种数据库切换装置,包括数据同步模块、数据源路由模块和数据源切换模块;
所述数据同步模块,用于:在第一数据库和第二数据库之间执行数据同步流程;
所述数据源路由模块,用于:确定数据源状态标识;
所述数据源切换模块,用于:根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程,包括:
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程。
可选的,所述指示第一数据库的状态标识,对应流程还包括:允许在所述第一数据库中执行所有类型的业务操作;和/或,
所述指示第二数据库的状态标识,对应流程还包括:允许在所述第二数据库中执行所有类型的业务操作。
可选的,所述停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,是在所述业务处理路由至第一数据库后的预设时间到达后执行。
可选的,还包括数据核对模块,用于:在所述数据源切换模块执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;
所述数据源切换模块用于:在所述数据核对模块核对通过后,执行与所述指示第二数据库的状态标识的对应流程。
可选的,所述数据源切换模块执行的流程还包括:
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
可选的,所述数据同步模块配置于数据同步中心DRC平台,所述数据同步模块执行的数据同步流程包括:通过解析数据操作的日志文件在第一数据库和第二数据库之间进行数据同步。
根据本说明书实施例的第二方面,提供一种数据库切换方法,包括:
确定数据源状态标识;
根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程,包括:
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程。
可选的,所述指示第一数据库的状态标识,对应流程还包括:允许在所述第一数据库中执行所有类型的业务操作;和/或,
所述指示第二数据库的状态标识,对应流程还包括:允许在所述第二数据库中执行所有类型的业务操作。
可选的,所述停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,是在所述业务处理路由至第一数据库后的预设时间到达后执行。
可选的,还包括:
在执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;
在所述数据核对模块核对通过后,执行与所述指示第二数据库的状态标识的对应流程。
可选的,所述执行与所述数据源状态标识对应的流程,还包括:
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如前述数据库切换方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,数据同步模块用于在第一数据库和第二数据库之间执行数据同步流程,数据源切换模块根据数据源路由模块确定的数据源状态标识的指示,执行与所述数据源状态标识对应的流程,实现了业务处理访问第一数据库、从第一数据库切换至第二数据库、业务处理访问第二数据库的流程。本说明书实施例通过数据同步模块、数据源路由模块和数据源切换模块三者的配合,无需引入其他额外的外部消息中心依赖,可以由服务器自行完成数据库切换,从而保证业务切换的稳定性,可以一次性将数据从源库迁移到目标库,同时还能实时同步保证数据一致性,可以满足快速切换数据库的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1A是本说明书根据一示例性实施例示出的一种实现数据库切换方案的应用场景示意图。
图1B是本说明书根据一示例性实施例示出的一种数据库切换装置的应用场景示意图。
图2A是本说明书根据一示例性实施例示出的从ORACLE库迁移到目标数据源OB库的示意图。
图2B是本说明书根据一示例性实施例示出的从第二数据库切换至第一数据库的示意图。
图2C是本说明书根据一示例性实施例示出的一种应对异常风险的示意图。
图3是本说明书数据库切换装置所在计算机设备的一种硬件结构图。
图4是本说明书根据一示例性实施例示出的一种数据库切换方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参阅图1A,图1A所示的是本说明书一示例性实施例示出的实现数据库切换方案的应用场景示意图。业务方配置了业务系统100,该业务系统100可以包括经由网络112与一个或多个客户端106进行数据通信的服务集群105,以及独立于服务集群105或集成于服务器105的数据库115、116。网络112可以包括例如互联网、内部网、外部网、广域网(WAN)、局域网(LAN)、有线网、无线网或其它合适的网络等,或者两个或更多个这类网络的任何组合。贯穿示例性实施方案的论述,应了解,术语“数据”和“信息”可在本说明书中互换地用于指代可存在于基于计算机的环境中的文本、图像、音频、视频或任何其它形式的信息。
服务器105上可以包括可商购获得的超文本传送协议(HTTP)服务器应用,如HTTP服务器、互联网信息服务(IIS)和/或其它服务器。
客户端106可以是安装有应用的网络装置。这里提到的应用可以是提供各种服务的业务系统涉及的应用,例如提供账务转入或转出服务的金融系统、提供通讯服务的通讯系统等,网络装置从硬件上可以包括桌上型计算机、膝上型计算机、平板计算机、智能电话、手持型计算机、个人数字助理(“PDA”),或任何其它有线或无线处理器驱动的装置。
一旦用户使用客户端106并通过网络112向服务器105发起注册请求,服务器105可以记录该用户的注册信息,并按照注册请求在运营服务器105中开设预置权限的账号。此外,可以存储有各用户注册的账户、各账户的各种密码(登录密码和/或业务处理密码等等)以及用户注册时上传的身份验证信息。
后续每次用户通过客户端106发起针对某个业务的业务处理,例如:业务数据访问请求、业务数据调取请求或业务数据修改请求等等,从而对服务器105发生访问时,服务器105基于每次业务请求中携带的用户ID之类的表明用户身份的标识,可以获知并记录这样的业务处理。特别的,可以记录该用户的请求时间,可选择的,也可以记录发起请求时的IP地址,或者所采用的网络装置的硬件类型,或者客户端版本/客户端所基于的操作系统版本之类信息中一个或多个。特别的,对于发生数据更新的业务请求,例如转入或转出资源的业务请求、修改业务状态的请求等,运营服务器105还可以记录该业务请求,并通过执行相应的内部或外部的操作后给予用户特定的响应。一般地,所有业务请求,均会在服务器105中留下相应记录。服务器105可以按照用户ID、业务描述信息等信息来分别归类不同用户的所有业务请求。对于交互行为的业务请求,例如不同注册用户之间的交互,也可以按照上述用户ID分类并构成集合等等。
服务器105可以用数据库115或数据库116来存储上述业务请求、响应该业务请求的操作以及该操作产生的业务数据,数据库115和数据库116可以是用于响应客户端106的业务请求的数据库。
针对数据库切换的应用场景,一些大型企业往往面临数据库切换的需求,例如,业务系统长期以来配置了某种类型的数据库(例如图1A中的数据库115)进行数据管理,出于数据安全、数据处理效率、数据库运维成本等方面的考虑,业务方希望采用其他类型的一个或多个数据库(本实施例以一个数据库为例进行说明,如图1A中的数据库116)进行数据管理。基于此,该业务方需要将业务处理从数据库115切换至数据库116。可选的,数据库115或数据库116可以是Oracle数据库、OceanBase数据库、MySQL数据库等等。本实施例中,为了便于说明,将业务方原使用的数据库称为第一数据库,将新使用的、待切换的数据库称为第二数据库。
如图1B所示,是本说明书根据一示例性实施例示出的一种数据库切换装置的应用场景示意图,该数据库切换装置用于将业务处理从访问第一数据库切换至访问第二数据库,所述装置包括数据同步模块、数据源路由模块和数据源切换模块。在一些例子中,上述装置的各个模块均可配置于业务系统所在的服务器集群中的各台服务器中,由各台服务器通过该数据库切换装置实现数据库切换。
所述数据同步模块120,用于:在第一数据库和第二数据库之间执行数据同步流程;
所述数据源路由模块140,用于:确定数据源状态标识;
所述数据源切换模块160,用于:根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程;其中,
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程。
本实施例中,由数据同步模块在第一数据库和第二数据库之间执行数据同步流程,用于同步两个数据库的数据,数据同步模块的同步流程可以在数据源切换之前执行,以在正式切换时使两个数据库的数据保持一致,确保业务能够从第一数据库正常切换至第二数据库进行处理,使两个数据库都拥有全量的数据。本实施例的数据同步模块可以利用已有的数据同步工具实现,例如DRC(Data Replication Center,数据同步中心),已有的DRC提供有TDDL(TDDL,Taobao Distributed Data Layer)数据迁移功能,用于解决分库分表对应用的透明化以及异构数据库之间的数据复制。该DRC平台可以实现全量数据迁移、增量数据迁移和一致性校验,且在数据延迟上能够做到秒级以内,同时还提供逆向同步能力,也就是数据的同步既可以从第一数据库迁移至第二数据库,还可以从第二数据库同步至第一数据库,可以在应用不停服的情况下,平滑地进行TDDL数据源的切换。本实施例的数据同步模块可配置于已有的数据同步中心DRC平台,在需要时通过触发数据同步模块执行数据同步流程,在一个可选的方式中,该流程可包括:通过解析数据操作的日志文件在第一数据库和第二数据库之间进行数据同步。
本说明书的一个实施例中,业务处理从访问第一数据库切换至访问第二数据库的过程中涉及到业务处理所访问的数据库的变化,为了使执行业务处理的服务器能够根据所访问的数据库的变化执行相应的流程,本实施例中可以由数据源切换模块确定数据源状态标识,该数据源状态标识表征在从访问第一数据库切换至访问第二数据库的过程中当前所处的状态节点,在该数据源状态标识的指示下,数据源切换模块可执行相应的流程。可选的,上述数据源状态标识可以由技术人员配置,也可以是根据某些条件自动触发,例如根据设定时间自动触发等等。数据源路由模块可根据实际的配置方式确定数据源状态标识,数据源切换模块,用于:根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程。
作为例子,数据源状态标识至少包括指示第一数据库的状态标识、指示从第一数据库切换至第二数据库的状态标识、以及指示第二数据库的状态标识,在另一些例子中,考虑到切换至第二数据库可能出现的数据错误等异常情况,需要切换回第一数据库,因此还可以包括指示从第二数据库切换回第一数据库的状态标识。其中,按照处理顺序,从未切换前至切换后的顺序可以是:指示第一数据库的状态标识(此时业务处理路由至第一数据库)、指示从第一数据库切换至第二数据库的状态标识(表示切换过程中),以及指示第二数据库的状态标识(表示业务处理路由至第二数据库,完成切换)。可选的,若出现错误需要切换回第一数据库,则从未切换前至切换后的顺序可以是:指示第二数据库的状态标识(表示业务处理路由至第二数据库)、指示从第二数据库切换回第一数据库的状态标识(表示切换过程中)、指示第一数据库的状态标识(此时业务处理路由至第一数据库)。基于此,数据源切换模块,可根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程。
在一个例子中,指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程。本实施例中,指示第一数据库的状态标识表示目前业务处理访问第一数据库,因此数据同步模块执行从第一数据库数据同步至第二数据库的流程,使第二数据库与第一数据库的数据保持一致,从而为后续的数据库切换做好数据准备。可选的,在当前状态中,由于第一数据库正常用于业务处理,可以允许在所述第一数据库中执行所有类型的业务操作。
接着,在需要执行数据库切换的条件下,可通过多种方式配置状态标识为指示从第一数据库切换至第二数据库的状态标识,使得服务器通过状态标识的获取,知晓当前准备进行数据库切换,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。在当前状态中需要执行数据库切换,为防止切换过程中对第一数据库写入数据,可通过禁止对所述第一数据库的数据写操作以防止数据错误。由于数据同步可能需要一定时间,可选的,可以配置一预设时间,该指示从第一数据库切换至第二数据库的状态标识配置后的预设时间到达后停止,也即在所述业务处理路由至第一数据库后的预设时间到达,才停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,使得第一数据库和第二数据库的数据同步能够顺利完成。
在数据同步停止后,需要将业务路由至第二数据库,使当前业务处理可正式访问第二数据库,数据源路由模块确定的状态标识可以为指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程。可选的,在当前状态中,还可允许在所述第二数据库中执行所有类型的业务操作。
由上述实施例可见,数据同步模块用于在第一数据库和第二数据库之间执行数据同步流程,数据源切换模块根据数据源路由模块确定的数据源状态标识的指示,执行与所述数据源状态标识对应的流程,实现了业务处理访问第一数据库、从第一数据库切换至第二数据库、业务处理访问第二数据库的流程。本说明书实施例通过数据同步模块、数据源路由模块和数据源切换模块三者的配合,无需引入其他额外的外部消息中心依赖,可以由服务器自行完成数据库切换,从而保证业务切换的稳定性,可以一次性将数据从源库(第一数据库)迁移到目标库(第二数据库),同时还能实时同步保证数据一致性,可以满足快速切换数据库的需求。
接下来再通过一实施例再次进行说明。本实施例的数据同步模块可以利用已有的数据同步工具实现,例如DRC(Data Replication Center,数据同步中心),已有的DRC提供有TDDL(TDDL,Taobao Distributed Data Layer)数据迁移功能,用于解决分库分表对应用的透明化以及异构数据库之间的数据复制。该DRC平台可以实现全量数据迁移、增量数据迁移和一致性校验,且在数据延迟上能够做到秒级以内,同时还提供逆向同步能力,也就是数据的同步既可以从第一数据库迁移至第二数据库,还可以从第二数据库同步至第一数据库,可以在应用不停服的情况下,平滑地进行TDDL数据源的切换。本实施例的数据同步模块可配置于已有的数据同步中心DRC平台,所述数据同步模块执行的数据同步流程包括:通过解析数据操作的binlog将数据在第一数据库和第二数据库之间进行同步。
本实施例中的数据源路由模块可以确定数据源状态标识,作为例子,技术人员可以通过既有的分布式资源管理平台(DRM)将针对数据源状态标识的配置推送到数据源路由模块,由数据源路由模块获取上述数据源状态标识。可选的,本实施例的数据源路由模块可配置于业务系统所在的各台集群服务器上,在数据源状态标识的指示下,业务系统可以在进行业务(交易、管理、查询、任务)的时候通过数据源路由模块确定的数据源状态标识决策是使用第一数据库还是第二数据库,同时数据源状态标识还指示了业务是否能够正常进行。
本实施例的数据源状态标识可以有两种大状态四种小状态,接下来以第一数据库为ORACLE,第二数据库为OB为例,两种大状态包括终态和中间态,其中,终态包括OB态和ORACLE态,分别表示业务路由到OB库和ORACLE库;中间态包括ORACLE-OB态和OB-ORACLE,分别表示从ORACLE切往OB的过程中和OB切往ORACLE的过程中。不同的状态路由选择有不同的结果:
ORACLE状态路由的数据库为ORACLE库,表示业务处理访问ORACLE库,同时所有数据操作都允许进行;
OB状态路由的数据库,表示业务处理访问OB库,同时所有的数据操作都允许进行;
ORACLE-OB状态路由的数据库为ORACLE,但是处于切换过程,只允许查询操作,而其他操作不允许;
OB-ORACLE状态路由的数据库为OB,但是处于切换过程,只允许查询操作,而其他操作不允许执行。
本说明书实施例中由数据同步模块实现了异构(OB、ORACLE)数据源的双向一致同步,本实施例可以由分布式资源管理平台DRM和数据源路由模块的配合实现了业务上的异构数据源的来回切换,接下来需要由数据源切换模块通过合理的数据源切换流程将业务从第一数据库(ORACLE)迁移到第二数据库(OB)。整个切换过程包括正常流程和异常流程,作为例子,本实施例的正常流程指ORACLE数据源迁移到目标数据源OB,异常流程是指在数据源切换到OB后如果发现有异常(例如逻辑bug,OB库异常等)需要将业务切换回ORACLE库。不论是异常流程还是正常流程流,都可以理解为包括三个阶段:迁移前、迁移中、迁移后。
如图2A所示,是本说明书根据一示例性实施例示出的从ORACLE库迁移到目标数据源OB库的示意图,迁移流程可以如下:
迁移前:数据源状态标识为ORACLE,该状态标识指示第一数据库,业务路由至ORACLE库,同时DRC进行正向数据同步,两个数据库的延迟在秒级以内。
迁移中:数据源状态标识为ORACLE-OB,该状态标识指示从第一数据库切换至第二数据库,业务路由至ORACLE库,同时禁止对ORACLE库的数据写操作(可选的,涉及数据写操作的请求,可以在切换至第二数据库后才开始被处理),允许对ORACLE库的读操作。
可选的,为了在迁移的过程中保证状态性数据的一致性,可选的,本实施例装置还可以包括数据核对模块,用于:在所述数据源切换模块执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;所述数据源切换模块用于:在所述数据核对模块核对通过后,执行与所述指示第二数据库的状态标识的对应流程。本实施例中,可以获取两个数据库的数据进行一致性的对比,对比通过后才将数据库切换至OB。其中,对比流程可以有多种方式实现,例如对比两个数据库的数据量是否相同,捞取两个数据库中处于某些时间段的数据,对捞取的两个数据库的数据一一进行对比,还可以是捞取两个数据库中某些用户账户的数据一一进行对比等,本实施例对此不作限定。本实施例的数据库切换可以实现实时同步,因此对于实际应用中两个数据库中一些特殊数据,例如账务场景中一些事务型写删数据,因为这些数据是在交易的事务内存在,交易完成后就会被删除,存活时间很短,而本实施例通过数据实时同步,在数据库切换的过程中可实时迁移到OB数据库中。
迁移后:数据源状态标识为OB,该状态标识指示第二数据库,业务处理路由到OB,同时触发从OB至ORACLE的逆向数据同步,两库的延迟保证在秒级以内。
在本说明书的一个实施例中,数据源切换过程中可能出现异常,需要执行从第二数据库切换回第一数据库的异常处理流程,如图2B所示,是本说明书根据一示例性实施例示出的从第二数据库切换至第一数据库的示意图,迁移流程可以如下:
迁移前:数据源状态标识为OB,该数据源状态标识指示第二数据库,此时业务处理路由到OB,同时DRC进行正向数据同步,两个数据库的延迟在秒级以内。
迁移中:数据源状态标识为OB-ORACLE,该数据源状态标识指示从第二数据库切换至第一数据库,这个时候业务处理路由到OB库,OB库的写操作全部是禁止的,只允许读操作。
迁移后:数据源状态标识为ORACLE,该数据源状态标识指示第一数据库,业务路由到ORACLE,同时DRC开启逆向数据同步,同时两库的延迟保证在秒级以内。
如图2C所示,是本说明书根据一示例性实施例示出的一种应对异常风险的示意图,整个切换过程可能存在异常风险,一方面是新接入的OB,其性能和容量能否满足原有的ORACLE业务,另一方面在整个数据库切换过程引入的新逻辑是否正确,最后也是最关键的是DRC数据同步的内容是否一致。针对这几个方面给出不同的方案进行保证。
在一些例子中,针对容量性能问题,可以在装置正式投入使用前进行测试,例如可以设置测试流量,该测试流量和正式流量分开设计,通过推送不同的开关可以将测试流量单独推到OB数据源,然后通过压测平台发起流量进行高于正常业务容量的指标进行压测,以保证OB库容量的稳定性。
针对代码质量问题,设计数据源状态标识的时候可以将单个账号(例如业务方内部的个人账号)推送到OB,然后以个人账号发起全量业务验证保证逻辑的正确性。
针对数据一致性问题,可以有几层核对的保证,首先是DRC本身会在迁移完成后进行全量和增量的数据一致性核对,其次业务还需要将两个库的数据同步到离线数据仓库对全量数据进行核对,对于增量通过t+m核对平台进行实时核对以保证数据一致。
本说明书数据库切换装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书数据库切换装置所在计算机设备的一种硬件结构图,除了图3所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
与前述数据库切换装置的实施例相对应,本说明书还提供了数据库切换方法及其所应用的设备的实施例。
如图4所示,图4是本说明书根据一示例性实施例示出的一种数据库切换方法的流程图,包括如下步骤:
在步骤402中,确定数据源状态标识;
在步骤404中,根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程,包括:
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程。
可选的,所述指示第一数据库的状态标识,对应流程还包括:允许在所述第一数据库中执行所有类型的业务操作;和/或,
所述指示第二数据库的状态标识,对应流程还包括:允许在所述第二数据库中执行所有类型的业务操作。
可选的,所述停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,是在所述业务处理路由至第一数据库后的预设时间到达后执行。
可选的,还包括:
在执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;
在所述数据核对模块核对通过后,执行与所述指示第二数据库的状态标识的对应流程。
可选的,所述执行与所述数据源状态标识对应的流程,还包括:
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
上述数据库切换方法中对应步骤的实现过程具体详见上述数据库切换装置各个模块的功能和作用的实现过程,在此不再赘述。
相应的,本说明书还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如前述数据库切换方法。
对于方法实施例而言,由于其基本对应于装置实施例,所以相关之处参见装置实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (11)

1.一种数据库切换装置,用于将业务系统的业务处理从访问旧的第一数据库切换至访问新的第二数据库,所述装置应用于业务系统所在的服务器集群中的各台服务器中,所述装置包括数据同步模块、数据源路由模块和数据源切换模块;
所述数据同步模块,用于:在第一数据库和第二数据库之间执行数据同步流程;
所述数据源路由模块,用于:确定数据源状态标识;其中,如果需要从第一数据库切换至第二数据库,确定出的数据源状态标识依次为:指示第一数据库的状态标识、指示从第一数据库切换至第二数据库的状态标识,以及指示第二数据库的状态标识;如果出现切换错误需要从第二数据库切换回第一数据库,确定出的数据源状态标识依次为:指示第二数据库的状态标识、指示从第二数据库切换回第一数据库的状态标识、指示第一数据库的状态标识;
所述数据源切换模块,用于:根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程,包括:
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,触发所述数据同步模块执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;其中,指示从第一数据库切换至第二数据库的状态标识对应的流程,是在所述从第一数据库数据同步至第二数据库的流程执行完成后执行的;所述数据写操作在切换至第二数据库后被处理;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,触发所述数据同步模块执行从第二数据库数据同步至第一数据库的流程;
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
2.根据权利要求1所述的装置,所述指示第一数据库的状态标识,对应流程还包括:允许在所述第一数据库中执行所有类型的业务操作;和/或,
所述指示第二数据库的状态标识,对应流程还包括:允许在所述第二数据库中执行所有类型的业务操作。
3.根据权利要求1所述的装置,所述停止所述数据同步模块执行从第一数据库同步至第二数据库的流程,是在所述业务处理路由至第一数据库后的预设时间到达后执行。
4.根据权利要求1所述的装置,还包括数据核对模块,用于:在所述数据源切换模块执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;
所述数据源切换模块用于:在所述数据核对模块核对通过后,执行与所述指示第二数据库的状态标识的对应流程。
5.根据权利要求1所述的装置,所述数据同步模块配置于数据同步中心DRC平台,所述数据同步模块执行的数据同步流程包括:通过解析数据操作的日志文件在第一数据库和第二数据库之间进行数据同步。
6.一种数据库切换方法,用于将业务系统的业务处理从访问旧的第一数据库切换至访问新的第二数据库,所述方法应用于业务系统所在的服务器集群中的各台服务器中,所述方法包括:
确定数据源状态标识;其中,如果需要从第一数据库切换至第二数据库,确定出的数据源状态标识依次为:指示第一数据库的状态标识、指示从第一数据库切换至第二数据库的状态标识,以及指示第二数据库的状态标识;如果出现切换错误需要从第二数据库切换回第一数据库,确定出的数据源状态标识依次为:指示第二数据库的状态标识、指示从第二数据库切换回第一数据库的状态标识、指示第一数据库的状态标识;
根据所述数据源状态标识的指示,执行与所述数据源状态标识对应的流程,包括:
指示第一数据库的状态标识,对应流程包括:将业务处理路由至所述第一数据库,执行从第一数据库数据同步至第二数据库的流程;
指示从第一数据库切换至第二数据库的状态标识,对应流程包括:业务处理仍路由至第一数据库,停止执行从第一数据库同步至第二数据库的流程,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作;其中,指示从第一数据库切换至第二数据库的状态标识对应的流程,是在所述从第一数据库数据同步至第二数据库的流程执行完成后执行的;所述数据写操作在切换至第二数据库后被处理;
指示第二数据库的状态标识,对应流程包括:将业务处理路由至所述第二数据库,执行从第二数据库数据同步至第一数据库的流程;
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
7.根据权利要求6所述的方法,所述指示第一数据库的状态标识,对应流程还包括:允许在所述第一数据库中执行所有类型的业务操作;和/或,
所述指示第二数据库的状态标识,对应流程还包括:允许在所述第二数据库中执行所有类型的业务操作。
8.根据权利要求6所述的方法,所述停止执行从第一数据库同步至第二数据库的流程,是在所述业务处理路由至第一数据库后的预设时间到达后执行。
9.根据权利要求6所述的方法,还包括:
在执行与所述指示从第一数据库切换至第二数据库的状态标识对应流程的过程中,对所述第一数据库和第二数据库的数据进行核对;
在核对通过后,执行与所述指示第二数据库的状态标识的对应流程。
10.根据权利要求6所述的方法,所述执行与所述数据源状态标识对应的流程,还包括:
指示从第二数据库切换回第一数据库的状态标识,包括:业务处理路由至第一数据库,禁止对所述第一数据库的数据写操作,允许对所述第一数据库的数据读操作。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求7至10任一所述的方法。
CN201910770726.6A 2019-08-20 2019-08-20 数据库切换方法、装置及设备 Active CN110471906B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910770726.6A CN110471906B (zh) 2019-08-20 2019-08-20 数据库切换方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910770726.6A CN110471906B (zh) 2019-08-20 2019-08-20 数据库切换方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110471906A CN110471906A (zh) 2019-11-19
CN110471906B true CN110471906B (zh) 2023-11-14

Family

ID=68513062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910770726.6A Active CN110471906B (zh) 2019-08-20 2019-08-20 数据库切换方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110471906B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026794A (zh) * 2019-11-26 2020-04-17 山东中创软件商用中间件股份有限公司 一种基于数据源的数据管理方法、装置、设备及介质
CN111090648B (zh) * 2019-12-07 2023-05-16 杭州安恒信息技术股份有限公司 一种关系型数据库数据同步冲突解决方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391758B (zh) * 2017-08-24 2020-08-04 阿里巴巴集团控股有限公司 数据库切换方法、装置及设备
CN109062727B (zh) * 2018-06-20 2023-04-14 平安科技(深圳)有限公司 一种数据同步系统及方法
CN109189851B (zh) * 2018-06-29 2021-06-01 网宿科技股份有限公司 数据访问方法、数据库设备以及主从数据库实例系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吕华辉 等.《高可用信息系统原理与设计基础》.上海交通大学出版社,2018,(第2018年11月第1版版),第138页. *

Also Published As

Publication number Publication date
CN110471906A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
US11693746B2 (en) Systems and methods for enabling a highly available managed failover service
US10565077B2 (en) Using cognitive technologies to identify and resolve issues in a distributed infrastructure
US10389704B1 (en) Cluster claim
CN107391758B (zh) 数据库切换方法、装置及设备
US10169167B2 (en) Reduced recovery time in disaster recovery/replication setup with multitier backend storage
US9779153B2 (en) Data transfer between storage systems using data fingerprints
US11366728B2 (en) Systems and methods for enabling a highly available managed failover service
RU2425414C2 (ru) Автоматизированная миграция состояния при развертывании операционной системы
US11709743B2 (en) Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
CN107580032B (zh) 数据处理方法、装置及设备
US20210157693A1 (en) Systems and methods for enabling a highly available managed failover service
US10467424B2 (en) File system content based security
EP3311272B1 (en) A method of live migration
CN110471906B (zh) 数据库切换方法、装置及设备
CN114629921A (zh) 云平台及其提供的对象存储服务的桶管理方法
CN106972962A (zh) 高可用集群的配置方法、装置及系统
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
JP2017167763A (ja) 情報処理装置、試験実行方法および試験実行プログラム
CN116204494B (zh) 活动目录数据迁移的方法和装置、电子设备和存储介质
CN107291575B (zh) 一种数据中心故障时的处理方法和设备
CN107480309A (zh) 数据库访问策略更新方法、装置、服务器及计算设备
CN115174158B (zh) 基于多云管理平台的云产品配置检查方法
US9378230B1 (en) Ensuring availability of data in a set being uncorrelated over time
CN114546591A (zh) 镜像文件共享方法、容器集群管理系统及相关设备
US9092397B1 (en) Development server with hot standby capabilities

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
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant