CN117194383A - 数据库的隔离方法及装置、设备、存储介质 - Google Patents

数据库的隔离方法及装置、设备、存储介质 Download PDF

Info

Publication number
CN117194383A
CN117194383A CN202311245858.XA CN202311245858A CN117194383A CN 117194383 A CN117194383 A CN 117194383A CN 202311245858 A CN202311245858 A CN 202311245858A CN 117194383 A CN117194383 A CN 117194383A
Authority
CN
China
Prior art keywords
database
environment
access instruction
current service
preset
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
CN202311245858.XA
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.)
Shenzhen Hefei Technology Co ltd
Original Assignee
Shenzhen Hefei 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 Shenzhen Hefei Technology Co ltd filed Critical Shenzhen Hefei Technology Co ltd
Priority to CN202311245858.XA priority Critical patent/CN117194383A/zh
Publication of CN117194383A publication Critical patent/CN117194383A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据库的隔离方法及装置、设备、存储介质。本申请的技术方案中,电子设备拦截当前服务环境对应的数据库访问指令,其中,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库;然后在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行数据库访问指令,该预设数据库中的数据内容与目标数据库中的数据内容相同。本申请的数据库的隔离方法中,电子设备在当前服务环境为预发布环境的情况下,在预设数据库中执行数据库访问指令,这种方式可以使得预发布环境的数据库与生产环境的数据库保持一致,同时还能保证验收过程中的操作不污染实际生产环境的数据。

Description

数据库的隔离方法及装置、设备、存储介质
技术领域
本申请实施例涉及数据库技术领域,涉及但不限于一种数据库的隔离方法及装置、设备、存储介质。
背景技术
在日常研发生产过程中,项目的生产迭代必然会经历开发环境、测试环境、预发布环境,最终达到上线标准,发布生产环境,以供用户使用。其中,当在测试环境中所有的测试通过之后,则会进入预发布环境验收,预发布环境除了当前发布的服务跟线上有差异,其他资源几乎和生产环境完全一致。由于预发布环境下连接的也是生产环境的数据库,对于读操作而言,不会有任何的影响,但是对于写操作来说,就可能会出现污染生产数据的问题。
在目前相关技术中,为了保证实际生产的数据不被污染,常常通过切换数据源到另一套数据源下,在逻辑数据库(database,DB)层面进行数据的隔离。
然而,预发布环境是上线前的最后一站验证,是需要尽可能的保证除服务外的其他资源与生产的一致。而目前相关技术中这种切换数据源的方式实际上是没有达到这种要求的,本质上来说没有验证到生产的数据库集群。
因此,如何在预发布环境和生产环境数据库同源的情况下,保证不会污染生产环境的数据,是一个亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供的数据库的隔离方法及装置、设备、存储介质,能够在预发布环境和生产环境数据库同源的情况下,保证不会污染生产环境的数据。本申请实施例提供的数据库的隔离方法及装置、设备、存储介质是这样实现的:
本申请实施例提供数据库的隔离方法,所述方法包括:拦截当前服务环境对应的数据库访问指令,所述当前服务环境包括预发布环境或生产环境,所述数据库访问指令用于请求访问所述当前服务环境连接的目标数据库;在所述当前服务环境为所述预发布环境的情况下,在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,所述预设数据库中的数据内容与所述目标数据库中的数据内容相同。
本申请实施例提供的数据库的隔离装置,所述装置包括:拦截模块,用于拦截当前服务环境对应的数据库访问指令,所述当前服务环境包括预发布环境或生产环境,所述数据库访问指令用于请求访问所述当前服务环境连接的目标数据库;执行模块,用于在所述当前服务环境为所述预发布环境的情况下,在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,所述预设数据库中的数据内容与所述目标数据库中的数据内容相同。
本申请实施例提供的计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的数据库的隔离方法。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的数据库的隔离方法。
本申请实施例所提供的数据库的隔离方法、装置、计算机设备和计算机可读存储介质中,电子设备在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行数据库访问指令,这种方式可以使得预发布环境的数据库与生产环境的数据库保持一致,同时还能保证验收过程中的操作不污染实际生产环境的数据,解决背景技术中所提出的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请一个实施例提供的电子设备的系统架构的示意图;
图2为本申请一个实施例提供的数据库的隔离方法的实现流程示意图;
图3为本申请另一个实施例提供的数据库的隔离方法的实现流程示意图;
图4为本申请又一个实施例提供的数据库的隔离方法的实现流程示意图;
图5为本申请一个实施例提供的数据库的隔离装置的结构性示意图;
图6为本申请一个实施例提供的计算机设备的结构性示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”用以区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在日常研发生产过程中,项目的生产迭代必然会经历开发环境、测试环境、预发布环境,最终达到上线标准,发布生产环境,以供用户使用。其中,开发环境与测试环境是整个生产过程中相对靠前的流程,用于研发人员的开发和测试人员的检验测试,这里不再赘述。而当所有的漏洞(bug)修复完毕,测试通过之后,则会进入预发布环境验收。预发布环境是上线前的最后一个测试环节,除了当前发布的服务跟线上有差异,其他资源几乎和生产环境完全一致,包括数据库,硬件,网络等。
由于预发布环境下连接的也是生产环境的数据库,对于读操作而言,不会有任何的影响,但是对于写操作来说,就可能会出现污染生产数据的问题。
在目前相关技术中,在特定的业务场景下,为了保证实际生产的数据不被污染,常常通过切换数据源到另一套数据源下,在逻辑数据库(database,DB)层面进行数据的隔离。对于必要的可读数据,需要从生产的表中进行备份到新的数据源下的DB中,从而保证在预发布验证的过程中,尽可能的模拟生产的实际数据。
然而,预发布环境是上线前的最后一站验证,是需要尽可能的保证除服务外的其他资源与生产的一致。而目前相关技术中这种切换数据源的方式实际上是没有达到这种要求的,本质上来说没有验证到生产的数据库集群。另外,在大多数场景下,预发布环境的验收,需要有实际业务场景的真实可读数据。这就要求需要在新建的预发布数据库表中,对于需要的数据从生产环境进行拷贝。而生产数据库的资源本身就处于敏感且重要的生产资源,这种拷贝同步的方式也必须经过层层审批才能通过,且如果数据表较多,表之间关系较为复杂的情况下,这种方式又会显得十分繁琐,出错的概率也会增大。
因此,如何在预发布环境和生产环境数据库同源的情况下,保证不会污染生产环境的数据,是一个亟待解决的问题。
有鉴于此,本申请实施例提供一种数据库的隔离方法及装置、设备、存储介质,本申请的技术方案中,电子设备拦截当前服务环境对应的数据库访问指令,其中,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库;然后在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行数据库访问指令,该预设数据库中的数据内容与目标数据库中的数据内容相同。本申请的数据库的隔离方法中,电子设备在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行数据库访问指令,这种方式可以使得预发布环境的数据库与生产环境的数据库保持一致,同时还能保证验收过程中的操作不污染实际生产环境的数据。
应理解,本申请实施例涉及的电子设备可以是手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、智慧屏、人工智能(artificial intelligence,AI)音响、耳机、工业控制(industrial control)中的终端、无人驾驶(self driving)中的终端、远程手术(remote medical surgery)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smart home)中的终端、个人数字助理(personaldigital assistant,PDA)等,本申请实施例对此并不限定。
示例性地,图1为本申请一个实施例提供的电子设备的系统架构示意图。如图1所示,电子设备包括处理器110、存储器120、收发器130、显示单元140、输入单元150、传感器160、音频电路170以及电源模块180等部件。
处理器110是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器110可包括一个或多个处理单元;可选的,处理器110可集成应用处理器,应用处理器主要处理操作装置、用户界面和应用程序等,当然,还可以包括其他处理器,在此不一一列举。
存储器120可用于存储软件程序以及模块,处理器110通过运行存储在存储器120的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器120主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
收发器130可以提供应用在电子设备上的包括无线局域网(wireless local areanetworks,WLAN)(例如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。收发器130可以是集成至少一个通信处理模块的一个或多个器件,例如,将天线与基带处理器集成收发器130,或者,将天线和调制解调处理器集成收发器130等,在此不作限制。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种菜单。显示单元140可以采用液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置等,在此不作限制。
输入单元150可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元150可收集用户在其上或附近的操作,并根据预先设定的程式驱动相应的连接装置。此外,输入单元150中可以包括触控面板,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。除了触控面板,输入单元150还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于功能键(比如音量控制按键、开关按键等)、轨迹球、操作杆等中的一种或多种。
电子设备还可包括至少一种传感器160,比如陀螺仪传感器、运动传感器以及其他传感器。运动传感器可以包括加速度传感器,用于检测各个方向上加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用,例如横竖屏切换、相关游戏、磁力计姿态校准等;至于电子设备还可配置的压力计、气压计、湿度计、温度计、红外线传感器、指纹传感器等其他传感器,在此不再赘述。
音频电路170可以包括扬声器和传声器,可提供用户与电子设备之间的音频接口。音频电路170可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路170接收后转换为音频数据,再将音频数据输出处理器110处理后,经视频电路以发送给比如另一电子设备,或者将音频数据输出至存储器120以便进一步处理。
电子设备还包括给各个部件供电的电源模块180,可选的,电源模块180可以通过电源管理装置与处理器110逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。
尽管未示出,电子设备还可以包括摄像头。可选地,摄像头在电子设备上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
为了使本申请的目的、技术方案更加清楚直观,下面将结合附图及实施例,对本申请实施例提供的数据库的隔离方法及装置、设备、存储介质进行详细说明。应理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图2,为本申请一个实施例提供的数据库的隔离方法的实现流程示意图。该方法可以应用于如图1所示的电子设备,如图2所示,该方法可以包括以下步骤201和步骤202:
步骤201,拦截当前服务环境对应的数据库访问指令,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库。
应理解,预发布环境,就是线上环境、或者也可以称作生产环境为避免因为测试环境和线上环境的差异性等带来的缺陷漏测而设立的一套环境,其配置等基本和线上环境一致,只是预发布环境的全球广域网(web)服务器不在线上集成服务器的范围之内。生产环境就是指正式提供对外服务的环境。目标数据库指的是生产环境的数据库。
在一些实施例中,数据库访问指令可以是结构化查询语言数据库(structuredquery language,SQL)语句,也就是实际对数据库进行操作的语句,还可以是其他形式的指令,具体本申请对此不做限定。
在一些实施例中,拦截当前服务环境对应的数据库访问指令的拦截方法可以是使用过滤器、或创建自定义拦截器、或基于面向切面编程(aspect oriented programming,AOP)实现拦截器、以及使用一些持久层架构等,具体本申请对此不做限定。
需要说明的是,目标数据库为当前服务环境连接的数据库中的一个,每个数据库中包括至少一个数据表。
步骤202,在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行该数据库访问指令,该预设数据库中的数据内容与目标数据库中的数据内容相同。
在一些实施例中,电子设备可以在预发布环境搭建的时候,创建一个预设数据库,该预设数据库可以是对目标数据库进行复制得到的,也可以是根据目标数据库的相关配置文件重新生成的,还可以还通过其他方式得到的,具体本申请对此不做限定。
在另一些实施例中,预设数据库也可以是电子设备在判断当前服务环境为预发布环境后创建的,该预设数据库也可以是对目标数据库进行复制得到的,或者是根据目标数据库的相关配置文件重新生成的等,具体本申请对此不做限定。
可选地,在判断当前服务环境为预发布环境的情况下,则在预设数据库中执行该数据库访问指令;相应地,在判断当前服务环境不为预发布环境的情况下,例如为生产环境,则可以不做处理,直接在目标数据库中执行该数据库访问指令。
该实施例中,电子设备在当前服务环境为预发布环境的情况下,在与目标数据库对应的预设数据库中执行数据库访问指令,这种方式可以使得预发布环境的数据库与生产环境的数据库保持一致,同时还能保证验收过程中的操作不污染实际生产环境的数据。
基于上述实施例,图3为本申请另一个实施例提供的数据库的隔离方法的实现流程示意图,如图3所示,该方法可以包括以下步骤301至步骤303:
步骤301,通过拦截器提供的拦截接口,拦截当前服务环境对应的数据库访问指令。
其中,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库。
应理解,预发布环境,就是生产环境为避免因为测试环境和生产环境的差异性等带来的缺陷漏测而设立的一套环境,其配置等基本和生产环境一致,只是预发布环境的web服务器不在线上集成服务器的范围之内。生产环境就是指正式提供对外服务的环境。目标数据库指的是生产环境的数据库。
需要说明的是,目标数据库为当前服务环境连接的数据库中的一个,每个数据库中包括至少一个数据表。
在一些实施例中,数据库访问指令可以是SQL语句,也就是实际对数据库进行操作的语句,还可以是其他形式的指令,具体本申请对此不做限定。
在一些实施例中,拦截器可以使用MyBatis,MyBatis可以提供一个拦截接口interceptor,用于拦截该数据库访问指令。
应理解,MyBatis是一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的Java语言连接数据库(java database connectivity,JDBC)代码和手动设置参数以及获取结果集,可以使用简单的可扩展标记语言(eXtensibleMarkup Language,XML)或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOrdinary Java Object,普通的Java对象)映射成数据库中的记录。
还应理解,MyBatis允许在映射语句执行过程中的某一点进行拦截调用。
默认情况下,MyBatis允许使用插件来拦截的方法调用包括:
拦截执行器的方法:Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)。
拦截参数的处理方法:ParameterHandler(getParameterObject,setParameters)。
拦截结果集的处理方法:ResultSetHandler(handleResultSets,handleOutputParameters)。
拦截SQL语法构建的处理方法:StatementHandler(prepare,parameterize,batch,update,query)。
其中,拦截SQL语法构建的处理方法可以用来修改SQL语句、添加参数、记录日志等。
需要说明的是,本申请实施例中主要是以数据库访问指令为SQL语句,使用MyBatis对StatementHandler的prepare方法进行拦截,从StatementHandler对象中可以获取到待执行的SQL语句。
步骤302,在当前服务环境为预发布环境的情况下,判断数据库访问指令是否为写操作对应的指令。
应理解,由于预发布环境连接的是生产环境的数据库,对于读操作而言,不会有任何的影响,但是对于写操作来说,就可能会污染生产数据,因此,电子设备在当前服务环境为预发布环境的情况下,判断数据库访问指令所请求的操作是否包括写操作。
示例性地,写操作包括写数据、更新数据或者修改数据等。
步骤303,在数据库访问指令为写操作对应的指令的情况下,在预设数据库中执行数据库访问指令。
在一些实施例中,电子设备可以在预发布环境搭建的时候,创建一个预设数据库,该预设数据库可以是对目标数据库进行复制得到的,也可以是根据目标数据库的相关配置文件重新生成的,还可以还通过其他方式得到的,具体本申请对此不做限定。
在另一些实施例中,预设数据库也可以是电子设备在判断当前服务环境为预发布环境后创建的,该预设数据库也可以是对目标数据库进行复制得到的,或者是根据目标数据库的相关配置文件重新生成的等,具体本申请对此不做限定。
可选地,在判断数据库访问指令为写操作对应的指令的情况下,则在预设数据库中执行该数据库访问指令;相应地,在判断当前服务环境不为写操作对应的指令的情况下,例如为读操作,则可以不做处理,直接在目标数据库中执行该数据库访问指令。
该实施例中,电子设备利用MyBatis的插件能力,拦截当前服务环境对应的数据库访问指令,然后在当前服务环境为预发布环境,且数据库访问指令为写操作对应的指令的情况下,在预设数据库中执行数据库访问指令,这种方式可以避免生产环境中重要的且有写操作待验证的相关数据库被污染。
基于上述实施例,图4为本申请又一个实施例提供的数据库的隔离方法的实现流程示意图,如图4所示,该方法可以包括以下步骤401至步骤406:
步骤401,拦截当前服务环境对应的数据库访问指令,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库。
应理解,预发布环境,就是生产环境为避免因为测试环境和生产环境的差异性等带来的缺陷漏测而设立的一套环境,其配置等基本和生产环境一致,只是预发布环境的web服务器不在线上集成服务器的范围之内。生产环境就是指正式提供对外服务的环境。目标数据库指的是生产环境的数据库。
在一些实施例中,数据库访问指令可以是SQL语句,也就是实际对数据库进行操作的语句,还可以是其他形式的指令,具体本申请对此不做限定。
在一些实施例中,拦截当前服务环境对应的数据库访问指令的拦截方法可以是使用过滤器、或创建自定义拦截器、或基于面向切面编程(aspect oriented programming,AOP)实现拦截器、以及使用一些持久层架构等,具体本申请对此不做限定。
需要说明的是,目标数据库为当前服务环境连接的数据库中的一个,每个数据库中包括至少一个数据表。
步骤402,根据目标数据库中的数据内容以及预设的创建规则,创建预设数据库,该创建规则包括命名规则。
应理解,预设的创建规则指的是创建数据库的方法规则,例如预设数据库可以是对目标数据库的数据内容进行复制,然后结合命名规则得到的,也可以是根据目标数据库的相关配置文件重新生成的与目标数据库的数据内容一样的内容,然后结合命名规则得到的。
在一些实施例中,命名规则可以是在原来的数据库名字的基础上加上后缀,例如加“_pre”后缀,还可以是重新命名的一个全新的名字,或者还可以是其他方式,本申请对此不做限定。
需要说明的是,电子设备根据目标数据库中的数据内容以及预设的创建规则,创建预设数据库的步骤可以发生在电子设备拦截当前服务环境对应的数据库访问指令之后,也可以发生在电子设备搭建预发布环境的时候,本申请实施例中只是以发生在电子设备拦截当前服务环境对应的数据库访问指令之后为例进行说明的。
步骤403,在当前服务环境为预发布环境的情况下,获取数据库访问指令对应的执行语句,该执行语句包括目标数据库的标识信息。
在一些实施例中,电子设备在拦截了当前服务环境对应的数据库访问指令,以及创建好预设数据库之后,判断当前服务环境是否为预发布环境,若当前服务环境是预发布环境,则进一步获取数据库访问指令对应的执行语句,否则,不做任何处理,直接放行。
应理解,目标数据库的标识信息一般指的是数据库对应的标识符,它用于在数据库中识别和区分不同的对象。例如,标识信息可以包括数据库名、表名、列名等,本申请对此不做限定。
示例性地,在数据库访问指令为SQL语句的情况下,获取该SQL语句中所包括的目标数据库的标识信息,该标识信息可能是目标数据库对应的名称或者编号等。
步骤404,将执行语句中目标数据库的标识信息替换成预设数据库的标识信息,得到替换后的执行语句。
在一些实施例中,电子设备将获取到的执行语句中的目标数据库的标识信息进行替换,换成上述步骤中创建的预设数据库的标识信息。示例性地,可以将执行语句中的目标数据库的名称替换成预设数据库的名称,以得到替换后的执行语句。
步骤405,根据替换后的执行语句与预设数据库,执行数据库访问指令。
在一些实施例中,电子设备根据步骤404中得到的替换后的执行语句,在预设的数据库中,执行数据库访问指令,例如,对数据库中的数据进行增删改查等。这样,数据库访问指令所指示要执行的任务均发生在预设数据库中,不会污染目标数据库。
步骤406,删除预设数据库。
在一些实施例中,电子设备在预发布环境测试完成后,可以基于一定规则删除该预设数据库,例如在测试完成后就直接删除,或者在电子设备的内存达到预设存储值的时候删除,或者基于用户的选择删除等,以释放电子设备的存储空间。
该实施例中,电子设备首先拦截当前服务环境对应的数据库访问指令,当前服务环境包括预发布环境或生产环境,数据库访问指令用于请求访问当前服务环境连接的目标数据库,然后根据目标数据库中的数据内容以及预设的创建规则,创建预设数据库,进而在当前服务环境为预发布环境的情况下,获取数据库访问指令对应的执行语句,并将执行语句中目标数据库的标识信息替换成预设数据库的标识信息,得到替换后的执行语句,进一步根据替换后的执行语句与预设数据库,执行数据库访问指令,同时在预发布环境测试完成后,基于一定规则删除该预设数据库,以释放存储空间。该数据库的隔离方法中,电子设备在预设数据库中执行数据库访问指令,这种方式可以使得预发布环境的数据库与生产环境的数据库保持一致,同时还能保证验收过程中的操作不污染实际生产环境的数据。
综上所述,在版本迭代中上线预发布环境时,本申请实施例提供的数据库的隔离方法根据实际环境中的验收用例,对于有写操作需要验证,且不容许出现污染的数据库,与之匹配的建立对应的预设数据库,该预设数据库基于预设的创建规则,例如对原来的生产环境对应的数据库进行复制,并在原来的数据库名字的基础上加上“_pre”后缀,以此对这些重要的数据库进行预发布和生产环境的隔离。相应地,达到的效果是,所有的写操作都发生在预设数据库中,实际的生产环境对应的数据库不受影响,也不会被污染。
因此,本申请实施例提供的数据库的隔离方法对原有业务代码不存在任何侵入性,只需做插件的相关开发即可完成数据库级别的环境隔离,优化了目前相关技术中通过切换数据源到另一套数据源的弊端,采用了更加轻量化的库表级别的隔离,插件化的方式开发,实现更加简单,操作更加便捷;同时达成了预发布环境对于数据库层面的要求,和生环境保持一致的数据源,同时还能保证验收过程中的写操作不污染实际生产的数据。
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于前述的实施例,本申请实施例提供一种数据库的隔离装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本申请一个实施例提供的数据库的隔离装置的结构示意图,如图5所示,所述数据库的隔离装置500包括拦截模块501和执行模块502,其中:
拦截模块501,用于拦截当前服务环境对应的数据库访问指令,所述当前服务环境包括预发布环境或生产环境,所述数据库访问指令用于请求访问所述当前服务环境连接的目标数据库;执行模块502,用于在所述当前服务环境为所述预发布环境的情况下,在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,所述预设数据库中的数据内容与所述目标数据库中的数据内容相同。
在一些实施例中,所述数据库的隔离装置还包括:判断模块。判断模块,用于判断所述数据库访问指令是否为写操作对应的指令;所述执行模块502具体用于:在所述数据库访问指令为写操作对应的指令的情况下,在所述预设数据库中执行所述数据库访问指令。
在一些实施例中,所述拦截模块501具体用于:通过拦截器提供的拦截接口,拦截所述当前服务环境对应的数据库访问指令。
在一些实施例中,所述数据库的隔离装置还包括:创建模块。创建模块用于根据所述目标数据库中的数据内容以及预设的创建规则,创建所述预设数据库,所述创建规则包括命名规则。
在一些实施例中,所述执行模块502具体用于:获取所述数据库访问指令对应的执行语句,所述执行语句包括所述目标数据库的标识信息;将所述执行语句中所述目标数据库的标识信息替换成所述预设数据库的标识信息,得到替换后的执行语句;根据所述替换后的执行语句与所述预设数据库,执行所述数据库访问指令。
在一些实施例中,所述数据库的隔离装置还包括:删除模块。删除模块,用于删除所述预设数据库。
在一些实施例中,所述执行模块502还用于,在所述当前服务环境不为所述预发布环境的情况下,在与所述目标数据库中执行所述数据库访问指令。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中图5所示的数据库的隔离装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的方法中的步骤。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的资源池化装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成上述装置的各个程序模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象A和/或对象B,可以表示:单独存在对象A,同时存在对象A和对象B,单独存在对象B这三种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据库的隔离方法,其特征在于,包括:
拦截当前服务环境对应的数据库访问指令,所述当前服务环境包括预发布环境或生产环境,所述数据库访问指令用于请求访问所述当前服务环境连接的目标数据库;
在所述当前服务环境为所述预发布环境的情况下,在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,所述预设数据库中的数据内容与所述目标数据库中的数据内容相同。
2.根据权利要求1所述的方法,其特征在于,在所述在与所述目标数据库对应的预设数据库中执行所述数据库访问指令之前,所述方法还包括:
判断所述数据库访问指令是否为写操作对应的指令;
所述在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,包括:
在所述数据库访问指令为写操作对应的指令的情况下,在所述预设数据库中执行所述数据库访问指令。
3.根据权利要求1所述的方法,其特征在于,所述拦截当前服务环境对应的数据库访问指令,包括:
通过拦截器提供的拦截接口,拦截所述当前服务环境对应的数据库访问指令。
4.根据权利要求1所述的方法,其特征在于,在所述在与所述目标数据库对应的预设数据库中执行所述数据库访问指令之前,所述方法还包括:
根据所述目标数据库中的数据内容以及预设的创建规则,创建所述预设数据库,所述创建规则包括命名规则。
5.根据权利要求1所述的方法,其特征在于,所述在与所述目标数据块对应的预设数据库中执行所述数据库访问指令,包括:
获取所述数据库访问指令对应的执行语句,所述执行语句包括所述目标数据库的标识信息;
将所述执行语句中所述目标数据库的标识信息替换成所述预设数据库的标识信息,得到替换后的执行语句;
根据所述替换后的执行语句与所述预设数据库,执行所述数据库访问指令。
6.根据权利要求1所述的方法,其特征在于,在所述预设数据库中执行所述数据库访问指令之后,所述方法还包括:
删除所述预设数据库。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前服务环境不为所述预发布环境的情况下,在与所述目标数据库中执行所述数据库访问指令。
8.一种数据库的隔离装置,其特征在于,包括:
拦截模块,用于拦截当前服务环境对应的数据库访问指令,所述当前服务环境包括预发布环境或生产环境,所述数据库访问指令用于请求访问所述当前服务环境连接的目标数据库;
执行模块,用于在所述当前服务环境为所述预发布环境的情况下,在与所述目标数据库对应的预设数据库中执行所述数据库访问指令,所述预设数据库中的数据内容与所述目标数据库中的数据内容相同。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202311245858.XA 2023-09-25 2023-09-25 数据库的隔离方法及装置、设备、存储介质 Pending CN117194383A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311245858.XA CN117194383A (zh) 2023-09-25 2023-09-25 数据库的隔离方法及装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311245858.XA CN117194383A (zh) 2023-09-25 2023-09-25 数据库的隔离方法及装置、设备、存储介质

Publications (1)

Publication Number Publication Date
CN117194383A true CN117194383A (zh) 2023-12-08

Family

ID=88994247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311245858.XA Pending CN117194383A (zh) 2023-09-25 2023-09-25 数据库的隔离方法及装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN117194383A (zh)

Similar Documents

Publication Publication Date Title
US11288059B2 (en) Leveraging previously installed application elements to install an application
EP3884375B1 (en) Accelerating application and sub-package installations
CN111078556B (zh) 应用测试方法及装置
CN114694226B (zh) 一种人脸识别方法、系统及存储介质
JP2022505223A (ja) ユニバーサルガバナンス
US11580250B2 (en) Efficient traversal of hierarchical datasets
CN113760362A (zh) 应用程序的移植方法、装置、设备及介质
CN111563257A (zh) 数据检测方法及装置、计算机可读介质及终端设备
CN115576600A (zh) 基于代码变更的差异处理方法、装置、终端及存储介质
CN102214093A (zh) 向第三方应用的搜索扩展能力
CN115469937A (zh) 插件运行方法、装置、电子设备及存储介质
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN115061939B (zh) 数据集安全测试方法、装置及存储介质
CN117194383A (zh) 数据库的隔离方法及装置、设备、存储介质
CN110263006A (zh) 一种在用户设备上下载文件的方法与设备
CN115640567A (zh) Tee完整性认证方法、装置、系统及存储介质
US20220122038A1 (en) Process Version Control for Business Process Management
CN116028099A (zh) 一种安装包生成的方法及相关装置、设备和存储介质
CN111522798A (zh) 数据同步方法、装置、设备及可读存储介质
CN114490307A (zh) 一种单元测试方法、装置及存储介质
CN114385723A (zh) 数据读取方法、装置、电子设备及存储介质
CN105843651B (zh) 一种管理持续集成处理脚本的方法、装置和系统
US12013867B2 (en) Distributed data processing using embedded hermetic and deterministic language
US20240244059A1 (en) Methods And Systems For Memory Tracing In Asset Managing Systems
CN110442569B (zh) 在键值固态设备中进行数据分析的装置和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication