CN112749149A - 数据库切换方法和装置 - Google Patents

数据库切换方法和装置 Download PDF

Info

Publication number
CN112749149A
CN112749149A CN201911054901.8A CN201911054901A CN112749149A CN 112749149 A CN112749149 A CN 112749149A CN 201911054901 A CN201911054901 A CN 201911054901A CN 112749149 A CN112749149 A CN 112749149A
Authority
CN
China
Prior art keywords
database
switching
item
project
request
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
Application number
CN201911054901.8A
Other languages
English (en)
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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201911054901.8A priority Critical patent/CN112749149A/zh
Publication of CN112749149A publication Critical patent/CN112749149A/zh
Pending legal-status Critical Current

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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库切换方法和装置。该方法包括:接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定是否存在用于存储项目标识对应的项目数据的目标数据库;如果不存在,则创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库。通过本发明,达到了提高项目信息存储的灵活性的效果。

Description

数据库切换方法和装置
技术领域
本发明涉及数据库领域,具体而言,涉及一种数据库切换方法和装置。
背景技术
传统智能楼控系统一般都部署到客户本地,一套系统对应一个项目,即基本不区分项目,即使按项目区分,也是将所有项目的数据都存储在同一个数据库中,这种设计并不适用于将系统部署到云平台上的情况。部署到云平台的目的是为多个租户提供服务,各租户的设备数据都统一接入到云上的智能楼控系统中,所有数据都存储到一个数据库下显然是不可行的,数据库不分区,只使用一个数据库导致数据库安全无法得到保障。相关技术中也有一些使用多个数据库存储的方案,但这些数据库都是提前配置好的,数量固定,不能更改。
针对相关技术中数据库数量固定导致项目信息存储不灵活的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种数据库切换方法和装置,以解决数据库数量固定导致项目信息存储不灵活的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据库切换方法,该方法包括:接收数据库切换请求,所述数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定是否存在用于存储所述项目标识对应的项目数据的目标数据库;如果不存在,则创建所述目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库。
进一步地,所述方法还包括:如果存在所述目标数据库,则转入执行所述数据库切换操作的步骤;和/或,在确定是否存在用于存储所述项目标识对应的项目数据的目标数据库之前,所述方法还包括:获取已有项目的项目标识,并为每个所述已有项目创建对应的数据库;获取每个已有项目对应的数据库的数据库标识;创建每个所述已有项目的项目标识及对应的数据库标识之间的映射关系,并将所述映射关系存储至预先创建的映射表中。
进一步地,所述数据库切换请求中携带的项目标识还存储在线程局部变量对象中,在执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库之前,所述方法包括:确定所述目标数据库的数据库类型;根据所述目标数据库的数据库类型,确定用于存储所述项目标识的线程局部变量对象;将所述线程局部变量对象中的项目标识更改为所述目标数据库的项目标识,以在执行数据库切换操作时,将当前的数据库操作对象切换至所述目标数据库。
进一步地,所述数据库的类型包括:MongoDB、Mysql、SQL Server和Oracle中的至少一种。
进一步地,所述数据库切换请求包括:http请求,或者,预先订阅的消息中的至少一种。
进一步地,当所述数据库切换请求为http请求时,在收到所述http请求后,所述方法还包括:获取网关服务器中记录的项目标识,所述网关服务器在每次进行项目切换时,记录项目标识;将所述项目标识添加至所述http请求的请求头中,并将所述http请求的请求头中的项目标识信息存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从所述线程局部变量对象中获取所述项目标识。
进一步地,当所述数据库切换请求为预先订阅的消息时,在接收到所述预先订阅的消息后,所述方法还包括:从所述预先订阅的消息中解析出项目标识,所述预先订阅的消息中存储有需要调用的项目标识;将所述项目标识存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从所述线程局部变量对象中获取所述项目标识。
为了实现上述目的,根据本发明的另一方面,还提供了一种数据库切换装置,该装置包括:接收单元,用于接收数据库切换请求,所述数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定单元,用于确定是否存在用于存储所述项目标识对应的项目数据的目标数据库;处理单元,用于在不存在时,创建所述目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库。
为了实现上述目的,根据本发明的另一方面,还提供了一种存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行本发明所述的数据库切换方法。
为了实现上述目的,根据本发明的另一方面,还提供了一种设备,至少包括一个处理器,以及与所述处理器连接的至少一个存储器、总线,其中,所述处理器、所述存储器通过所述总线完成相互间的通信,所述处理器用于调用所述存储器中的程序指令,以执行本发明所述的数据库切换方法。
本发明通过接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定是否存在用于存储项目标识对应的项目数据的目标数据库;如果不存在,则创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库,解决了数据库数量固定导致项目信息存储不灵活的问题,进而达到了提高项目信息存储的灵活性的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据库切换方法的流程图;
图2是根据本发明实施例的数据库切换装置的示意图;以及
图3是根据本发明实施例的设备框图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种数据库切换方法。
图1是根据本发明实施例的数据库切换方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102:接收数据库切换请求,所述数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;
步骤S104:确定是否存在用于存储所述项目标识对应的项目数据的目标数据库;
步骤S106:如果不存在,则创建所述目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库。
该实施例采用接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定是否存在用于存储项目标识对应的项目数据的目标数据库;如果不存在,则创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库,解决了数据库数量固定导致项目信息存储不灵活的问题,进而达到了提高项目信息存储的灵活性的效果。
本发明实施例的技术方案可以应用于按项目隔离数据的数据库操作中,例如项目1对应数据库1,项目1的相关信息都存储在数据库1中,项目1的租户要写入数据到数据库1中时,通过数据库切换请求确定对应的项目信息,根据项目标识判断该项目是否已经有数据库,如果已经有,则切换到对应的目标数据库进行数据操作,如果没有,则新建该项目对应的数据库,切换到对应的数据库后即可操作对应的数据库。这样可以实现动态切换数据库分库操作数据,提高了项目信息存储的灵活性和数据的安全性。
在确定是否存在用于存储项目标识对应的项目数据的目标数据库之前,获取已有项目的项目标识,并为每个已有项目创建对应的数据库;获取每个已有项目对应的数据库的数据库标识;创建每个已有项目的项目标识及对应的数据库标识之间的映射关系,并将映射关系存储至预先创建的映射表中。
本实施例中数据库的类型可以是MongoDB、Mysql、SQL Server和Oracle中的至少一种,每个项目都有项目标识,通过获取每个已有项目对应的数据库的数据库标识,创建项目和数据库之间的映射关系,并在映射表中保存映射关系,以备后续查找与项目对应的数据库。
需要说明的是,本发明实施例提供的方法,原则上可以在任意类型的数据库之间进行切换,与现有技术中只能在单一类型的数据库之间切换的方式相比,有效增加了所支持的数据库类型。
可选地,数据库切换请求中携带的项目标识除了在切换请求中携带,还存储在线程局部变量对象中,在执行数据库切换操作将当前的数据库操作对象切换至目标数据库之前,需要先确定目标数据库的数据库类型;根据目标数据库的数据库类型,确定用于存储项目标识的线程局部变量对象;不同的数据库的线程局部变量对象不同,将线程局部变量对象中的项目标识更改为目标数据库的项目标识,以在执行数据库切换操作时,将当前的数据库操作对象切换至目标数据库。
以数据库为MongoDB(以下也称MongoDatabase)为例,通过更改存储在Threadlocal对象中的项目信息可以实现切库操作,通过将存储在Threadlocal对象中的项目信息更改为待操作的数据库的项目信息实现切库。
在为一个项目建立新数据库之后,需要根据该项目信息创建对应于数据库的MongoDatabase对象,将创建的MongoDatabase对象添加到Map中,将每次请求的项目信息存储到Threadlocal对象中,这样,可以通过更改Threadlocal对象中的项目信息找到对应的数据库。
可选地,数据库切换请求包括:http请求,或者,预先订阅的消息中的至少一种。
需要说明的是,本实施例的切换请求有http请求或订阅消息2种,当收到http请求时,把项目标识添加到http请求头中,同时再存到线程局部变量对象中。
当数据库切换请求为http请求时,在收到http请求后,获取网关服务器中记录的项目标识,网关服务器在每次进行项目切换时,记录项目标识;将项目标识添加至http请求的请求头中,并将http请求的请求头中的项目标识信息存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从线程局部变量对象中获取项目标识。
可选地,当数据库切换请求为预先订阅的消息时,在接收到预先订阅的消息后,从预先订阅的消息中解析出项目标识,预先订阅的消息中存储有需要调用的项目标识;将项目标识存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从线程局部变量对象中获取项目标识。
切库的应用场景有两种,一种是接收到http请求时,一种是消费消息队列消息时,需要做分别处理。
接收到http请求时的处理方法:
http请求方式会在网关层统一做处理,即某个会话切换项目时网关服务记录下切换的项目信息,该会话在访问其他http请求时,都会经过网关,网关服务负责在请求头中加上项目信息,引入切库模块的服务接收到请求时,首先进入切库模块中的过滤器配置,即将请求头中的信息添加到Threadlocal中,实现自动切库。
接收到消息时的处理方法:
当调用由接收到订阅的消息来触发时,首先从消息中解析出项目信息,然后手动将项目信息添加到Threadlocal中,实现自动切库。
本实施例通过按项目分库存储数据、动态切换数据库,能够将各租户业务数据分开存储和处理,隔离数据保障数据安全。
本发明实施例还提供了一种优选实施方式,下面结合该优选实施方式进行说明。
智能楼控系统在为多租户提供服务时,需要将各租户业务数据分开存储,隔离数据保障数据安全,本实施例旨在解决如何按项目隔离数据以及使用系统时如何根据用户请求信息自动切换到正确的数据库获取信息。
本实施例的实现目标是:开发出适用于多种数据库(包括monggodb、mysql、sqlserver、oracle等mybatis支持的数据库)自动切库的通用模块,然后所有使用数据库的其他模块引入该模块,进行简单配置、无需改动代码即实现自动切换数据库。
1)开发动态切换数据库通用模块
采用继承MongoClient类,重写getDatabase()方法实现,不同项目创建不同的MongoDatabase对象并添加到Map中,并将每次请求的项目信息(即数据库名称)存储在Threadlocal对象中,当要操作数据库时,通过在getDatabase()方法,获取对应项目的MongoDatabase对象,从而实现切换数据库,因此要切换数据库,只需要更改存储在Threadlocal对象中的项目信息即可。
2)引入切库模块
凡是使用到数据库的模块都要引入上述的切库模块,只需简单两步配置即可:
在pom文件中引入切库模块,代码如下:
Figure BDA0002256288860000061
在启动类上增加扫描路径和关闭spring的数据源自动配置:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@ComponentScan(basePackages={"com.gridsum.databaseseparate"})
3)切库的应用场景
本实施例中会在两种场景下触发切库操作,一种是接收到http请求时,一种是收到消息队列消息时,需要做分别处理。
接收到http请求时的处理方法:
http请求方式会在网关层统一做处理,即某个会话切换项目时网关服务记录下切换的项目信息,该会话在访问其他http请求时,都会经过网关,网关服务负责在请求头中加上项目信息,引入切库模块的服务接收到请求时,首先进入切库模块中的过滤器配置,即将请求头中的信息添加到Threadlocal中,实现自动切库。
接收到消息时的处理方法:
当调用由接收到订阅的消息来触发时,首先从消息中解析出项目信息,然后手动将项目信息添加到Threadlocal中,实现自动切库。
本实施例通过动态切库技术实现智慧楼宇不同项目之间的数据隔离,解决了数据库数量固定导致项目信息存储不灵活的问题,进而达到了提高项目信息存储的灵活性的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种数据库切换装置,该装置可以用于执行本发明实施例的数据库切换方法。
图2是根据本发明实施例的数据库切换装置的示意图,如图2所示,该装置包括:
接收单元10,用于接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;
确定单元20,用于确定是否存在用于存储项目标识对应的项目数据的目标数据库;
处理单元30,用于在不存在时,创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库。
该实施例采用接收单元10,用于接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定单元20,用于确定是否存在用于存储项目标识对应的项目数据的目标数据库;处理单元30,用于在不存在时,创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库,从而解决了数据库数量固定导致项目信息存储不灵活的问题,进而达到了提高项目信息存储的灵活性的效果。
数据库切换装置包括处理器和存储器,上述接收单元、确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高项目信息存储的灵活性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据库切换方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据库切换方法。
本发明实施例提供了一种设备,如图3所示,本发明实施例提供了一种设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的数据库切换方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收数据库切换请求,数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;确定是否存在用于存储项目标识对应的项目数据的目标数据库;如果不存在,则创建目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至目标数据库。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据库切换方法,其特征在于,包括:
接收数据库切换请求,所述数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;
确定是否存在用于存储所述项目标识对应的项目数据的目标数据库;
如果不存在,则创建所述目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果存在所述目标数据库,则转入执行所述数据库切换操作的步骤;
和/或,
在确定是否存在用于存储所述项目标识对应的项目数据的目标数据库之前,所述方法还包括:
获取已有项目的项目标识,并为每个所述已有项目创建对应的数据库;
获取每个已有项目对应的数据库的数据库标识;
创建每个所述已有项目的项目标识及对应的数据库标识之间的映射关系,并将所述映射关系存储至预先创建的映射表中。
3.根据权利要求1所述的方法,其特征在于,所述数据库切换请求中携带的项目标识还存储在线程局部变量对象中,在执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库之前,所述方法包括:
确定所述目标数据库的数据库类型;
根据所述目标数据库的数据库类型,确定用于存储所述项目标识的线程局部变量对象;
将所述线程局部变量对象中的项目标识更改为所述目标数据库的项目标识,以在执行数据库切换操作时,将当前的数据库操作对象切换至所述目标数据库。
4.根据权利要求3所述的方法,其特征在于,所述数据库的类型包括:
MongoDB、Mysql、SQL Server和Oracle中的至少一种。
5.根据权利要求1所述的方法,其特征在于,所述数据库切换请求包括:http请求,或者,预先订阅的消息中的至少一种。
6.根据权利要求5所述的方法,其特征在于,当所述数据库切换请求为http请求时,在收到所述http请求后,所述方法还包括:
获取网关服务器中记录的项目标识,所述网关服务器在每次进行项目切换时,记录项目标识;
将所述项目标识添加至所述http请求的请求头中,并将所述http请求的请求头中的项目标识信息存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从所述线程局部变量对象中获取所述项目标识。
7.根据权利要求5所述的方法,其特征在于,当所述数据库切换请求为预先订阅的消息时,在接收到所述预先订阅的消息后,所述方法还包括:
从所述预先订阅的消息中解析出项目标识,所述预先订阅的消息中存储有需要调用的项目标识;
将所述项目标识存储至对应的线程局部变量对象中,以便在执行数据库切换操作时,从所述线程局部变量对象中获取所述项目标识。
8.一种数据库切换装置,其特征在于,包括:
接收单元,用于接收数据库切换请求,所述数据库切换请求中携带有项目标识,每个项目标识对应的项目数据存储在一个数据库中;
确定单元,用于确定是否存在用于存储所述项目标识对应的项目数据的目标数据库;
处理单元,用于在不存在时,创建所述目标数据库,并执行数据库切换操作,将当前的数据库操作对象切换至所述目标数据库。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的数据库切换方法。
10.一种设备,其特征在于,所述设备至少包括一个处理器,以及与所述处理器连接的至少一个存储器、总线,其中,所述处理器、所述存储器通过所述总线完成相互间的通信,所述处理器用于调用所述存储器中的程序指令,以执行权利要求1至7中任意一项所述的数据库切换方法。
CN201911054901.8A 2019-10-31 2019-10-31 数据库切换方法和装置 Pending CN112749149A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911054901.8A CN112749149A (zh) 2019-10-31 2019-10-31 数据库切换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911054901.8A CN112749149A (zh) 2019-10-31 2019-10-31 数据库切换方法和装置

Publications (1)

Publication Number Publication Date
CN112749149A true CN112749149A (zh) 2021-05-04

Family

ID=75645514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911054901.8A Pending CN112749149A (zh) 2019-10-31 2019-10-31 数据库切换方法和装置

Country Status (1)

Country Link
CN (1) CN112749149A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052393A (ja) * 2006-08-23 2008-03-06 Toto Ltd 賃貸住宅入居者支援システム
CN105824625A (zh) * 2016-03-14 2016-08-03 北京中电普华信息技术有限公司 一种基于云环境的业务应用构造装置及方法
CN110163002A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 一种SaaS软件租户数据隔离的方法
CN110209438A (zh) * 2019-06-04 2019-09-06 武汉神算云信息科技有限责任公司 SpringBoot框架下数据源动态切换方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052393A (ja) * 2006-08-23 2008-03-06 Toto Ltd 賃貸住宅入居者支援システム
CN105824625A (zh) * 2016-03-14 2016-08-03 北京中电普华信息技术有限公司 一种基于云环境的业务应用构造装置及方法
CN110163002A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 一种SaaS软件租户数据隔离的方法
CN110209438A (zh) * 2019-06-04 2019-09-06 武汉神算云信息科技有限责任公司 SpringBoot框架下数据源动态切换方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
醉生浮屠: "springboot 多源数据库切换", pages 1 - 7, Retrieved from the Internet <URL:https://blog.csdn.net/baidu_23263735/article/details/102505242> *

Similar Documents

Publication Publication Date Title
CN109669709B (zh) 一种区块链升级的数据迁移方法及数据迁移系统
CN110287197B (zh) 一种数据存储方法、迁移方法及装置
CN110909373B (zh) 一种访问控制方法、设备、系统及存储介质
CN108268609B (zh) 一种文件路径的建立、访问方法和装置
CN109412875B (zh) zookeeper集群自动维护方法及装置
CN108134812B (zh) 数据处理方法和装置
CN109561128B (zh) 数据传输方法和装置
US11283892B1 (en) Dynamic grouping of device representations
CN110888922B (zh) 一种数据同步时目标表的创建方法及装置
CN112579118A (zh) 微服务的配置信息更新方法、装置、系统、介质和设备
CN108124021B (zh) 网际协议ip地址获取、网站访问的方法、装置及系统
CN112749149A (zh) 数据库切换方法和装置
CN112559118A (zh) 应用数据迁移方法、装置、电子设备及存储介质
US20230161634A1 (en) Mapping an application signature to designated cloud resources
CN112328363B (zh) 一种云硬盘挂载方法及其装置
CN111491021B (zh) 分布式集群的许可数据处理方法和装置
CN107368486B (zh) 一种业务迁移方法及装置
CN115134373A (zh) 数据同步方法、装置、存储介质及电子设备
CN111221651B (zh) 负载均衡配置方法、装置、服务器及可读存储介质
CN110971642B (zh) 云计算平台数据处理方法和装置
CN106681771B (zh) 一种系统重装方法及装置
CN112749189A (zh) 数据查询方法及装置
CN110968599B (zh) 一种基于Impala的查询方法和装置
CN111797070A (zh) 票务数据处理方法及装置
CN111049671A (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