CN110377583A - 数据库脚本执行方法、装置、计算机设备和存储介质 - Google Patents
数据库脚本执行方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110377583A CN110377583A CN201910521637.8A CN201910521637A CN110377583A CN 110377583 A CN110377583 A CN 110377583A CN 201910521637 A CN201910521637 A CN 201910521637A CN 110377583 A CN110377583 A CN 110377583A
- Authority
- CN
- China
- Prior art keywords
- database
- script
- database script
- pending
- executes
- 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
Links
- 238000013515 script Methods 0.000 title claims abstract description 414
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 28
- 238000005096 rolling process Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 239000012141 concentrate Substances 0.000 claims description 6
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 abstract 1
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及基架运维技术领域,提供一种数据库脚本执行方法、装置、计算机设备和存储介质,通过识别各待执行数据库脚本的文件名对待执行数据库脚本进行排序,实现数据库脚本的有序执行,且当检测到数据库脚本执行失败时,中断数据库脚本执行操作,能避免执行失败的脚本对后续的脚本执行带来影响,通过产生中断点标识符,使得下一次脚本执行操作可以从执行失败的脚本的中断点处重新执行,避免重复执行已执行过的脚本,提高数据库脚本的执行效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据库脚本执行方法、装置、计算机设备和存储介质。
背景技术
在计算机系统应用中,数据库脚本是批处理文件的延伸,是一种纯文本保存的程序。数据库脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序执行。
目前,在数据库管理操作方面,执行存储过程、对数据库表的增删改查等操作任务都是由人工编写数据库脚本,并将数据库脚本输入至数据库管理系统(如SQL server2000)中查询分析器依次执行,完成对数据库的相关操作。当需要执行大批量的数据库脚本时,无法使程序按照预期有序地执行数据库脚本,大量的待执行的数据库脚本,会降低数据库脚本的读取效率,并且,当其中有脚本执行失败时,再重新执行该脚本时,需要重新分析其对后续的已执行的脚本的影响情况,如此,现有的数据库脚本的执行方案效率太低。
发明内容
基于此,有必要针对现有的执行数据库脚本的方案效率过低的问题,提供一种数据库脚本执行方法、装置、计算机设备和存储介质。
一种数据库脚本执行方法,包括:
当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本;
根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表;
依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作;
当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
在其中一个实施例中,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作之前,还包括:
分析待执行数据库脚本集;
存储待执行数据库脚本集涉及的表结构,得到备份表结构。
在其中一个实施例中,存储待执行数据库脚本集涉及的表结构,得到备份表结构之后,还包括:
当接收到回滚指令时,运行备份表结构,执行回滚操作。
在其中一个实施例中,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符之后,还包括:
根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱。
在其中一个实施例中,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作之后,还包括:
保存待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
在其中一个实施例中,生成数据库脚本执行结果集之后,还包括:
当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件;
根据预设邮件配置文件,将报告文件通过邮件形式发送。
一种数据库脚本执行装置,包括:
数据获取模块,用于当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本;
数据处理模块,用于根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表;
脚本执行模块,用于依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作;
异常处理模块,用于当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
在其中一个实施例中,装置还包括:
备份模块,用于分析待执行数据库脚本集,存储待执行数据库脚本集涉及的表结构,得到备份表结构。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本;
根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表;
依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作;
当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本;
根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表;
依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作;
当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
上述数据库脚本执行方法、装置、计算机设备和存储介质,通过识别各待执行数据库脚本的文件名对待执行数据库脚本进行排序,实现数据库脚本的有序执行,且当检测到数据库脚本执行失败时,中断数据库脚本执行操作,能避免执行失败的脚本对后续的脚本执行带来影响,通过产生中断点标识符,使得下一次脚本执行操作可以从执行失败的脚本的中断点处重新执行,避免重复执行已执行过的脚本,提高数据库脚本的执行效率。
附图说明
图1为一个实施例中数据库脚本执行方法的应用环境图;
图2为一个实施例中数据库脚本执行方法的流程示意图;
图3为另一个实施例中数据库脚本执行方法的详细流程示意图;
图4为一个实施例中数据库脚本执行装置的结构框图;
图5为一个另实施例中数据库脚本执行装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据库脚本执行方法,可以应用于如图1所示的应用环境中。其中,终端102为第三方管理系统所对应的用户端,服务器104为用于自动执行脚本的第三方管理系统的服务器,第三方管理系统可以整合目前常用的mysql、SQL Server、oracle等多种数据库,能够实现对多种不同类型数据库的操作。待执行数据库脚本集与待管理数据库都一同部署在服务器104上,终端102通过网络与服务器104通过网络进行通信。用户于终端102登录第三方管理系统进行脚本执行的操作,服务器104在接收到终端102发送的数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本,根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在其中一个实施例中,如图2所示,提供了一种数据库脚本执行方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S200,当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本。
数据库脚本是包含不属于数据库架构定义的Transact-SQL(T-SQL)语句或实用工具(如SQLCMD)的附加文件,其可用于创建数据库对象的语句的集合,可以包括SQL(Structured Query Language,结构化查询语言)脚本,具体使用环境包含:MYSQL,SQLServer以及oracle等数据库。数据库连接串即数据库连接字符串,用于连接数据库,其包括多个连接参数。待执行数据库脚本集即为包括多个待执行数据库脚本文件的集合,待执行数据库脚本文件由系统开发人员事先编写好,其中包括SQL执行语句,该SQL执行语句用于对相应的待管理数据库进行管理操作。例如增加数据库,删除数据库,修改数据库以及查询数据库等操作。在实际应用中,第三方管理系统系统整合有多个数据库,用于对多个数据库进行管理操作。当需要执行批量的脚本时,系统相关工作人员先完成配置文件中的预设数据库连接串的配置,便于与对应的待管理数据库建立连接,然后,在第三方管理系统的审批平台(srvboot)上传批量的待执行数据库脚本,并且在平台上添加与各数据库相关联的系统负责人和提交人领导的审批流程,在双重检查都没问题的情况下,完成审批,进行脚本执行的操作,通过终端发送脚本执行指令至服务器,服务器接收到脚本执行指令后,便开始获取预设的数据库连接串以及已上传的待执行数据库脚本集,自动执行待执行数据库脚本,完成对待管理数据库相应的操作。服务器在系统一开始运行的时候,便加载配置文件,读取配置文件中的数据库连接串,根据配置文件中的数据库连接串,建立与待管理数据库的连接。
步骤S400,根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表。
具体的,数据库连接串中的连接参数可根据连接的数据库类型、数据库驱动器、连接模式以及网络协议进行配置,更进一步的,连接参数可以包括连接的数据库用户名或地址、用户密码、连接池最大连接数、最小连接数以及重连策略等其他连接参数。在实际应用中,系统开发人员一般在编写SQL执行语句,会将编写好的SQL执行语句保存为后缀名为.sql的脚本文件,也就是常用的数据库脚本,用于对数据库进行相应的操作。并且,系统开发人员在给数据库脚本文件命名时,按照预期的数据库脚本的执行顺序给数据库脚本命名,命名方式可以有多种不做限定,例如,在脚本文件命名中加上统一格式的编号,如001,002…,依次给数据库脚本文件命名,标示该数据库脚本的在待执行脚本集中的顺序。服务器在获取数据库连接串以及待执行数据库脚本集后,根据数据库连接串与对应的待管理数据库建立连接,然后遍历该数据库脚本集,按照程序逻辑,依次读取待执行数据库脚本集中各个数据库脚本的文件名称,按照其文件名上标示的执行顺序,对数据库脚本进行排序,得到数据库脚本排序列表。在其他实施例中,排序方式还可以是服务器获取待执行脚本集中每个数据库脚本存储于服务器上的时间戳,根据时间戳的先后顺序对待执行数据库脚本进行排序。本实施例中,根据数据库脚本的文件名,对待执行数据进行排序,能够为脚本的有序执行奠定基础。
可以理解的是,数据库脚本的执行还可以是利用定时器定时执行部分数据库脚本以及其他方式,在此不做限定。本实施例中,通过数据库脚本文件名标示数据库脚本的执行顺序的方式,使得数据库脚本可按照一定的逻辑顺序执行,让数据库脚本的执行更加规范,便于数据库脚本的管理。
步骤S600,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作。
当完成对待执行数据库脚本的排序之后,按照排序结果,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作。在其他实施例中,还可以是服务器获取待执行脚本集中每个数据库脚本存储于服务器上的时间戳,根据时间戳的先后顺序依次执行数据库脚本。可以理解的是,数据库脚本的执行还可以是利用定时器定时执行部分数据库脚本以及其他方式,在此不做限定。本实施例中,按照数据库脚本文件名标示数据库脚本的执行顺序进行排序后,使得数据库脚本可按照一定的逻辑顺序执行,让数据库脚本的执行更加规范,便于数据库脚本的管理。
步骤S800,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
数据库脚本在执行过程中,可能会因为SQL执行语句的语法错误或者因为系统故障等原因出现数据库脚本执行失败的情况。若出现数据库脚本执行失败的情况,会影响后续的待执行的数据库脚本的执行,降低执行效率。本实施例中,当服务器检测到有数据库脚本执行失败时,便中断后续的数据库脚本执行操作,产生中断点标识符,将执行程序挂起,便于系统相关人员对执行失败的脚本进行更新修复,进而继续执行数据库脚本,其中,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。本实施例中,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行,使得程序能够从当前执行失败的脚本的中断点处重新执行,能够避免重复执行已执行过的数据库脚本,提高数据库脚本执行效率。
上述数据库脚本执行方法中,通过识别各待执行数据库脚本的文件名对待执行数据库脚本进行排序,实现数据库脚本的有序执行,且当检测到数据库脚本执行失败时,中断数据库脚本执行操作,能避免执行失败的脚本对后续的脚本执行带来影响,通过产生中断点标识符,使得下一次脚本执行操作可以从执行失败的脚本的中断点处重新执行,避免重复执行已执行过的脚本,提高数据库脚本的执行效率。
在其中一个实施例中,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作之前,还包括:分析待执行数据库脚本集,存储待执行数据库脚本集涉及的表结构,得到备份表结构。
常用的用于对数据库进行操作的SQL语句包括DDL(Data Definition Language,数据定义语言),DDL是用于描述数据库中要存储的现实世界实体的语言,其主要包括各种数据对象(数据库表格)的创建、修改、删除以及授权等操作。由于DDL语句没有事务性,所以DDL语句不能执行回滚操作。本实施例中,服务器在执行数据库脚本之前,自动分析待执行的数据库脚本,提取出数据库脚本中涉及的表结构,并将所涉及的表结构都存储起来备份至指定备份路径,得到备份表结构。可以理解的是,备份路径可根据实际情况自行设置,在此不做限定。本实施例中,通过备份表结构的方式,能够在数据库发生崩溃的情况下,依然保留原本的表结构,有利于维护数据库的完整性。
在其中一个实施例中,存储待执行数据库脚本集涉及的表结构,得到备份表结构之后,还包括:当接收到回滚指令时,运行备份表结构,执行回滚操作。
回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为,回滚包括程序回滚和数据回滚等类型。在为保证应用程序、数据库或系统错误后还原数据库的完整性,需要使用回滚操作。在实际应用中,在完成数据库脚本执行后,若系统相关人员希望恢复原来的表结构,便发送回滚指令至服务器,服务器响应该回滚指令,执行回滚操作,恢复脚本执行前的数据库表结构。具体的,当服务器接收到回滚指令后,获取备份表结构,然后运行备份的表结构,即可恢复脚本执行前的表结构,也就恢复了所有执行DDL语句操作。本实施例中,通过运行备份表结构的方式,执行回滚操作,实现数据库表结构的逆向操作。
在其中一个实施例中,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行之后,还包括:步骤S900,根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱。
预设邮件配置文件由系统开发人员事先完成配置,具体的,配置过程包括开启邮件发送功能,创建邮件账户信息,创建数据库配置文件,关联用户与邮件账户信息以及编写邮件发送脚本。其中,邮件账户信息包括邮件账户名、发件人邮件地址、发件人显示名称、SMTP邮件服务器地址、端口号、用户名以及密码,邮件发送脚本包括配置名称、收件人邮件地址以及邮件内容格式。预设邮箱即指收件人邮件地址,其已在邮件配置文件中配置好,预设邮箱可以是系统负责人的邮箱。当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行之后,根据预设的邮件配置文件发送脚本执行失败通知邮件至系统相关负责人邮箱,通知其及时修复脚本。当系统负责人修复脚本后,重新提交脚本至第三方管理系统的审批平台,审批完成后,服务器可在断点处重新执行该修复后的脚本,执行成功后,再通过预设邮件配置文件发送脚本执行失败通知邮件至系统相关负责人邮箱。本实施例中,通过在脚本执行失败后发送通知邮件,能够使系统负责人对执行失败的脚本进行及时修复更新,加快脚本执行的周期。
在其中一个实施例中,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作之后,还包括:步骤S920,保存待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
每当服务器在执行完一个数据库脚本后,保存该数据库脚本的返回的执行结果。具体的,若服务器接收返回的执行结果为成功,则记录该脚本执行成功,若返回的结果为失败,则记录其失败的原因,将记录结果保存至本地或者指定网络地址,生成数据库脚本执行结果集。数据库脚本的执行结果可以更根据实际情况而做出设定,只要能满足实现数据库脚本的执行结果持久化的要求即可,在此不做限定。本实施例中,通过实时保存数据库脚本的执行结果,并生成数据库脚本执行结果集,可便于日后系统负责人查阅,也有利于后续开发维护工作的进行。
在其中一个实施例中,生成数据库脚本执行结果集之后,还包括:步骤S940,当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件,根据预设邮件配置文件,将报告文件通过邮件形式发送。
在实际应用中,当服务器在执行所有数据库脚本后,系统相关负责人想要查看上传的数据库脚本集的执行结果,若通过查看数据库脚本执行结果集,虽然方便,但是查看的信息有限,只能查看执行结果和失败原因等,且当数据库脚本的执行结果数量达到几百及以上时,阅读起来比较麻烦,故需要一种方式整合数据库脚本执行结果,提高数据库脚本执行结果的阅读性。本实施例中,在第三方管理系统的操作页面上,设置有用于生成数据库脚本执行报告的按钮,用户通过点击该按钮,就能生成数据库脚本执行结果报告文件并进行查看。具体的,当服务器接收到报告文件生成指令时,获取数据库脚本执行结果集,根据预设的脚本执行结果报告模板,生成展示脚本执行结果的报告文件,并根据预设的邮件配置文件,将生成的报告文件添加于邮件附件中发送至系统负责人邮箱。具体的,报告文件包括执行的数据库脚本所属数据库名称、数据库脚本的执行时间、执行结果以及执行数量等等。本实施例中,通过生成报告文件的方式,提高数据库脚本执行结果的阅读性,且将报告文件以邮件的形式发送至系统负责人邮箱,可以实现报告文件的随时查看。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图4所示,提供了一种数据库脚本执行装置,包括:数据获取模块410、数据处理模块420、脚本执行模块430和异常处理模块440,其中:
数据获取模块410,用于当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本;
数据处理模块420,用于根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表。
脚本执行模块430,用于依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作。
异常处理模块440,用于当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
如图5所示,在其中一个实施例中,数据库脚本执行装置还包括备份模块450,用于分析待执行数据库脚本集,存储待执行数据库脚本集涉及的表结构,得到备份表结构。
如图5所示,在其中一个实施例中,数据库脚本执行装置还包括回滚模块460,用于当接收到回滚指令时,运行备份表结构,执行回滚操作。
在其中一个实施例中,数据库脚本执行装置还包括执行结果集生成模块470,用于保存待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
在其中一个实施例中,数据库脚本执行装置还包括报告文件生成模块480,用于当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件。
在其中一个实施例中,数据库脚本执行装置还包括邮件发送模块490,用于当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行之后,根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱,以及当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件,根据预设邮件配置文件,将报告文件通过邮件形式发送。
关于数据库脚本执行装置的具体限定可以参见上文中对于数据库脚本执行方法的限定,在此不再赘述。上述数据库脚本执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待执行数据库脚本、配置文件以及表结构等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库脚本执行方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本,根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:分析待执行数据库脚本集,存储待执行数据库脚本集涉及的表结构,得到备份表结构。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到回滚指令时,运行备份表结构,执行回滚操作。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:保存待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件,根据预设邮件配置文件,将报告文件通过邮件形式发送。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,待执行数据库脚本集包括多个待执行数据库脚本,根据数据库连接串,建立与待管理数据库的连接,并识别各待执行数据库脚本的文件名,根据文件名对待执行数据库脚本进行排序,得到数据库脚本排序列表,依次执行数据库脚本排序列表中的待执行数据库脚本,以对待管理数据库进行相应操作,当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:分析待执行数据库脚本集,存储待执行数据库脚本集涉及的表结构,得到备份表结构。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到回滚指令时,运行备份表结构,执行回滚操作。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:保存待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到报告文件生成指令时,根据数据库脚本执行结果集,生成报告文件,根据预设邮件配置文件,将报告文件通过邮件形式发送。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库脚本执行方法,其特征在于,所述方法包括:
当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,所述待执行数据库脚本集包括多个待执行数据库脚本;
根据所述数据库连接串,建立与待管理数据库的连接,并识别各所述待执行数据库脚本的文件名,根据所述文件名对所述待执行数据库脚本进行排序,得到数据库脚本排序列表,得到数据库脚本排序列表;
依次执行所述数据库脚本排序列表中的待执行数据库脚本,以对所述待管理数据库进行相应操作;
当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,所述中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
2.根据权利要求1所述的数据库脚本执行方法,其特征在于,所述依次执行所述数据库脚本排序列表中的待执行数据库脚本,以对所述待管理数据库进行相应操作之前,还包括:
分析所述待执行数据库脚本集;
存储所述待执行数据库脚本集涉及的表结构,得到备份表结构。
3.根据权利要求2所述的数据库脚本执行方法,其特征在于,所述存储所述待执行数据库脚本集涉及的表结构,得到备份表结构之后,还包括:
当接收到回滚指令时,运行所述备份表结构,执行回滚操作。
4.根据权利要求1所述的数据库脚本执行方法,其特征在于,所述当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符之后,还包括:
根据预设邮件配置文件,发送脚本执行失败通知邮件至预设邮箱。
5.根据权利要求1所述的数据库脚本执行方法,其特征在于,所述依次执行所述数据库脚本排序列表中的待执行数据库脚本,以对所述待管理数据库进行相应操作之后,还包括:
保存所述待执行数据库脚本集中每个待执行数据库脚本的执行结果,生成数据库脚本执行结果集。
6.根据权利要求5所述的数据库脚本执行方法,其特征在于,所述生成数据库脚本执行结果集之后,还包括:
当接收到报告文件生成指令时,根据所述数据库脚本执行结果集,生成报告文件;
根据所述预设邮件配置文件,将所述报告文件通过邮件形式发送。
7.一种数据库脚本执行装置,其特征在于,所述装置包括:
数据获取模块,用于当接收到数据库脚本执行指令时,获取预设的数据库连接串以及已上传的待执行数据库脚本集,所述待执行数据库脚本集包括多个待执行数据库脚本;
数据处理模块,用于根据所述数据库连接串,建立与待管理数据库的连接,并识别各所述待执行数据库脚本的文件名,根据所述文件名对所述待执行数据库脚本进行排序,得到数据库脚本排序列表;
脚本执行模块,用于依次执行所述数据库脚本排序列表中的待执行数据库脚本,以对所述待管理数据库进行相应操作;
异常处理模块,用于当检测到有数据库脚本执行失败时,中断数据库脚本执行操作,产生中断点标识符,所述中断点标识符用于指示下一次脚本执行操作从数据库脚本执行失败的中断点处执行。
8.根据权利要求7所述的数据库脚本执行装置,其特征在于,所述装置还包括:
备份模块,用于分析所述待执行数据库脚本集,存储所述待执行数据库脚本集涉及的表结构,得到备份表结构。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910521637.8A CN110377583A (zh) | 2019-06-17 | 2019-06-17 | 数据库脚本执行方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910521637.8A CN110377583A (zh) | 2019-06-17 | 2019-06-17 | 数据库脚本执行方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110377583A true CN110377583A (zh) | 2019-10-25 |
Family
ID=68248991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910521637.8A Pending CN110377583A (zh) | 2019-06-17 | 2019-06-17 | 数据库脚本执行方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377583A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444208A (zh) * | 2020-03-25 | 2020-07-24 | 平安医疗健康管理股份有限公司 | 一种数据更新方法及相关设备 |
CN112181485A (zh) * | 2020-10-20 | 2021-01-05 | 平安银行股份有限公司 | 脚本执行方法、装置、电子设备及存储介质 |
CN112256672A (zh) * | 2020-10-22 | 2021-01-22 | 中国联合网络通信集团有限公司 | 数据库变更审批方法及装置 |
CN113297028A (zh) * | 2021-03-18 | 2021-08-24 | 中国平安人寿保险股份有限公司 | 一种脚本执行方法、装置、计算机设备及存储介质 |
CN113934748A (zh) * | 2021-10-14 | 2022-01-14 | 工银科技有限公司 | 混合型sql脚本文件生成方法、执行方法及装置 |
CN116226092A (zh) * | 2023-04-24 | 2023-06-06 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06149641A (ja) * | 1992-11-06 | 1994-05-31 | Oki Electric Ind Co Ltd | オンラインバックアップ及び障害回復方式 |
CN106294777A (zh) * | 2016-08-12 | 2017-01-04 | 福建天晴数码有限公司 | 浏览器脚本的缓存方法及系统 |
US20170103100A1 (en) * | 2015-10-13 | 2017-04-13 | Bank Of America Corporation | System for multidimensional database administration |
CN107357907A (zh) * | 2017-07-17 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种支持跨版本的数据库升级方法及装置 |
CN109308285A (zh) * | 2018-10-11 | 2019-02-05 | 平安科技(深圳)有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
CN109800145A (zh) * | 2018-12-13 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 脚本执行方法、装置、计算机设备及存储介质 |
-
2019
- 2019-06-17 CN CN201910521637.8A patent/CN110377583A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06149641A (ja) * | 1992-11-06 | 1994-05-31 | Oki Electric Ind Co Ltd | オンラインバックアップ及び障害回復方式 |
US20170103100A1 (en) * | 2015-10-13 | 2017-04-13 | Bank Of America Corporation | System for multidimensional database administration |
CN106294777A (zh) * | 2016-08-12 | 2017-01-04 | 福建天晴数码有限公司 | 浏览器脚本的缓存方法及系统 |
CN107357907A (zh) * | 2017-07-17 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种支持跨版本的数据库升级方法及装置 |
CN109308285A (zh) * | 2018-10-11 | 2019-02-05 | 平安科技(深圳)有限公司 | 数据库脚本管理方法、装置、计算机设备及存储介质 |
CN109800145A (zh) * | 2018-12-13 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 脚本执行方法、装置、计算机设备及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444208A (zh) * | 2020-03-25 | 2020-07-24 | 平安医疗健康管理股份有限公司 | 一种数据更新方法及相关设备 |
CN111444208B (zh) * | 2020-03-25 | 2022-08-30 | 深圳平安医疗健康科技服务有限公司 | 一种数据更新方法及相关设备 |
CN112181485A (zh) * | 2020-10-20 | 2021-01-05 | 平安银行股份有限公司 | 脚本执行方法、装置、电子设备及存储介质 |
CN112181485B (zh) * | 2020-10-20 | 2024-03-15 | 平安银行股份有限公司 | 脚本执行方法、装置、电子设备及存储介质 |
CN112256672A (zh) * | 2020-10-22 | 2021-01-22 | 中国联合网络通信集团有限公司 | 数据库变更审批方法及装置 |
CN112256672B (zh) * | 2020-10-22 | 2023-05-30 | 中国联合网络通信集团有限公司 | 数据库变更审批方法及装置 |
CN113297028A (zh) * | 2021-03-18 | 2021-08-24 | 中国平安人寿保险股份有限公司 | 一种脚本执行方法、装置、计算机设备及存储介质 |
CN113934748A (zh) * | 2021-10-14 | 2022-01-14 | 工银科技有限公司 | 混合型sql脚本文件生成方法、执行方法及装置 |
CN116226092A (zh) * | 2023-04-24 | 2023-06-06 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
CN116226092B (zh) * | 2023-04-24 | 2023-08-08 | 北京炎黄广智科技发展有限责任公司 | 数据库更新方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377583A (zh) | 数据库脚本执行方法、装置、计算机设备和存储介质 | |
US7003781B1 (en) | Method and apparatus for correlation of events in a distributed multi-system computing environment | |
US6182245B1 (en) | Software test case client/server system and method | |
CN110377336A (zh) | 接口文档生成方法、装置、计算机设备和存储介质 | |
CN110941546A (zh) | Web页面用例的自动化测试方法、装置、设备及存储介质 | |
US11042464B2 (en) | Log record analysis based on reverse engineering of log record formats | |
CN109325030A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN107003931B (zh) | 将测试验证从测试执行分离 | |
CN103514223A (zh) | 一种数据仓库数据同步方法和系统 | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN101866315B (zh) | 软件开发工具的测试方法及系统 | |
CN111930354B (zh) | 一种用于软件开发的框架组件系统及其构建方法 | |
US11347619B2 (en) | Log record analysis based on log record templates | |
CN106991104A (zh) | 数据库脚本部署装置和数据库脚本部署方法 | |
CN111124872A (zh) | 基于差异代码分析的分支检测方法、装置及存储介质 | |
CN108647147A (zh) | 一种利用图谱分析执行自动化测试机器人及其使用方法 | |
CN110262966A (zh) | 一种覆盖信息获取方法及装置 | |
CN107357721B (zh) | 测试系统的方法及装置 | |
CN116360931A (zh) | 一种链路追踪方法、装置、系统及存储介质 | |
AU2016100156A4 (en) | Data Structure, Model for Populating a Data Structure and Method of Programming a Processing Device Utilising a Data Structure | |
CN115705297A (zh) | 代码调用检测方法、装置、计算机设备以及存储介质 | |
CN112559641A (zh) | 拉链表的处理方法及装置、可读存储介质及电子设备 | |
CN114089959A (zh) | 一种企业管理软件快速开发系统 | |
Tadano et al. | Automatic synthesis of SRN models from system operation templates for availability analysis | |
CN109992475A (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 |