CN116149712A - 一种数据库版本更新兼容匹配方法 - Google Patents
一种数据库版本更新兼容匹配方法 Download PDFInfo
- Publication number
- CN116149712A CN116149712A CN202310346982.9A CN202310346982A CN116149712A CN 116149712 A CN116149712 A CN 116149712A CN 202310346982 A CN202310346982 A CN 202310346982A CN 116149712 A CN116149712 A CN 116149712A
- Authority
- CN
- China
- Prior art keywords
- database
- upgrade server
- time
- tgapseq
- test
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数据库技术领域,本发明提供一种数据库版本更新兼容匹配方法,通过各个升级服务器接收数据库更新请求,验证数据库版本号后各个升级服务器进行升级数据库,依次计算各个升级服务器的测试线程延长时刻;当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容。能够精准的获得数据库测试脚本的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,使得测试线程延长时刻定位的测试线程生命周期结束的预期时间更加稳定和准确,从而判断数据库是否兼容,能够提高测试线程延长时刻计算的速度,系统资源的占用率低。
Description
技术领域
本发明属于数据库技术领域,具体涉及一种数据库版本更新兼容匹配方法。
背景技术
目前,由于在数据库升级后,如果数据库版本和本机中的部分应用程序或服务无法兼容,从而使得部分应用程序或服务可能无法正常运行,因为新版本数据库与旧版本应用程序或服务之间的接口、数据结构或语法等方面发生了变化。并在数据库升级过程中,在数据备份、恢复、迁移等环节中可能存在数据丢失、损坏或不一致的情况,导致应用程序或服务无法访问或操作部分数据,从而影响数据完整性和数据库的性能,兼容性低的数据库会导致线程处于长时间的阻塞状态甚至线程死锁带来的响应时间增加或者超时。
为了保证数据库版本升级过程中的数据安全性和程序兼容性,现有的技术例如公开号为CN111736865A的发明专利申请,通过扫描预设目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和回滚脚本;运行数据库升级脚本升级目标数据库,执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试:若测试成功,则目标数据库升级成功,本次升级结束;若测试失败,则输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,尽管能够通过业务测试脚本和回滚脚本对数据库进行操作,但是如果升级失败无法回滚或者兼容性低,数据库升级太过于依赖相关脚本,并且无法识别新版本是否和原版本的数据库是否兼容。
发明内容
本发明的目的在于提出一种数据库版本更新兼容匹配方法,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
为了实现上述目的,根据本发明的一方面,提供一种数据库版本更新兼容匹配方法,所述方法包括以下步骤:
S100,由多个数据库服务器相互连接成为待升级网络,以其中任意一台数据库服务器标记为备份服务器,其他服务器标记为升级服务器;
S200,各个升级服务器接收数据库更新请求,所述数据库更新请求包括更新后的数据库的版本号;
S300,记各个升级服务器接收到的数据库更新请求中的数据库的版本号为待升级版本号;记升级服务器中现有数据库的版本号为现有版本号;以低于升级版本号的各个现有版本号对应的升级服务器为更新服务器,各个更新服务器备份数据库镜像到备份服务器中;
S400,各个升级服务器进行升级数据库;
S500,升级数据库完成后,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试,依次计算各个升级服务器的测试线程延长时刻;
S600,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容,并且从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器。
进一步地,在S100中,升级网络还包括:Web服务器、安装有数据库管理系统DBMS的服务器、安装有后台管理系统的应用程序服务器。
其中,所述应用程序服务器是联系Web服务器与DBMS的中间件,用于在web服务器和后台的应用程序或数据库之间的事务处理和数据访问。
其中,测试脚本包括多个对数据库的增加表指令、删除表指令、修改表指令、查询表指令中任意一种或多种的指令组合构成的脚本。
其中,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试时,测试脚本中的每个对数据库的指令操作的指令流形成一个线程。
优选地,每个线程的运行时长不高于线程池参数所预设的非核心线程闲置超时时长。
进一步地,在S400中,各个升级服务器进行升级数据库的方法为:
获取数据库的升级安装包;
获取数据库所在升级服务器的环境变量配置信息;
根据获得的环境变量配置信息获取数据库的安装目录的路径信息;
根据安装目录的路径信息找到安装目录;
删除升级服务器中的数据库的安装目录;获取升级安装包的配置文件;配置文件包括参数文件、监听文件、数据文件和数据库授权文件;
将获得的配置文件拷贝到安装目录所在的路径下;
根据所述路径下的配置文件和所述目录生成升级后的数据库;其中,所述配置文件和所述目录中包含有所述升级后的数据库所有需要的文件,当获得了所述配置文件和所述目录,并运行所述目录中的可执行文件生成所述升级后的数据库。
优选地,所述数据库为Mysql数据库、oracle11g数据库、SQLServer数据库中任意一种。
进一步地,在S500中,计算各个升级服务器的测试线程延长时刻的方法为:
依次计算各个升级服务器执行测试脚本对数据库进行测试的稳态时间时段,具体为:
获取依次获取各个升级服务器执行测试脚本时各个线程的指令流的执行时间,按照先后顺序将各个执行时间依次排列成序列记为ThSeq;
依次由ThSeq中相邻的元素两两之间的大于0的差值构成的序列作为线程时变序列TGapSeq;(序列TGapSeq中每个差值的变化表示了测试脚本对数据库进行测试中延迟的变化,在新版本数据库与旧版本应用程序或服务之间的接口、数据结构或语法等方面发生了变化后,序列TGapSeq中的差值在发生变化导致的存在数据丢失、损坏或不一致的情况的不兼容位置导致线程对数据库进行操作时产生的较大延时(线程处于长时间的阻塞状态甚至线程死锁带来的响应时间增加或者超时),这些不兼容位置在线程访问时产生的执行时间差值变化趋势会远大于兼容的位置);
记TGapSeq(h)为序列TGapSeq中的第h个元素,其中,h为TGapSeq中元素的序号;
在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)>TGapSeq(h+1)且TGapSeq(h)>TGapSeq(h-1)时,记此时的序号h为极大值序号Maxh;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)<TGapSeq(h+1)且TGapSeq(h)<TGapSeq(h-1)时,记此时的序号h为极小值序号Minh;(极大值序号Maxh是TGapSeq中差值首次递增的衰减时间,极小值序号Maxh是TGapSeq中差值首次衰减的拐点时间,这两个时间之间的时间段,即稳态时间时段能够表示出测试脚本对数据库进行测试中线程时间的最稳定时段,用以在后续的测试线程延长时刻的计算中以准确的估计出这个时刻的大致时间);
以差值TGapSeq(Maxh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimA;以差值TGapSeq(Minh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimB;取TimA到TimB之间的时间段为稳态时间时段steadT;
计算升级服务器的测试线程延长时刻为:以TimA和TimB中最晚的时间为TS;取TS+steadT为测试线程延长时刻。
由于稳态时间时段是升级服务器的数据库测试脚本的所有线程的生命周期中运行最稳定的时段,根据稳态时间时段计算得到的测试线程延长时刻则能够准确的提供一个升级服务器的中测试线程生命周期结束的预期时间,能够精准的获得数据库测试脚本的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,但是在测试后期,会有一些由于数据库的更新后不兼容导致的未达到闲置超时时长的阻塞等待线程导致的线程结束时间延长(直观的表现为线程处于长时间的阻塞状态甚至线程死锁带来的响应时间增加或者超时),从而会产生数据库脚本测试初期服务器充分的系统资源对于测试线程生命周期结束的并发调度产生较大的时延误差,进而使得测试线程延长时刻产生较大的偏差;为解决该问题,本发明提供了以下计算升级服务器的测试线程延长时刻的方法:
优选地,计算升级服务器的测试线程延长时刻的方法还可以为:
记TimA和TimB中最晚的时间为TS;计算升级服务器的测试线程延长时刻extT:
extT=TS+steadT×ln|(TGapSeq(Maxh)-TSeqMean)÷(TGapSeq(Maxh)-TSeqMean)|;
TSeqMean是序列TGapSeq中各个元素的平均值,ln是取自然对数。
以上方法通过乘以序列TGapSeq的极限差值比值的自然对数从而去除了阻塞等待线程在数据库的更新后不兼容导致的阻塞等待线程导致的线程结束时间延长,使得测试线程延长时刻定位的测试线程生命周期结束的预期时间更加稳定和准确,从而进一步判断数据库是否兼容,该方法计算简单,能够提高测试线程延长时刻计算的速度,系统资源的占用率低。
优选地,计算升级服务器的测试线程延长时刻的方法还可以为:
记TimA和TimB中最晚的时间为TS;计算升级服务器的测试线程延长时刻extT:
extT=TS+steadT×RatioSted;
其中,RatioSted是稳态率,稳态率 RatioSted= exp(-(steadT÷(Fy-1))2);
Fy是兼容性延迟比,计算升级服务器的测试线程的兼容性延迟比Fy,
其中exp是指取指数,Toal为序列TGapSeq中的元素的总数其中,h为TGapSeq中元素的序号;TSeqMean是序列TGapSeq中各个元素的平均值。
以上方法通过乘以升级服务器的测试线程的兼容性延迟比获得的指数形式的稳态率,能够更加精准的获取到阻塞等待线程导致的线程结束时间延长。
进一步地,在S600中,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容具体为:
如果升级服务器的测试脚本的所有线程执行结束时间(即脚本执行完毕)的时间晚于该升级服务器的测试线程延长时刻,标记对应的升级服务器的数据库不兼容。
进一步地,在S600中,从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器的方法包括以下步骤:
从备份服务器中下载不兼容的升级服务器对应存储在备份服务器中的数据库镜像到对应不兼容的升级服务器的磁盘中的挂载目录;
所述数据库镜像包括所述数据库镜像的创建时间、名称、对应的备份服务器中数据库的实例名称以及在所述备份服务器中的存储位置;
利用数据库镜像进行不兼容的升级服务器中数据库的修复,将数据库镜像中的数据库数据还原到不兼容的升级服务器中。
本发明还提供了一种数据库版本更新兼容匹配系统,所述一种数据库版本更新兼容匹配系统包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述一种数据库版本更新兼容匹配方法中的步骤,所述一种数据库版本更新兼容匹配系统可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中,可运行的系统可包括,但不仅限于,处理器、存储器、服务器集群,所述处理器执行所述计算机程序运行在以下系统的单元中:
升级网络连接单元,用于由多个数据库服务器相互连接成为待升级网络,以其中任意一台数据库服务器标记为备份服务器,其他服务器标记为升级服务器;
更新请求接收单元,用于各个升级服务器接收数据库更新请求,所述数据库更新请求包括更新后的数据库的版本号;
升级版本验证单元,用于记各个升级服务器接收到的数据库更新请求中的数据库的版本号为待升级版本号;记升级服务器中现有数据库的版本号为现有版本号;以低于升级版本号的各个现有版本号对应的升级服务器为更新服务器,各个更新服务器备份数据库镜像到备份服务器中;
数据库升级单元,用于各个升级服务器进行升级数据库;
延长时刻计算单元,用于升级数据库完成后,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试,依次计算各个升级服务器的测试线程延长时刻;
更新兼容匹配单元,用于当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容,并且从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器。
本发明的有益效果为:本发明提供一种数据库版本更新兼容匹配方法,通过各个测试线程的时间长度进而判断数据库的兼容性,能够精准的获得数据库测试脚本的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,使得测试线程延长时刻定位的测试线程生命周期结束的预期时间更加稳定和准确,从而进一步判断数据库是否兼容,该方法计算简单,能够提高测试线程延长时刻计算的速度,提高升级后数据库的容错性,系统资源的占用率低。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种数据库版本更新兼容匹配方法的流程图;
图2所示为一种数据库版本更新兼容匹配系统结构图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为一种数据库版本更新兼容匹配方法的流程图,下面结合图1来阐述根据本发明的实施方式的一种数据库版本更新兼容匹配方法,所述方法包括以下步骤:
S100,由多个数据库服务器相互连接成为待升级网络,以其中任意一台数据库服务器标记为备份服务器,其他服务器标记为升级服务器;
S200,各个升级服务器接收数据库更新请求,所述数据库更新请求包括更新后的数据库的版本号;
S300,记各个升级服务器接收到的数据库更新请求中的数据库的版本号为待升级版本号;记升级服务器中现有数据库的版本号为现有版本号;以低于升级版本号的各个现有版本号对应的升级服务器为更新服务器,各个更新服务器备份数据库镜像到备份服务器中;
S400,各个升级服务器进行升级数据库;
S500,升级数据库完成后,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试,依次计算各个升级服务器的测试线程延长时刻;
S600,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容,并且从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器。
进一步地,在S100中,升级网络还包括:Web服务器、安装有数据库管理系统DBMS的服务器、安装有后台管理系统的应用程序服务器。
其中,所述应用程序服务器是联系Web服务器与DBMS的中间件,用于在web服务器和后台的应用程序或数据库之间的事务处理和数据访问。
其中,测试脚本包括多个对数据库的增加表指令、删除表指令、修改表指令、查询表指令中任意一种或多种的指令组合构成的脚本。
其中,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试时,测试脚本中的每个对数据库的指令操作的指令流形成一个线程。
优选地,每个线程的运行时长不高于线程池参数所预设的非核心线程闲置超时时长。
进一步地,在S400中,各个升级服务器进行升级数据库的方法为:
获取数据库的升级安装包;
获取数据库所在升级服务器的环境变量配置信息;
根据获得的环境变量配置信息获取数据库的安装目录的路径信息;
根据安装目录的路径信息找到安装目录;
删除升级服务器中的数据库的安装目录;获取升级安装包的配置文件;配置文件包括参数文件、监听文件、数据文件和数据库授权文件;
将获得的配置文件拷贝到安装目录所在的路径下;
根据所述路径下的配置文件和所述目录生成升级后的数据库;其中,所述配置文件和所述目录中包含有所述升级后的数据库所有需要的文件,当获得了所述配置文件和所述目录,并运行所述目录中的可执行文件生成所述升级后的数据库。
优选地,所述数据库为Mysql数据库、oracle11g数据库、SQLServer数据库中任意一种。
进一步地,在S500中,计算各个升级服务器的测试线程延长时刻的方法为:
依次计算各个升级服务器执行测试脚本对数据库进行测试的稳态时间时段,具体为:
获取依次获取各个升级服务器执行测试脚本时各个线程的指令流的执行时间,按照先后顺序将各个执行时间依次排列成序列记为ThSeq;
依次由ThSeq中相邻的元素两两之间的大于0的差值构成的序列作为线程时变序列TGapSeq;(序列TGapSeq中每个差值的变化表示了测试脚本对数据库进行测试中延迟的变化,在新版本数据库与旧版本应用程序或服务之间的接口、数据结构或语法等方面发生了变化后,序列TGapSeq中的差值在发生变化导致的存在数据丢失、损坏或不一致的情况的不兼容位置导致线程对数据库进行操作时产生的较大延时,这些不兼容位置在线程访问时产生的执行时间差值变化趋势会远大于兼容的位置);
记TGapSeq(h)为序列TGapSeq中的第h个元素,其中,h为TGapSeq中元素的序号;
在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)>TGapSeq(h+1)且TGapSeq(h)>TGapSeq(h-1)时,记此时的序号h为极大值序号Maxh;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)<TGapSeq(h+1)且TGapSeq(h)<TGapSeq(h-1)时,记此时的序号h为极小值序号Minh;(极大值序号Maxh是TGapSeq中差值首次递增的衰减时间,极小值序号Maxh是TGapSeq中差值首次衰减的拐点时间,这两个时间之间的时间段,即稳态时间时段能够表示出测试脚本对数据库进行测试中线程时间的最稳定时段,用以在后续的测试线程延长时刻的计算中以准确的估计出这个时刻的大致时间);
以差值TGapSeq(Maxh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimA;以差值TGapSeq(Minh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimB;取TimA到TimB之间的时间段为稳态时间时段steadT;
计算升级服务器的测试线程延长时刻为:以TimA和TimB中最晚的时间为TS;取TS+steadT为测试线程延长时刻。
由于稳态时间时段是升级服务器的数据库测试脚本的所有线程的生命周期中运行最稳定的时段,根据稳态时间时段计算得到的测试线程延长时刻则能够准确的提供一个升级服务器的中测试线程生命周期结束的预期时间,能够精准的获得数据库测试脚本的测试效果最佳、引起数据库的操作响应时间递增的稳定的时间,但是在测试后期,会有一些由于数据库的更新后不兼容导致的未达到闲置超时时长的阻塞等待线程导致的线程结束时间延长,从而会产生数据库脚本测试初期服务器充分的系统资源对于测试线程生命周期结束的并发调度产生的误差,进而使得测试线程延长时刻产生较大的偏差;为解决该问题,本发明提供了以下计算升级服务器的测试线程延长时刻的方法:
优选地,计算升级服务器的测试线程延长时刻的方法还可以为:
记TimA和TimB中最晚的时间为TS;计算升级服务器的测试线程延长时刻extT:
extT=TS+steadT×ln|(TGapSeq(Maxh)-TSeqMean)÷(TGapSeq(Maxh)-TSeqMean)|;
TSeqMean是序列TGapSeq中各个元素的平均值,ln是取自然对数。
以上方法通过乘以序列TGapSeq的极限差值比值的自然对数从而去除了阻塞等待线程在数据库的更新后不兼容导致的阻塞等待线程导致的线程结束时间延长,使得测试线程延长时刻定位的测试线程生命周期结束的预期时间更加稳定和准确,从而进一步判断数据库是否兼容,该方法计算简单,能够提高测试线程延长时刻计算的速度,系统资源的占用率低。
优选地,计算升级服务器的测试线程延长时刻的方法还可以为:
记TimA和TimB中最晚的时间为TS;计算升级服务器的测试线程延长时刻extT:
extT=TS+steadT×RatioSted;
其中,RatioSted是稳态率,稳态率 RatioSted= exp(-(steadT÷(Fy-1))2);
Fy是兼容性延迟比,计算升级服务器的测试线程的兼容性延迟比Fy,
其中exp是指取指数,Toal为序列TGapSeq中的元素的总数其中,h为TGapSeq中元素的序号;TSeqMean是序列TGapSeq中各个元素的平均值。
以上方法通过乘以升级服务器的测试线程的兼容性延迟比获得的指数形式的稳态率,能够更加精准的获取到阻塞等待线程导致的线程结束时间延长。
进一步地,在S600中,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容具体为:
如果升级服务器的测试脚本的所有线程执行结束时间(即脚本执行完毕)的时间晚于该升级服务器的测试线程延长时刻,标记对应的升级服务器的数据库不兼容。
进一步地,在S600中,从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器的方法包括以下步骤:
从备份服务器中下载不兼容的升级服务器对应存储在备份服务器中的数据库镜像到对应不兼容的升级服务器的磁盘中的挂载目录;
所述数据库镜像包括所述数据库镜像的创建时间、名称、对应的备份服务器中数据库的实例名称以及在所述备份服务器中的存储位置;
利用数据库镜像进行不兼容的升级服务器中数据库的修复,将数据库镜像中的数据库数据还原到不兼容的升级服务器中。
本发明的实施例提供的一种数据库版本更新兼容匹配系统,如图2所示为本发明的一种数据库版本更新兼容匹配系统结构图,该实施例的一种数据库版本更新兼容匹配系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种数据库版本更新兼容匹配系统实施例中的步骤。
所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
升级网络连接单元,用于由多个数据库服务器相互连接成为待升级网络,以其中任意一台数据库服务器标记为备份服务器,其他服务器标记为升级服务器;
更新请求接收单元,用于各个升级服务器接收数据库更新请求,所述数据库更新请求包括更新后的数据库的版本号;
升级版本验证单元,用于记各个升级服务器接收到的数据库更新请求中的数据库的版本号为待升级版本号;记升级服务器中现有数据库的版本号为现有版本号;以低于升级版本号的各个现有版本号对应的升级服务器为更新服务器,各个更新服务器备份数据库镜像到备份服务器中;
数据库升级单元,用于各个升级服务器进行升级数据库;
延长时刻计算单元,用于升级数据库完成后,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试,依次计算各个升级服务器的测试线程延长时刻;
更新兼容匹配单元,用于当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容,并且从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器。
所述一种数据库版本更新兼容匹配系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种数据库版本更新兼容匹配系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种数据库版本更新兼容匹配系统的示例,并不构成对一种数据库版本更新兼容匹配系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种数据库版本更新兼容匹配系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种数据库版本更新兼容匹配系统运行系统的控制中心,利用各种接口和线路连接整个一种数据库版本更新兼容匹配系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种数据库版本更新兼容匹配系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。
Claims (7)
1.一种数据库版本更新兼容匹配方法,其特征在于,所述方法包括以下步骤:
S100,由多个数据库服务器相互连接成为待升级网络,以其中任意一台数据库服务器标记为备份服务器,其他服务器标记为升级服务器;
S200,各个升级服务器接收数据库更新请求,所述数据库更新请求包括更新后的数据库的版本号;
S300,记各个升级服务器接收到的数据库更新请求中的数据库的版本号为待升级版本号;记升级服务器中现有数据库的版本号为现有版本号;以低于升级版本号的各个现有版本号对应的升级服务器为更新服务器,各个更新服务器备份数据库镜像到备份服务器中;
S400,各个升级服务器进行升级数据库;
S500,升级数据库完成后,各个升级服务器执行测试脚本对各个升级服务器的数据库进行测试,依次计算各个升级服务器的测试线程延长时刻;
S600,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容,并且从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器。
2.根据权利要求1所述的一种数据库版本更新兼容匹配方法,其特征在于,在S400中,升级服务器进行升级数据库的方法为:
获取数据库的升级安装包;
获取数据库所在升级服务器的环境变量配置信息;
根据获得的环境变量配置信息获取数据库的安装目录的路径信息;
根据安装目录的路径信息找到安装目录;
删除升级服务器中的数据库的安装目录;获取升级安装包的配置文件;配置文件包括参数文件、监听文件、数据文件和数据库授权文件;
将获得的配置文件拷贝到安装目录所在的路径下;
根据所述路径下的配置文件和所述目录生成升级后的数据库;其中,所述配置文件和所述目录中包含有所述升级后的数据库所有需要的文件,当获得了所述配置文件和所述目录,并运行所述目录中的可执行文件生成所述升级后的数据库。
3.根据权利要求2所述的一种数据库版本更新兼容匹配方法,其特征在于,所述数据库为Mysql数据库、oracle11g数据库、SQLServer数据库中任意一种。
4.根据权利要求1所述的一种数据库版本更新兼容匹配方法,其特征在于,在S500中,计算各个升级服务器的测试线程延长时刻的方法为:
依次计算各个升级服务器执行测试脚本对数据库进行测试的稳态时间时段,具体为:
获取依次获取各个升级服务器执行测试脚本时各个线程的指令流的执行时间,按照先后顺序将各个执行时间依次排列成序列记为ThSeq;依次由ThSeq中相邻的元素两两之间的大于0的差值构成的序列作为线程时变序列TGapSeq;
记TGapSeq(h)为序列TGapSeq中的第h个元素,其中,h为TGapSeq中元素的序号;
在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)>TGapSeq(h+1)且TGapSeq(h)>TGapSeq(h-1)时,记此时的序号h为极大值序号Maxh;在h的取值范围内搜索序列TGapSeq,当第一次搜索到TGapSeq(h)<TGapSeq(h+1)且TGapSeq(h)<TGapSeq(h-1)时,记此时的序号h为极小值序号Minh;
以差值TGapSeq(Maxh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimA;以差值TGapSeq(Minh)在序列ThSeq中对应的2个执行时间中最晚结束时间为TimB;取TimA到TimB之间的时间段为稳态时间时段steadT;
计算升级服务器的测试线程延长时刻为:以TimA和TimB中最晚的时间为TS;取TS+steadT为测试线程延长时刻。
5.根据权利要求4所述的一种数据库版本更新兼容匹配方法,其特征在于,计算升级服务器的测试线程延长时刻的方法还可以为:
记TimA和TimB中最晚的时间为TS;计算升级服务器的测试线程延长时刻extT:
extT=TS+steadT×ln|(TGapSeq(Maxh)-TSeqMean)÷(TGapSeq(Maxh)-TSeqMean)|;
TSeqMean是序列TGapSeq中各个元素的平均值,ln是取自然对数。
6.根据权利要求4所述的一种数据库版本更新兼容匹配方法,其特征在于,在S600中,当有升级服务器的测试脚本的所有线程执行结束时间超过该升级服务器的测试线程延长时刻时,标记对应的升级服务器的数据库不兼容具体为:如果升级服务器的测试脚本的所有线程执行结束时间的时间晚于该升级服务器的测试线程延长时刻,标记对应的升级服务器的数据库不兼容。
7.根据权利要求1所述的一种数据库版本更新兼容匹配方法,其特征在于,在S600中,从备份服务器中将对应的数据库镜像还原到的对应不兼容的升级服务器的方法包括以下步骤:
从备份服务器中下载不兼容的升级服务器对应存储在备份服务器中的数据库镜像到对应不兼容的升级服务器的磁盘中的挂载目录;
所述数据库镜像包括所述数据库镜像的创建时间、名称、对应的备份服务器中数据库的实例名称以及在所述备份服务器中的存储位置;
利用数据库镜像进行不兼容的升级服务器中数据库的修复,将数据库镜像中的数据库数据还原到不兼容的升级服务器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310346982.9A CN116149712B (zh) | 2023-04-04 | 2023-04-04 | 一种数据库版本更新兼容匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310346982.9A CN116149712B (zh) | 2023-04-04 | 2023-04-04 | 一种数据库版本更新兼容匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116149712A true CN116149712A (zh) | 2023-05-23 |
CN116149712B CN116149712B (zh) | 2023-06-27 |
Family
ID=86360245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310346982.9A Active CN116149712B (zh) | 2023-04-04 | 2023-04-04 | 一种数据库版本更新兼容匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149712B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005029332A1 (ja) * | 2003-09-24 | 2005-03-31 | Sony Corporation | データベーススキーマ更新方法 |
JP2007086987A (ja) * | 2005-09-21 | 2007-04-05 | Nec Corp | データベース二重化システム、センタサーバ、リモートサーバ、データベース二重化方法及びプログラム |
US20070288526A1 (en) * | 2006-06-08 | 2007-12-13 | Emc Corporation | Method and apparatus for processing a database replica |
CN102662694A (zh) * | 2012-03-22 | 2012-09-12 | 福建星网视易信息系统有限公司 | 数据库脚本的批处理升级方法及升级器 |
US20120239616A1 (en) * | 2011-03-18 | 2012-09-20 | Microsoft Corporation | Seamless upgrades in a distributed database system |
WO2017071169A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 一种nfv架构下软件升级中的业务迁移方法、装置及服务器 |
EP3226137A1 (en) * | 2016-03-31 | 2017-10-04 | LSIS Co., Ltd. | Method of managing db between duplex ems server |
CN108872742A (zh) * | 2018-05-25 | 2018-11-23 | 杭州拓深科技有限公司 | 面向家庭环境的多级特征匹配非侵入式用电设备检测方法 |
CN109902078A (zh) * | 2019-01-10 | 2019-06-18 | 杭州迪普科技股份有限公司 | 数据库升级兼容的方法、装置、设备及存储介质 |
CN110502267A (zh) * | 2019-08-28 | 2019-11-26 | 北京行易道科技有限公司 | 设备应用程序的更新方法、装置、设备及存储介质 |
US20200034351A1 (en) * | 2018-07-25 | 2020-01-30 | Denso International America, Inc. | Source Authentication And Changed Primitive Verification Systems And Methods For Real Time Updating Of Cloud-Based HD 3-D Map |
CN111736865A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种数据库升级方法及系统 |
US20210124647A1 (en) * | 2019-10-24 | 2021-04-29 | EMC IP Holding Company LLC | Automated rollback for database objects |
CN113110844A (zh) * | 2021-04-14 | 2021-07-13 | 多点(深圳)数字科技有限公司 | 一种数据库更新方法及系统 |
CN114064073A (zh) * | 2021-11-04 | 2022-02-18 | 中国工商银行股份有限公司 | 软件版本升级方法、装置、计算机设备和存储介质 |
CN114816470A (zh) * | 2022-03-30 | 2022-07-29 | 海南乾唐视联信息技术有限公司 | 元数据库的管理方法、装置、电子设备和介质 |
CN115543685A (zh) * | 2021-06-30 | 2022-12-30 | 北京新氧科技有限公司 | 一种数据库回滚方法、装置、电子设备及存储介质 |
-
2023
- 2023-04-04 CN CN202310346982.9A patent/CN116149712B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005029332A1 (ja) * | 2003-09-24 | 2005-03-31 | Sony Corporation | データベーススキーマ更新方法 |
JP2007086987A (ja) * | 2005-09-21 | 2007-04-05 | Nec Corp | データベース二重化システム、センタサーバ、リモートサーバ、データベース二重化方法及びプログラム |
US20070288526A1 (en) * | 2006-06-08 | 2007-12-13 | Emc Corporation | Method and apparatus for processing a database replica |
US20120239616A1 (en) * | 2011-03-18 | 2012-09-20 | Microsoft Corporation | Seamless upgrades in a distributed database system |
CN102662694A (zh) * | 2012-03-22 | 2012-09-12 | 福建星网视易信息系统有限公司 | 数据库脚本的批处理升级方法及升级器 |
WO2017071169A1 (zh) * | 2015-10-29 | 2017-05-04 | 华为技术有限公司 | 一种nfv架构下软件升级中的业务迁移方法、装置及服务器 |
EP3226137A1 (en) * | 2016-03-31 | 2017-10-04 | LSIS Co., Ltd. | Method of managing db between duplex ems server |
CN108872742A (zh) * | 2018-05-25 | 2018-11-23 | 杭州拓深科技有限公司 | 面向家庭环境的多级特征匹配非侵入式用电设备检测方法 |
US20200034351A1 (en) * | 2018-07-25 | 2020-01-30 | Denso International America, Inc. | Source Authentication And Changed Primitive Verification Systems And Methods For Real Time Updating Of Cloud-Based HD 3-D Map |
CN109902078A (zh) * | 2019-01-10 | 2019-06-18 | 杭州迪普科技股份有限公司 | 数据库升级兼容的方法、装置、设备及存储介质 |
CN110502267A (zh) * | 2019-08-28 | 2019-11-26 | 北京行易道科技有限公司 | 设备应用程序的更新方法、装置、设备及存储介质 |
US20210124647A1 (en) * | 2019-10-24 | 2021-04-29 | EMC IP Holding Company LLC | Automated rollback for database objects |
CN111736865A (zh) * | 2020-05-28 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种数据库升级方法及系统 |
CN113110844A (zh) * | 2021-04-14 | 2021-07-13 | 多点(深圳)数字科技有限公司 | 一种数据库更新方法及系统 |
CN115543685A (zh) * | 2021-06-30 | 2022-12-30 | 北京新氧科技有限公司 | 一种数据库回滚方法、装置、电子设备及存储介质 |
CN114064073A (zh) * | 2021-11-04 | 2022-02-18 | 中国工商银行股份有限公司 | 软件版本升级方法、装置、计算机设备和存储介质 |
CN114816470A (zh) * | 2022-03-30 | 2022-07-29 | 海南乾唐视联信息技术有限公司 | 元数据库的管理方法、装置、电子设备和介质 |
Non-Patent Citations (1)
Title |
---|
龙轩: "数据库语句高级应用之修改数据库兼容版本", Retrieved from the Internet <URL:《https://blog.csdn.net/xiaoxian8023/article/details/8820672》> * |
Also Published As
Publication number | Publication date |
---|---|
CN116149712B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6199204B1 (en) | Distribution of software updates via a computer network | |
US8832028B2 (en) | Database cloning | |
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US9996341B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
US8352916B2 (en) | Facilitating the automated testing of daily builds of software | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
EP2040162B1 (en) | Systems and methods for patching computer programs | |
US8918783B2 (en) | Managing virtual computers simultaneously with static and dynamic dependencies | |
RU2571726C2 (ru) | Система и способ проверки целесообразности установки обновлений | |
US7478117B1 (en) | Restoring system state from volume shadow copy service by mounting disks | |
US20200242075A1 (en) | VERIFICATION OF THE INTEGRITY OF DATA FILES STORED IN COPY-ON-WRITE (CoW) BASED FILE SYSTEM SNAPSHOTS | |
CN105359147A (zh) | 在线数据库迁移 | |
CN107577510B (zh) | 一种无盘环境下硬件驱动自动快速预装方法及系统 | |
US8032618B2 (en) | Asynchronous update of virtualized applications | |
CN115237444A (zh) | 基于版本号的并发控制方法、装置、设备及存储介质 | |
CN109445800B (zh) | 一种基于分布式系统的版本自动部署方法及系统 | |
CN116149712B (zh) | 一种数据库版本更新兼容匹配方法 | |
CN111427588A (zh) | 中止固件包的安装 | |
JP7266147B2 (ja) | ブロックチェーンシステムのテスト環境を構築する方法と装置 | |
US20080065667A1 (en) | Transaction oriented resilient file system | |
EP1160666A2 (en) | Switching versions of software in a system background | |
US11086818B2 (en) | Establishing object atomicity in snapshot based disaster recovery environments | |
US12013774B2 (en) | Verification of core file debugging resources | |
Schneider | MySQL database design and tuning | |
EP1507219A2 (en) | Computer system and program for improved file system performance |
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 |