CN112527904A - 关联脚本自动同步方法、装置、计算机设备及存储介质 - Google Patents
关联脚本自动同步方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112527904A CN112527904A CN202011495921.1A CN202011495921A CN112527904A CN 112527904 A CN112527904 A CN 112527904A CN 202011495921 A CN202011495921 A CN 202011495921A CN 112527904 A CN112527904 A CN 112527904A
- Authority
- CN
- China
- Prior art keywords
- script
- target
- synchronization
- scripts
- execution
- 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
- 238000013515 script Methods 0.000 title claims abstract description 626
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000004519 manufacturing process Methods 0.000 claims abstract description 56
- 238000012360 testing method Methods 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims description 38
- 230000001360 synchronised effect Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了关联脚本自动同步方法、装置、计算机设备及存储介质,方法包括:从生产服务器获取脚本发布日志并从测试服务器获取脚本同步日志,获取脚本发布日志中的数据处理脚本并对应生成数据表同步脚本,对每一费时间处理脚本的同步时间与发布时间进行判断得到目标脚本,对目标脚本进行关联分组得到多个初始脚本分组,将数据表同步脚本平均分配至初始脚本分组得到多个脚本分组,对多个脚本分组进行分批次并行同步。本发明基于发布过程优化技术,属于运维技术领域,可对存在关联关系的目标脚本进行关联分组,对脚本分组包含的脚本进行分批次并行同步,可确保存证关联关系的脚本依次有序并行同步,极大提高了对关联脚本进行同步的效率。
Description
技术领域
本发明涉及运维技术领域,尤其涉及一种关联脚本自动同步方法、装置、计算机设备及存储介质。
背景技术
大型企业通常会开发大量业务类应用程序,各应用程序中包含多个脚本,当企业对大量应用程序进行批量迭代更新后,则需要在其他服务器中对迭代更新后的应用程序进行同步更新。传统技术方法中均是以应用程序为整体进行同步更新,而实际应用中不同应用程序的脚本之间存在关联关系,也即前一脚本完成同步后才能进行后一脚本的同步,且不同脚本进行同步所需时间各不相同,传统技术方法忽略了脚本之间的关联关系而采用同步展开方式对大量应用程序所包含的脚本进行同步,导致大量同步顺序靠后的脚本无法及时完成同步但依然占用***资源,服务器资源消耗殆尽则会导致服务器崩溃,导致对应用程序进行同步更新的效率较低。因此,现有技术方法对应用程序包含的脚本进行同步时,存在同步效率较低的问题。
发明内容
本发明实施例提供了一种关联脚本自动同步方法、装置、计算机设备及存储介质,旨在解决现有技术方法对应用程序包含的脚本进行同步时所存在的同步效率较低的问题。
第一方面,本发明实施例提供了一种关联脚本自动同步方法,其包括:
若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志;
获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本;
对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本;
根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组;
将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组;
对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
第二方面,本发明实施例提供了一种关联脚本自动同步装置,其包括:
日志获取单元,用于若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志;
数据表同步脚本生成单元,用于获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本;
目标脚本获取单元,用于对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本;
初始脚本分组获取单元,用于根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组;
脚本分组获取单元,用于将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组;
脚本分组并行同步单元,用于对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的关联脚本自动同步方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的关联脚本自动同步方法。
本发明实施例提供了一种关联脚本自动同步方法、装置、计算机设备及存储介质。从生产服务器获取脚本发布日志并从测试服务器获取脚本同步日志,获取脚本发布日志中的数据处理脚本并对应生成数据表同步脚本,对每一费时间处理脚本的同步时间与发布时间进行判断得到目标脚本,对目标脚本进行关联分组得到多个初始脚本分组,将数据表同步脚本平均分配至初始脚本分组得到多个脚本分组,对多个脚本分组进行分批次并行同步,以实现对脚本进行同步。通过上述方法,可对存在关联关系的目标脚本进行关联分组,对脚本分组包含的脚本进行分批次并行同步,可确保存证关联关系的脚本依次有序并行同步,极大提高了对关联脚本进行同步的效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的关联脚本自动同步方法的流程示意图;
图2为本发明实施例提供的关联脚本自动同步方法的应用场景示意图;
图3为本发明实施例提供的关联脚本自动同步方法的子流程示意图;
图4为本发明实施例提供的关联脚本自动同步方法的另一子流程示意图;
图5为本发明实施例提供的关联脚本自动同步方法的另一子流程示意图;
图6为本发明实施例提供的关联脚本自动同步方法的另一子流程示意图;
图7为本发明实施例提供的关联脚本自动同步方法的另一流程示意图;
图8为本发明实施例提供的关联脚本自动同步方法的另一子流程示意图;
图9为本发明实施例提供的关联脚本自动同步装置的示意性框图;
图10为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1及图2,图1是本发明实施例提供的关联脚本自动同步方法的流程示意图,图2为本发明实施例提供的关联脚本自动同步方法的应用场景示意图,该关联脚本自动同步方法应用于管理服务器10中,该方法通过安装于管理服务器10中的应用软件进行执行,管理服务器10分别与至少一台生产服务器20及至少一台测试服务器30进行通信连接以实现数据信息的传输,其中,管理服务器10即是企业内部所配置的用于将生产服务器20内发布的非数据处理脚本及数据表信息同步至测试服务器30的服务器端,管理服务器10的使用者即为企业的管理员。如图1所示,该方法包括步骤S110~S160。
S110、若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志。
若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志。管理员可输入脚本同步指令至管理服务器,则管理服务器开始进行脚本同步操作;也可以是管理员预先设置同步周期,到达同步周期中的同步时间点,管理服务器自动进行脚本同步。具体的,管理服务器从生产服务器获取脚本发布日志,程序开发人员完成应用程序开发后,则会将应用程序对应的脚本发布至生产服务器中,脚本发布日志即为对脚本发布至生产服务器的过程进行记录所得到的日志信息,程序开发人员每发布新版本应用程序至生产服务器,则根据所发布的应用程序包含的脚本对脚本发布日志进行一次更新;对应用程序进行同步更新即为将生产服务器内已发布的脚本对应同步更新至测试服务器中,脚本同步日志即为对脚本同步更新至测试服务器的过程进行记录所得到的日志信息,对测试服务器中的脚本进行一次同步,即根据同步处理过程包含的脚本对脚本同步日志进行一次更新。
S120、获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本。
获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本。脚本发布日志中记录有数据处理脚本及非数据处理脚本的发布过程,数据处理脚本即为对数据表中的数据信息进行处理的脚本,获取脚本发布日志中的数据处理脚本,并对应生成数据表同步脚本,通过执行数据表同步脚本,可对数据处理脚本处理的数据表中的数据信息进行更高效地同步处理。
在一实施例中,如图3所示,步骤S120包括子步骤S121和S122。
S121、获取所述数据处理脚本中包含的数据表信息;S122、根据所述数据表信息生成对应的数据表同步脚本。
具体的,数据处理脚本中包含数据表信息,数据表信息即为数据处理脚本所处理的数据表的名称、编号及类型等信息。例如,数据表信息中包括某一数据表的具体信息为tablename_123.sql。可基于数据表信息生成可进行数据信息并行同步的数据表同步脚本,具体的,可基于数据表名称相同、类型相同且编号不同的多个数据表生成一个数据表同步脚本,例如,可基于tablename_123.sql、tablename_124.sql及tablename_125.sql三个数据表对应生成数据表同步脚本,则执行该数据表同步脚本即可对相应的多个数据表中包含的数据信息进行并行同步,可最大化利用数据库服务资源以进行数据信息的同步,可大幅提升对数据表中的数据信息进行同步处理的效率。
S130、对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本。
对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本。测试服务器中包含的非数据处理脚本与生产服务器包含的非数据处理脚本相对应,若生产服务器中相应非数据处理脚本并未被更新,则无需对测试服务器中相应非数据处理脚本进行同步更新。具体的,同一非数据处理脚本在脚本同步日志中包含同步时间,在脚本发布日志中包含发布时间,同步时间可以是测试服务器对非数处理脚本进行同步的终止时间,发布时间可以是在生产服务器中完成对非数据处理脚本发布的时间,发布时间也即是非数据处理脚本在生产服务器中进行发布的执行时长的执行结束时间点。可对同一非数据处理脚本的同步时间与发布时间进行对比判断,若同步时间不大于发布时间,则该非数据处理脚本即为需要进行同步的目标脚本;若同步时间大于发布时间,则表明该非数据处理脚本当前并不需要进行同步。
S140、根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组。
根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组。脚本发布日志中包含与对目标脚本进行发布的相关信息,目标脚本相互之间存在关联关系,为确保可以对目标脚本进行批量并发同步而不至于完全耗尽服务器资源,可根据分组规则及脚本发布日志对目标脚本进行关联分组,得到多个初始脚本分组。
在一实施例中,分组规则中包括分组数量,如图4所示,步骤S140包括子步骤S141和S142。
S141、根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序。
在将非数据处理脚本发布至生产服务器时,需要在生产服务器中对应部署一个或多个生产库,并将相应非数据处理脚本发布至所部署的生产库中,脚本发布日志中包括每一生产库的部署时间,以及对每一生产库中包含的非数据处理脚本进行发布的相关信息,部署时间即为对生产库开始进行部署的时间点,可根据脚本发布日志中每一生产库的部署时间及每一目标脚本的执行时长获取对应的关联执行顺序,所述执行时长包括执行开始时间点及执行结束时间点,执行时长即为非数据处理脚本在进行发布执行过程中所耗费的时长,执行开始时间点即为开始对非数据处理脚本进行发布执行的时间点,执行结束时间点即为完成对非数据处理脚本进行发布执行的时间点。
在一实施例中,如图6所示,步骤S141包括子步骤S1411、S1412、S1413、S1414、S1415和S1416。
S1411、判断每一所述目标脚本的执行开始时间点是否与所述目标脚本所属生产库的部署时间相一致;
首先判断目标脚本的执行开始时间点是否与该目标脚本所属生产库的部署时间相一致,若目标脚本的执行开始时间点与所属生产库的部署时间点相一致,则表明完成对生产库进行部署的同时也开始对目标脚本进行发布执行,则该目标脚本的执行顺序位于最前。
S1412、若所述目标脚本的执行开始时间点与所属生产库的部署时间不一致,判断所述目标脚本的执行开始时间点是否与另一目标脚本的执行结束时间点相一致;S1413、若所述目标脚本的执行开始时间点与另一目标脚本的执行结束时间点相一致,确定所述目标脚本的执行顺序位于所述另一目标脚本之后。
若目标脚本的执行开始时间点与所属生产库的部署时间不一致,则表明目标脚本在相应生产库完成部署后并未在第一时间进行发布执行,可进一步判断该目标脚本是否在其他目标脚本之后发布执行,也即是判断目标脚本的执行开始时间点是否与另一目标脚本的执行结束时间点相一致,若相一致,则表明该目标脚本确实在另一目标脚本完成执行之后才进行发布执行,确定该目标脚本的执行顺序位于另一目标脚本之后。
S1414、若所述目标脚本的执行开始时间点与任一所述目标脚本的执行结束时间点均不一致,确定所述目标脚本的执行顺序位于最后;S1415、若所述目标脚本的执行开始时间点与所属生产库的部署时间相一致,确定所述目标脚本的执行顺序位于最前。
若目标脚本的开始执行时间点与任一目标脚本的执行结束时间点均不一致,则表明目标脚本可被单独执行,确定该目标脚本的执行顺序位于最后。
S1416、根据所述目标脚本的执行时长对执行顺序相同的多个目标脚本进行排序得到对应的关联执行顺序。
完成对所有目标脚本的执行顺序进行排序后,可对执行顺序相同的多个目标脚本进行再次排序,具体的,可根据目标脚本的执行时长由小到大对执行顺序相同的多个目标脚本进行排序,得到关联执行顺序;脚本发布日志中还包含每一非数据处理脚本的数据量大小,可根据目标脚本的数据量大小由小到大对执行顺序相同的多个目标脚本进行排序,得到关联执行顺序。所得到的关联执行顺序中包含每一目标脚本的排序信息。
S142、根据所述分组数量及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
可根据分组数量及所得到的关联执行顺序对目标脚本进行顺序分组,得到多个初始脚本分组,则可按照分组数量对应获取关联执行顺序中与分组数量相等的多个目标脚本作为一个初始脚本分组,则最后一个初始脚本分组中包含的目标脚本的数量少于或等于分组数量,除最后一个初始脚本分组之外,其它初始脚本分组包含的目标脚本的数量均等于分组数量,可对初始脚本分组进行编号以确定初始脚本分组的执行批次。
例如,分组数量为12,则依次从关联执行顺序中获取12个目标脚本组成一个初始脚本分组,直至关联执行顺序中所有目标脚本均被分组至相应初始脚本分组。
在一实施例中,所述分组规则中包括数据量阈值,如图5所示,步骤S140包括子步骤S141和S143。
S141、根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序;S143、根据所述数据量阈值及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
可根据数据量阈值及所得到的关联执行顺序对目标脚本进行顺序分组,得到多个初始脚本分组,则可按照数据量阈值对应获取关联执行顺序中数据量不大于数据量阈值的多个目标脚本作为一个初始脚本分组,则所得到的每一初始脚本分组的数据量大小均不大于数据量阈值,可对初始脚本分组进行编号以确定初始脚本分组的执行批次。
例如,数据量阈值为2Mb,则依次从关联执行顺序中获取数据量不大于2Mb的多个目标脚本组成一个初始脚本分组,直至关联执行顺序中所有目标脚本均被分组至相应初始脚本分组。
S150、将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组。
将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组。可将数据表同步脚本平均分配至多个初始脚本分组中,得到对应的多个脚本分组,则对脚本分组中的非数据处理脚本进行同步时,也同时对其中的数据表同步脚本进行同步执行,可在对服务器资源进行最大化利用的前提下,提高对非数据处理脚本进行同步及对数据表中数据信息进行同步处理的效率。
S160、对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。具体的,可对所得到的多个脚本分组进行分批次并行同步,则每一批次仅对一个脚本分组中所包含的脚本进行并行同步执行,还可根据预置的执行间隔时间对多个脚本分组进行分批次并行同步,则每间隔一个执行间隔时间则开始执行下一脚本分组中所包含的脚本。脚本分组中包含非数据处理脚本及数据处理脚本,对脚本分组进行同步时需对该脚本分组所包含的所有脚本进行并行同步执行,同步非数据处理脚本即为将生产服务器中相应非数据处理脚本同步至测试服务器中,同一非数据同步脚本在生产服务器的生产库及测试服务器的测试库中分别拥有相匹配的两个安全标识符(SecurityIdentifiers,SID),可根据目标脚本在生产服务器中的安全标识符对应获取该目标脚本在测试服务器中的安全标识符,并将该目标脚本对应同步至测试服务器中与对应安全标识符相匹配的测试库中。例如某一目标脚本在生产服务器中的安全标识符为:S:\APP1\system\001.tmp,则该目标脚本在测试服务器中对应的安全标识符为:C:\APP1\system\001.tmp。同步执行数据处理脚本,即可将数据处理脚本先同步至测试服务器内,再执行该数据处理脚本以将与该数据处理脚本对应的数据表中包含的数据信息并行同步至测试服务器中,以实现对数据表中数据信息的同步。
在一实施例中,如图7所示,步骤S160之后还包括步骤S170、S180和S190。
S170、对每一所述脚本分组中脚本的同步执行过程进行监控得到脚本监控信息;S180、判断所述脚本监控信息是否满足预置的判断条件;S190、若所述脚本监控信息满足预置的判断条件,对与所述脚本监控信息的脚本对应的数据库进行解锁。
在对脚本分组中所包含脚本进行同步执行的过程中,可对每一脚本的同步执行过程进行监控,得到脚本监控信息,所得到的脚本监控信息可以包括脚本执行时长、脚本类型等具体信息。判断脚本监控信息是否满足预置的判断条件,若满足判断条件则表明与脚本监控信息对应的脚本因存在问题而无法顺利进行同步执行,则需对与脚本监控信息的脚本对应的数据库进行解锁,其中,判断条件包括时间阈值及目标类型关键字。
在一实施例中,如图8所示,步骤S170包括子步骤S171、S172和S173。
S171、判断所述脚本监控信息中的脚本执行时长是否超出所述时间阈值;S172、若所述脚本执行时长超出所述时间阈值,判断所述脚本监控信息中的脚本类型是否与所述目标类型关键字相匹配;S173、若所述脚本类型与所述目标类型关键字相匹配,判定所述脚本监控信息满足所述判断条件。
监控信息中包括脚本执行时长及脚本类型等信息,可判断脚本执行时长是否超出判断条件中的时间阈值,例如可配置时间阈值为20分钟,若未超出则对该脚本的同步执行过程继续进行监控;若超出则表明脚本执行时长过长,需进一步判断脚本类型是否与目标类型关键字相匹配,例如,可配置目标类型关键字为ddl和pkg,若脚本类型与目标类型关键字中任一关键字相匹配,均判定脚本类型与目标类型关键字相匹配。若脚本类型与目标类型关键字相匹配,则表明脚本监控信息对应的脚本在进行同步执行过程中存在资源锁的问题;若脚本类型不与目标类型关键字相匹配,则表明脚本监控信息对应的脚本并不存在资源锁的问题。
部分脚本在同步执行过程中需访问数据库中的数据信息,数据库为避免多个脚本同时访问数据库会生成数据锁,在某一脚本访问数据库时添加数据锁,则此时会禁止其他脚本访问该数据库。若脚本存在资源锁的问题,则表明该脚本所需访问的数据库已添加数据锁,则可根据该脚本生成对应的数据锁解锁脚本,并在该脚本的数据库内执行数据锁解锁脚本以完成对资源锁进行解锁,对数据库的资源锁进行解锁后,相应脚本即可访问已解锁的数据库中的数据信息并顺利进行同步执行。
在本发明实施例所提供的关联脚本自动同步方法中,从生产服务器获取脚本发布日志并从测试服务器获取脚本同步日志,获取脚本发布日志中的数据处理脚本并对应生成数据表同步脚本,对每一费时间处理脚本的同步时间与发布时间进行判断得到目标脚本,对目标脚本进行关联分组得到多个初始脚本分组,将数据表同步脚本平均分配至初始脚本分组得到多个脚本分组,对多个脚本分组进行分批次并行同步,以实现对脚本进行同步。通过上述方法,可对存在关联关系的目标脚本进行关联分组,对脚本分组包含的脚本进行分批次并行同步,可确保存证关联关系的脚本依次有序并行同步,极大提高了对关联脚本进行同步的效率。
本发明实施例还提供一种关联脚本自动同步装置,该关联脚本自动同步装置用于执行前述关联脚本自动同步方法的任一实施例。具体地,请参阅图9,图9是本发明实施例提供的关联脚本自动同步装置的示意性框图。该关联脚本自动同步装置可配置于管理服务器10中。
如图9所示,关联脚本自动同步装置100包括日志获取单元110、数据表同步脚本生成单元120、目标脚本获取单元130、初始脚本分组获取单元140、脚本分组获取单元150和脚本分组并行同步单元160。
日志获取单元110,用于若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志。
数据表同步脚本生成单元120,用于获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本。
在一实施例中,所述数据表同步脚本生成单元120包括子单元:数据表信息获取单元和脚本生成单元。
数据表信息获取单元,用于获取所述数据处理脚本中包含的数据表信息;脚本生成单元,用于根据所述数据表信息生成对应的数据表同步脚本。
目标脚本获取单元130,用于对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本。
初始脚本分组获取单元140,用于根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组。
在一实施例中,所述初始脚本分组获取单元140包括子单元:关联执行顺序获取单元和第一分组单元。
关联执行顺序获取单元,用于根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组;第一分组单元,用于根据所述分组数量及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
在一实施例中,所述初始脚本分组获取单元140包括子单元:关联执行顺序获取单元和第二分组单元。
关联执行顺序获取单元,用于根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序;第二分组单元,用于根据所述数据量阈值及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
在一实施例中,所述关联执行顺序获取单元包括子单元:第一判断单元、第二判断单元、第一执行顺序确定单元、第二执行顺序确定单元、第三执行顺序确定单元和排序处理单元。
第一判断单元,用于判断每一所述目标脚本的执行开始时间点是否与所述目标脚本所属生产库的部署时间相一致;第二判断单元,用于若所述目标脚本的执行开始时间点与所属生产库的部署时间不一致,判断所述目标脚本的执行开始时间点是否与另一目标脚本的执行结束时间点相一致;第一执行顺序确定单元,用于若所述目标脚本的执行开始时间点与另一目标脚本的执行结束时间点相一致,确定所述目标脚本的执行顺序位于所述另一目标脚本之后;第二执行顺序确定单元,用于若所述目标脚本的执行开始时间点与任一所述目标脚本的执行结束时间点均不一致,确定所述目标脚本的执行顺序位于最后;第三执行顺序确定单元,用于若所述目标脚本的执行开始时间点与所属生产库的部署时间相一致,确定所述目标脚本的执行顺序位于最前;排序处理单元,用于根据所述目标脚本的执行时长对执行顺序相同的多个目标脚本进行排序得到对应的关联执行顺序。
脚本分组获取单元150,用于将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组。
脚本分组并行同步单元160,用于对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
在一实施例中,所述关联脚本自动同步装置还包括子单元:脚本监控信息获取单元、脚本监控信息判断单元和数据库解锁单元。
脚本监控信息获取单元,用于对每一所述脚本分组中脚本的同步执行过程进行监控得到脚本监控信息;脚本监控信息判断单元,用于判断所述脚本监控信息是否满足预置的判断条件;数据库解锁单元,用于若所述脚本监控信息满足预置的判断条件,对与所述脚本监控信息的脚本对应的数据库进行解锁。
在一实施例中,所述脚本监控信息判断单元包括子单元:脚本执行时长判断单元、脚本类型判断单元和判定单元。
脚本执行时长判断单元,用于判断所述脚本监控信息中的脚本执行时长是否超出所述时间阈值;脚本类型判断单元,用于若所述脚本执行时长超出所述时间阈值,判断所述脚本监控信息中的脚本类型是否与所述目标类型关键字相匹配;判定单元,用于若所述脚本类型与所述目标类型关键字相匹配,判定所述脚本监控信息满足所述判断条件。
在本发明实施例所提供的关联脚本自动同步装置应用上述关联脚本自动同步方法,从生产服务器获取脚本发布日志并从测试服务器获取脚本同步日志,获取脚本发布日志中的数据处理脚本并对应生成数据表同步脚本,对每一费时间处理脚本的同步时间与发布时间进行判断得到目标脚本,对目标脚本进行关联分组得到多个初始脚本分组,将数据表同步脚本平均分配至初始脚本分组得到多个脚本分组,对多个脚本分组进行分批次并行同步,以实现对脚本进行同步。通过上述方法,可对存在关联关系的目标脚本进行关联分组,对脚本分组包含的脚本进行分批次并行同步,可确保存证关联关系的脚本依次有序并行同步,极大提高了对关联脚本进行同步的效率。
上述关联脚本自动同步装置可以实现为计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本发明实施例提供的计算机设备的示意性框图。该计算机设备可以是用于执行关联脚本自动同步方法以对关联脚本进行自动同步的关联服务器10。
参阅图10,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504,其中存储介质可以是易失性存储介质或非易失性存储介质。
该存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行关联脚本自动同步方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行关联脚本自动同步方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述的关联脚本自动同步方法中对应的功能。
本领域技术人员可以理解,图10中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性或易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现上述的关联脚本自动同步方法中所包含的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种关联脚本自动同步方法,应用于管理服务器,所述管理服务器与至少一台生产服务器及至少一台测试服务器通过网络连接以进行数据信息的传输,其特征在于,所述方法包括:
若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志;
获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本;
对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本;
根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组;
将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组;
对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
2.根据权利要求1所述的关联脚本自动同步方法,其特征在于,所述获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本,包括:
获取所述数据处理脚本中包含的数据表信息;
根据所述数据表信息生成对应的数据表同步脚本。
3.根据权利要求1所述的关联脚本自动同步方法,其特征在于,所述分组规则中包括分组数量,所述根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组,包括:
根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序;
根据所述分组数量及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
4.根据权利要求1所述的关联脚本自动同步方法,其特征在于,所述分组规则中包括数据量阈值,所述根据预置的分组规则对所述脚本发布日志中每一生产库所包含的关联脚本及所述数据表同步脚本进行分组得到多个脚本分组,包括:
根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序;
根据所述数据量阈值及所述关联执行顺序对所述目标脚本进行顺序分组得到多个初始脚本分组。
5.根据权利要求3或4所述的关联脚本自动同步方法,其特征在于,所述执行时长包括执行开始时间点及执行结束时间点,所述根据所述脚本发布日志中每一生产库的部署时间及每一所述目标脚本的执行时长获取所述目标脚本的关联执行顺序,包括:
判断每一所述目标脚本的执行开始时间点是否与所述目标脚本所属生产库的部署时间相一致;
若所述目标脚本的执行开始时间点与所属生产库的部署时间不一致,判断所述目标脚本的执行开始时间点是否与另一目标脚本的执行结束时间点相一致;
若所述目标脚本的执行开始时间点与另一目标脚本的执行结束时间点相一致,确定所述目标脚本的执行顺序位于所述另一目标脚本之后;
若所述目标脚本的执行开始时间点与任一所述目标脚本的执行结束时间点均不一致,确定所述目标脚本的执行顺序位于最后;
若所述目标脚本的执行开始时间点与所属生产库的部署时间相一致,确定所述目标脚本的执行顺序位于最前;
根据所述目标脚本的执行时长对执行顺序相同的多个目标脚本进行排序得到对应的关联执行顺序。
6.根据权利要求1所述的关联脚本自动同步方法,其特征在于,所述对多个所述脚本分组所包含的脚本进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器之后,还包括:
对每一所述脚本分组中脚本的同步执行过程进行监控得到脚本监控信息;
判断所述脚本监控信息是否满足预置的判断条件;
若所述脚本监控信息满足预置的判断条件,对与所述脚本监控信息的脚本对应的数据库进行解锁。
7.根据权利要求6所述的关联脚本自动同步方法,其特征在于,所述判断条件包括时间阈值及目标类型关键字,所述判断所述脚本监控信息是否满足预置的判断条件,包括:
判断所述脚本监控信息中的脚本执行时长是否超出所述时间阈值;
若所述脚本执行时长超出所述时间阈值,判断所述脚本监控信息中的脚本类型是否与所述目标类型关键字相匹配;
若所述脚本类型与所述目标类型关键字相匹配,判定所述脚本监控信息满足所述判断条件。
8.一种关联脚本自动同步装置,其特征在于,包括:
日志获取单元,用于若接收到管理员所输入的脚本同步指令,从所述生产服务器获取脚本发布日志并从所述测试服务器获取脚本同步日志;
数据表同步脚本生成单元,用于获取所述脚本发布日志中的数据处理脚本并生成对应的数据表同步脚本;
目标脚本获取单元,用于对同一非数据处理脚本在所述脚本同步日志中的同步时间是否不大于所述脚本发布日志中的发布时间进行判断,获取同步时间不大于发布时间的非数据处理脚本作为目标脚本;
初始脚本分组获取单元,用于根据预置的分组规则对所述脚本发布日志中所述目标脚本进行关联分组得到多个初始脚本分组;
脚本分组获取单元,用于将所述数据表同步脚本平均分配至所述多个初始脚本分组以得到所述多个脚本分组;
脚本分组并行同步单元,用于对多个所述脚本分组进行分批次并行同步,将与每一所述脚本分组对应的数据信息同步至所述测试服务器。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的关联脚本自动同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7中任一项所述的关联脚本自动同步方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495921.1A CN112527904B (zh) | 2020-12-17 | 关联脚本自动同步方法、装置、计算机设备及存储介质 | |
PCT/CN2021/083757 WO2022126918A1 (zh) | 2020-12-17 | 2021-03-30 | 关联脚本自动同步方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495921.1A CN112527904B (zh) | 2020-12-17 | 关联脚本自动同步方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527904A true CN112527904A (zh) | 2021-03-19 |
CN112527904B CN112527904B (zh) | 2024-08-02 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022126918A1 (zh) * | 2020-12-17 | 2022-06-23 | 平安科技(深圳)有限公司 | 关联脚本自动同步方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101932999A (zh) * | 2007-12-20 | 2010-12-29 | 汇丰技术股份有限公司 | 用于并行开发和部署项目的自动方法和*** |
US20140172782A1 (en) * | 2012-12-19 | 2014-06-19 | Accenture Global Services Limited | Enterprise migration planning information repository |
CN106951362A (zh) * | 2015-09-18 | 2017-07-14 | Fmr有限责任公司 | 在正在进行的性能测试期间对计算机***处理器和事务性能的实时监测 |
US20180285099A1 (en) * | 2017-03-29 | 2018-10-04 | The Travelers Indemnity Company | Systems, methods, and apparatus for migrating code to a target environment |
CN111611009A (zh) * | 2020-05-26 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101932999A (zh) * | 2007-12-20 | 2010-12-29 | 汇丰技术股份有限公司 | 用于并行开发和部署项目的自动方法和*** |
US20140172782A1 (en) * | 2012-12-19 | 2014-06-19 | Accenture Global Services Limited | Enterprise migration planning information repository |
CN106951362A (zh) * | 2015-09-18 | 2017-07-14 | Fmr有限责任公司 | 在正在进行的性能测试期间对计算机***处理器和事务性能的实时监测 |
US20180285099A1 (en) * | 2017-03-29 | 2018-10-04 | The Travelers Indemnity Company | Systems, methods, and apparatus for migrating code to a target environment |
CN111611009A (zh) * | 2020-05-26 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022126918A1 (zh) * | 2020-12-17 | 2022-06-23 | 平安科技(深圳)有限公司 | 关联脚本自动同步方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022126918A1 (zh) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN107391628B (zh) | 数据同步方法及装置 | |
CN109766349B (zh) | 任务防重方法、装置、计算机设备及存储介质 | |
CN107391634B (zh) | 数据迁移方法及装置 | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
US20140059000A1 (en) | Computer system and parallel distributed processing method | |
CN110781061B (zh) | 一种记录用户行为链路的方法及装置 | |
CN110968478A (zh) | 日志采集方法、服务器及计算机存储介质 | |
US20130031532A1 (en) | Method, computer, and device for validating execution of tasks in adaptable computer systems | |
CN112395157A (zh) | 审计日志的获取方法、装置、计算机设备和存储介质 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN108733543B (zh) | 一种日志分析的方法、装置、电子设备和可读存储介质 | |
US7752399B2 (en) | Exclusion control method and information processing apparatus | |
CN114490554A (zh) | 数据同步方法及其装置、电子设备及存储介质 | |
WO2022126918A1 (zh) | 关联脚本自动同步方法、装置、计算机设备及存储介质 | |
CN110908780B (zh) | 调度平台的任务梳理方法、装置、设备及存储介质 | |
CN111143347A (zh) | 一种对象存储数据一致性测试方法、***、终端及存储介质 | |
CN112527904B (zh) | 关联脚本自动同步方法、装置、计算机设备及存储介质 | |
US20150347402A1 (en) | System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace | |
CN115994124A (zh) | 文件扫描方法、装置、电子设备和计算机可读存储介质 | |
CN108984101B (zh) | 在分布式存储***中确定事件之间关系的方法及装置 | |
CN114331167A (zh) | 一种冠军挑战者策略的管理方法、***、介质和设备 | |
CN110543459A (zh) | 一种nfs下文件锁状态获取方法、***、终端及存储介质 | |
CN109492422A (zh) | 一种基于用户行为信息的数据处理方法及*** | |
CN116578247B (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 | ||
GR01 | Patent grant |