CN113050970B - Sql数据库的插件更新方法、装置、设备及存储介质 - Google Patents

Sql数据库的插件更新方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113050970B
CN113050970B CN202110395319.9A CN202110395319A CN113050970B CN 113050970 B CN113050970 B CN 113050970B CN 202110395319 A CN202110395319 A CN 202110395319A CN 113050970 B CN113050970 B CN 113050970B
Authority
CN
China
Prior art keywords
plug
operation instruction
preset
instruction
judging whether
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.)
Active
Application number
CN202110395319.9A
Other languages
English (en)
Other versions
CN113050970A (zh
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 Hanyun Technology Co ltd
Original Assignee
Shenzhen Hanyun 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 Hanyun Technology Co ltd filed Critical Shenzhen Hanyun Technology Co ltd
Priority to CN202110395319.9A priority Critical patent/CN113050970B/zh
Publication of CN113050970A publication Critical patent/CN113050970A/zh
Application granted granted Critical
Publication of CN113050970B publication Critical patent/CN113050970B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据库更新领域,公开了一种SQL数据库的插件更新方法、装置、设备及存储介质。该方法包括:接收SQL数据库的操作指令;判断所述操作指令是否属于预置加载更新指令;若不是,则调用预置插件处理库中的插件,基于所述插件执行所述操作指令;若是,则基于所述操作指令,对预置插件注册表进行修改处理。

Description

SQL数据库的插件更新方法、装置、设备及存储介质
技术领域
本发明涉及数据库更新领域,尤其涉及一种SQL数据库的插件更新方法、装置、设备及存储介质。
背景技术
现今数据库市场对数据库产品的要求不止于性能优越、稳定高可用,对维护简便、功能扩展的需求也越来越多,而且不同的生产环境、项目背景里对运维和功能扩展的需求往往不同,需求多且更新快,而数据库需要一直持续稳定运行,不适合频繁更新。因此不能作为产品的固有功能添加和发布。目前的各大数据库产品均不支持定制自定义功能命令。
目前市场上的数据库产品只支持标准SQL和本身固定的运维命令集。但是,数据库产品作为信息系统中的基础,对稳定性的要求相当高,数据库产品不支持新功能的定制化开发、扩定义的运维命令和复杂的数据分析运算,只支持以插件的方式增加固有功能组件的备选版本,例如增加一个存储引擎实现以提高在特殊场景下的效率,数据库应用到各行各业的信息系统中,各项目需求在数据库定制一些功能命令。数据库产品并不为实施项目针对性地新增、修改功能命令,而是先通过大规模的市场调研确定功能命令需求,再以传统的方式把数据库升级至较高版本以支持新的功能命令,周期长、灵活性差、成本高。因此,需要一种能高效定制数据库功能,并且能提高信息系统的开发、部署和运行效率的技术
发明内容
本发明的主要目的在于解决数据库功能扩展更新复杂且耗时较长的技术问题。
本发明第一方面提供了一种SQL数据库的插件更新方法,所述SQL数据库的插件更新方法包括:
接收SQL数据库的操作指令;
判断所述操作指令是否属于预置加载更新指令;
若不是,则依次调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
若是,则基于所述操作指令,对预置插件注册表进行修改处理。
可选的,在本发明第一方面的第一种实现方式中,所述判断所述操作指令是否属于预置加载更新指令包括:
对所述操作指令进行语法分析,判断所述操作指令的语法结构是否与于预置加载更新指令一致。
可选的,在本发明第一方面的第二种实现方式中,所述调用预置插件处理库中的插件,基于所述插件执行所述操作指令包括:
读取预置插件处理库中的插件,判断所述插件处理库是否存在下一个可调用的插件;
若不存在,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若存在,则读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令。
可选的,在本发明第一方面的第三种实现方式中,所述读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令包括:
读取所述插件处理库中可调用的插件,基于所述插件对所述操作指令进行运行处理,得到反馈信息值;
判断所述反馈信息值是否为预置执行成功值;
若是执行成功值,则将所述操作指令执行成功的信息发送至预置信息输出端口;若不是执行成功值,则判断所述反馈信息值是否小于所述执行成功值;
若小于,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若不小于,则重新读取预置插件处理库中的插件,以及判断所述插件处理库是否存在下一个可调用的插件。
可选的,在本发明第一方面的第四种实现方式中,所述基于所述操作指令,对预置插件注册表进行修改处理包括:
判断所述操作指令是否为预置加载插件指令;
若不是加载插件指令,则判断所述操作指令是否为预置卸载插件指令;
若是卸载插件指令,则获取当前插件的引用次数,判断所述引用次数是否大于零;
若大于零,则将所述当前插件正在被使用无法被卸载的信息发送至预置信息输出端口;
若不大于零,则将预置插件注册表中所述操作指令对应的插件进行删除处理,并卸载所述操作指令对应的插件;
若不是卸载插件指令,则对所述操作指令进行语法分析,得到所述操作指令的指令类型,并在所述指令类型对应的标准SQL数据库中执行所述操作指令;
若是加载插件指令,则根据所述操作指令,在SQL数据库中plugin dir插件查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录。
可选的,在本发明第一方面的第五种实现方式中,在所述根据所述操作指令,在SQL数据库中plugin dir查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录之前,还包括:
检查所述操作指令指定的插件名称和动态库名称是否已存在于预置插件注册信息表中;
若重复,则将所述操作指令执行成功的信息发送至预置信息输出端口。
可选的,在本发明第一方面的第六种实现方式中,在所述接收SQL数据库的操作指令之前,还包括:
检测当前运行系统环境,判断当前操作系统类型是否为Linux;
若操作系统类型为Linux,则启动Linux shell脚本运行环境;
若操作系统类型不为Linux,则判断当前操作系统类型是否为Windows;
若操作系统类型为Windows,则启动Wndows shell脚本运行环境;
若操作系统类型不为Windows,则启动osascript脚本运行环境。
本发明第二方面提供了一种SQL数据库的插件更新装置,包括:
接收模块,用于接收SQL数据库的操作指令;
判断模块,用于判断所述操作指令是否属于预置加载更新指令;
调用模块,用于若不是,则调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
修改模块,用于若是,则基于所述操作指令,对预置插件注册表进行修改处理。
本发明第三方面提供了一种SQL数据库的插件更新设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述SQL数据库的插件更新设备执行上述的SQL数据库的插件更新方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的SQL数据库的插件更新方法。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
附图说明
图1为本发明实施例中SQL数据库的插件更新方法的第一个实施例示意图;
图2为本发明实施例中SQL数据库的插件更新方法的第二个实施例示意图;
图3为本发明实施例中SQL数据库的插件更新方法的第三个实施例示意图;
图4为本发明实施例中SQL数据库的插件更新装置的一个实施例示意图;
图5为本发明实施例中SQL数据库的插件更新装置的另一个实施例示意图;
图6为本发明实施例中SQL数据库的插件更新设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种SQL数据库的插件更新方法、装置、设备及存储介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中SQL数据库的插件更新方法的第一个实施例包括:
101、接收SQL数据库的操作指令;
在本实施例中,接收SQL数据库的环境上可以是Linux的环境,也可以是Windows环境,也可以是Mac OS X环境。在Linux环境中用Linux shell脚本作为运行环境接收SQL数据库操作指令,在Windows环境中用Windows shell脚本作为运行环境接收SQL数据库操作指令,在Mac OS X环境中用osascript作为运行环境接收SQL数据库操作指令。
102、判断操作指令是否属于预置加载更新指令;
在本实施例中,在判断操作指令是否为加载更新指令,采用语法分析判断操作指令是否为设置的SQL指令。
103、若不是,则依次调用预置插件处理库中的插件,基于插件执行操作指令;
在本实施例中,逐一调用所有已注册插件,直到找到相应插件,插件接口返回非正数,或已调用过所有插件为止。插件开发规范中规定,若传入当前插件的SQL命令符合本插件自定义功能命令的语法,则继续处理该命令,否则立即返回一个正整数。执行命令成功则返回0,否则返回小于0的错误码。
104、若是,则基于操作指令,对预置插件注册表中进行修改处理。
在本实施例中,先检查语句中指定的插件名、动态链接库名是否已存在插件注册信息表中,再在变量plugin_dir指定的目录中查找指定动态链接库文件并加载,最后在插件注册信息表中插入一条记录。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
请参阅图2,本发明实施例中SQL数据库的插件更新方法的第二个实施例包括:
201、接收SQL数据库的操作指令;
202、对操作指令进行语法分析,判断操作指令的语法结构是否与于预置加载更新指令一致;
在本实例中,语法分析主要是对操作指令的语法结构进行分析,例如:“SELECTc1,c1+3as c2,c3 aliasC3,”字符串”FROM table1 WHERE id>1and id<100”从表table1中查询id大于1小于100的记录。查询的字段为列c1,根据c1计算得到的c2,别名为aliasC3的c3,还有一个匿名字段字符串常量”字符串”。
203、若不是,则读取预置插件处理库中的插件,判断插件处理库是否存在可调用的插件;
在本实例中,插件处理库中存储各类插件,在判断是否可调用可以逐一判断是否可以调用,也可以是进行结构划分,然后在对划分区域的插件进行逐一判断。
204、若不存在,则将操作指令执行错误的信息发送至预置信息输出端口;
在本实例中,不存在可以处理的插件,返回值为0,就将“错误指令”发送到显示的端口处,提醒操作者不能执行。
205、若存在,则读取所述插件处理库中可调用的插件,基于所述插件对所述操作指令进行运行处理,得到反馈信息值;
本实施例中,读取所述插件处理库中可调用的插件,调用该插件的标准接口,然后进行运行处理,得到一个反馈信息值,该信息值可以是0也可也是负数,还可以是正数。
206、判断所述反馈信息值是否为预置执行成功值;
在本实施例中,该执行成功值是0,判断反馈信息值是不是0。
207、若是执行成功值,则将所述操作指令执行成功的信息发送至预置信息输出端口;
在本实施例中,反馈信息值为0则表示执行命令成功,将信息通知发送至输出端口中。
208、若不是执行成功值,则判断所述反馈信息值是否小于所述执行成功值;
在本实施例中,反馈信息值不是0,则判断反馈信息值是否小于0。
209、若小于,则将所述操作指令执行错误的信息发送至预置信息输出端口;
在本实施例中,如果反馈信息值小于零,则说明执行遇到错误,将该错误信息发送至信息输出端口中。
210、若不小于,则重新读取预置插件处理库中的插件,以及判断所述插件处理库是否存在下一个可调用的插件;
在本实施例中,如果不小于,则需要重新调用插件数据库中的插件,并重新进行,属于一种循环操作。
211、若是,则基于操作指令,对预置插件注册表中进行修改处理。
本实施例类似于第一个实施例,请参考第一个实施例,在此不做赘述。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
请参阅图3,本发明实施例中SQL数据库的插件更新方法的第三个实施例包括:
301、检测当前运行系统环境,判断当前操作系统类型是否为Linux;
302、若操作系统类型为Linux,则启动Linux shell脚本运行环境;
303、若操作系统类型不为Linux,则判断当前操作系统类型是否为Windows;
304、若操作系统类型为Windows,则启动Windows shell脚本运行环境;
305、若操作系统类型不为Windows,则启动osascript脚本运行环境。
301-305实施例中,步骤301-305是描述计算机如何分析出整个脚本运行环境,采用数据树的形式实现。在另一种实施例中,可以直接采用字符匹配或者是名称匹配的方式,通过映射的方式实现对系统环境的判断,两种实现方式上数据结构是不同的。
306、接收SQL数据库的操作指令;
307、判断操作指令是否属于预置加载更新指令;
308、若不是,则依次调用预置插件处理库中的插件,基于插件执行操作指令;
306-308实施例类似第一个实施例,请参考第一个实施例,在此不做赘述。
309、若是,则判断所述操作指令是否为预置加载插件指令;
在本实施例中,可以设置指令值,指令值为801则判定为加载指令,而指令值为806则判定是删除指令,而指令值设置在此不做限定。
310、若不是加载插件指令,则判断所述操作指令是否为预置卸载插件指令;
在本实施例中,不是加载指令,则需要再进行分析是否为卸载指令,在分析过程中,可以采用语法分析。
311、若是卸载插件指令,则获取当前插件的引用次数,判断所述引用次数是否大于零;
在本实施例中,插件的引用次数是为不小于零的整数,判断引用次数即是判断该插件是否被使用。
312、若大于零,则将所述当前插件正在被使用无法被卸载的信息发送至预置信息输出端口;
在本实施例中,插件被占用了,则无法进行卸载,并将该信息发送到预置信息输出端口。
313、若不大于零,则将预置插件注册表中所述操作指令对应的插件进行删除处理,并卸载所述操作指令对应的插件;
在本实施例中,插件未被占用,先将插件注册表需要删除的插件删除,然后在将系统中的插件进行卸载。
314、若不是卸载插件指令,则对所述操作指令进行语法分析,得到所述操作指令的指令类型,并在所述指令类型对应的标准SQL数据库中执行所述操作指令;
在本实施例中,不是加载插件指令和卸载插件指令,则是SQL数据库的其他指令,解析该指令类型,将该操作指令在标准SQL数据库中执行该操作,引用标准SQL数据库的操作,并不是本申请的重点,在此不做赘述。
315、若是加载插件指令,则检查操作指令指定的插件名称和动态库名称是否已存在于预置插件注册信息表中;
316、若重复,则将操作指令执行成功的信息发送至预置信息输出端口;
315-316实施例中,判断为增加插件的指令,则先要读取操作指令的插件是否已经被安装,若已经被安装则直接反馈安装成功,不做任何操作处理,并将安装成功的信息发送到显示端口中,提醒操作者已完成指令。
317、若是不重复,则根据所述操作指令,在SQL数据库中plugin dir插件查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录。
在本实施例中,plugin dir是一个插件,主要是用来检索获取传入的插件__FILE__的文件系统目录路径,在文件目录路径中查询出操作指令对应的数据。安装加载查询出的插件数据,并将查询到的插件记录在注册表中。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
上面对本发明实施例中SQL数据库的插件更新方法进行了描述,下面对本发明实施例中SQL数据库的插件更新装置进行描述,请参阅图4,本发明实施例中SQL数据库的插件更新装置一个实施例包括:
接收模块401,用于接收SQL数据库的操作指令;
判断模块402,用于判断所述操作指令是否属于预置加载更新指令;
调用模块403,用于若不是,则依次调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
修改模块404,用于若是,则基于所述操作指令,对预置插件注册表进行修改处理。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
请参阅图5,本发明实施例中SQL数据库的插件更新装置的另一个实施例包括:
接收模块401,用于接收SQL数据库的操作指令;
判断模块402,用于判断所述操作指令是否属于预置加载更新指令;
调用模块403,用于若不是,则依次调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
修改模块404,用于若是,则基于所述操作指令,对预置插件注册表进行修改处理。
其中,所述判断模块402具体用于:
对所述操作指令进行语法分析,判断所述操作指令的语法结构是否与于预置加载更新指令一致。
其中,所述调用模块403包括:
调用判断单元4031,用于读取预置插件处理库中的插件,判断所述插件处理库是否存在下一个可调用的插件;
调用通知单元4032,用于若不存在,则将所述操作指令执行错误的信息发送至预置信息输出端口;
调用执行单元4033,用于若存在,则读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令。
其中,所述调用执行单元4033具体用于:
读取所述插件处理库中可调用的插件,基于所述插件对所述操作指令进行运行处理,得到反馈信息值;
判断所述反馈信息值是否为预置执行成功值;
若是执行成功值,则将所述操作指令执行成功的信息发送至预置信息输出端口;若不是执行成功值,则判断所述反馈信息值是否小于所述执行成功值;
若小于,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若不小于,则重新读取预置插件处理库中的插件,以及判断所述插件处理库是否存在下一个可调用的插件。
其中,所述修改模块404具体用于:
判断所述操作指令是否为预置加载插件指令;
若不是加载插件指令,则判断所述操作指令是否为预置卸载插件指令;
若是卸载插件指令,则获取当前插件的引用次数,判断所述引用次数是否大于零;
若大于零,则将所述当前插件正在被使用无法被卸载的信息发送至预置信息输出端口;
若不大于零,则将预置插件注册表中所述操作指令对应的插件进行删除处理,并卸载所述操作指令对应的插件;
若不是卸载插件指令,则对所述操作指令进行语法分析,得到所述操作指令的指令类型,并在所述指令类型对应的标准SQL数据库中执行所述操作指令;
若是加载插件指令,则根据所述操作指令,在SQL数据库中plugin dir插件查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录。
其中,所述SQL数据库的插件更新装置还包括去重模块405,所述去重模块405具体用于:
检查所述操作指令指定的插件名称和动态库名称是否已存在于预置插件注册信息表中;
若重复,则将所述操作指令执行成功的信息发送至预置信息输出端口。
其中,所述SQL数据库的插件更新装置还包括环境监测模块406,所述环境监测模块406具体用于:
检测当前运行系统环境,判断当前操作系统类型是否为Linux;
若操作系统类型为Linux,则启动Linux shell脚本运行环境;
若操作系统类型不为Linux,则判断当前操作系统类型是否为Windows;
若操作系统类型为Windows,则启动Windows shell脚本运行环境;
若操作系统类型不为Windows,则启动osascript脚本运行环境。
在本发明实施例中,基于SQL命令区分并以可动态加载的插件实现自定义功能命令,例如运维命令、复杂的数据分析运算,把复杂实现下沉到数据库,简化信息系统的开发、部署,提高运行效率,使数据库产品的功能可以更灵活和简便的调整。
上面图4和图5从模块化功能实体的角度对本发明实施例中的SQL数据库的插件更新装置进行详细描述,下面从硬件处理的角度对本发明实施例中SQL数据库的插件更新设备进行详细描述。
图6是本发明实施例提供的一种SQL数据库的插件更新设备的结构示意图,该SQL数据库的插件更新设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对SQL数据库的插件更新设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在SQL数据库的插件更新设备600上执行存储介质630中的一系列指令操作。
SQL数据库的插件更新设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的SQL数据库的插件更新设备结构并不构成对基于SQL数据库的插件更新设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述SQL数据库的插件更新方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种SQL数据库的插件更新方法,其特征在于,包括步骤:
接收SQL数据库的操作指令;
判断所述操作指令是否属于预置加载更新指令;
若不是,则依次调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
若是,则基于所述操作指令,对预置插件注册表进行修改处理; 其中,所述判断所述操作指令是否属于预置加载更新指令包括:
对所述操作指令进行语法分析,判断所述操作指令的语法结构是否与于预置加载更新指令一致;
其中,所述依次调用预置插件处理库中的插件,基于所述插件执行所述操作指令包括:
读取预置插件处理库中的插件,判断所述插件处理库是否存在下一个可调用的插件;
若不存在,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若存在,则读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令;
其中,所述读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令包括:
读取所述插件处理库中可调用的插件,基于所述插件对所述操作指令进行运行处理,得到反馈信息值;
判断所述反馈信息值是否为预置执行成功值;
若是执行成功值,则将所述操作指令执行成功的信息发送至预置信息输出端口;
若不是执行成功值,则判断所述反馈信息值是否小于所述执行成功值;
若小于,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若不小于,则重新读取预置插件处理库中的插件,以及判断所述插件处理库是否存在下一个可调用的插件。
2.根据权利要求1所述的SQL数据库的插件更新方法,其特征在于,所述基于所述操作指令,对预置插件注册表进行修改处理包括:
判断所述操作指令是否为预置加载插件指令;
若不是加载插件指令,则判断所述操作指令是否为预置卸载插件指令;
若是卸载插件指令,则获取当前插件的引用次数,判断所述引用次数是否大于零;
若大于零,则将所述当前插件正在被使用无法被卸载的信息发送至预置信息输出端口;
若不大于零,则将预置插件注册表中所述操作指令对应的插件进行删除处理,并卸载所述操作指令对应的插件;
若不是卸载插件指令,则对所述操作指令进行语法分析,得到所述操作指令的指令类型,并在所述指令类型对应的标准SQL数据库中执行所述操作指令;
若是加载插件指令,则根据所述操作指令,在SQL数据库中plugin dir插件查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录。
3.根据权利要求2所述的SQL数据库的插件更新方法,其特征在于,在所述根据所述操作指令,在SQL数据库中plugin dir查询出所述操作指令对应的数据,以及加载所述数据,并在所述插件注册表中增加所述数据的插件记录之前,还包括:
检查所述操作指令指定的插件名称和动态库名称是否已存在于预置插件注册信息表中;
若重复,则将所述操作指令执行成功的信息发送至预置信息输出端口。
4.根据权利要求1-3中任一项所述的SQL数据库的插件更新方法,其特征在于,在所述接收SQL数据库的操作指令之前,还包括:
检测当前运行系统环境,判断当前操作系统类型是否为Linux;
若操作系统类型为Linux,则启动Linux shell脚本运行环境;
若操作系统类型不为Linux,则判断当前操作系统类型是否为Windows;
若操作系统类型为Windows,则启动Windows shell脚本运行环境;
若操作系统类型不为Windows,则启动osascript脚本运行环境。
5.一种SQL数据库的插件更新装置,其特征在于,所述SQL 数据库的插件更新装置包括:
接收模块,用于接收SQL数据库的操作指令;
判断模块,用于判断所述操作指令是否属于预置加载更新指令;
调用模块,用于若不是,则调用预置插件处理库中的插件,基于所述插件执行所述操作指令;
修改模块,用于若是,则基于所述操作指令,对预置插件注册表进行修改处理;
其中,所述判断模块具体用于:
对所述操作指令进行语法分析,判断所述操作指令的语法结构是否与于预置加载更新指令一致;
其中,所述调用模块包括:
调用判断单元,用于读取预置插件处理库中的插件,判断所述插件处理库是否存在下一个可调用的插件;
调用通知单元,用于若不存在,则将所述操作指令执行错误的信息发送至预置信息输出端口;
调用执行单元,用于若存在,则读取所述插件处理库中可调用的插件,基于所述插件执行所述操作指令;
其中,所述调用执行单元具体用于:
读取所述插件处理库中可调用的插件,基于所述插件对所述操作指令进行运行处理,得到反馈信息值;
判断所述反馈信息值是否为预置执行成功值;
若是执行成功值,则将所述操作指令执行成功的信息发送至预置信息输出端口;
若不是执行成功值,则判断所述反馈信息值是否小于所述执行成功值;
若小于,则将所述操作指令执行错误的信息发送至预置信息输出端口;
若不小于,则重新读取预置插件处理库中的插件,以及判断所述插件处理库是否存在下一个可调用的插件。
6.一种SQL数据库的插件更新设备,其特征在于,所述SQL数据库的插件更新设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述SQL数据库的插件更新设备执行如权利要求1-4中任一项所述的SQL数据库的插件更新方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的SQL数据库的插件更新方法。
CN202110395319.9A 2021-04-13 2021-04-13 Sql数据库的插件更新方法、装置、设备及存储介质 Active CN113050970B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110395319.9A CN113050970B (zh) 2021-04-13 2021-04-13 Sql数据库的插件更新方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110395319.9A CN113050970B (zh) 2021-04-13 2021-04-13 Sql数据库的插件更新方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113050970A CN113050970A (zh) 2021-06-29
CN113050970B true CN113050970B (zh) 2023-03-10

Family

ID=76519211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110395319.9A Active CN113050970B (zh) 2021-04-13 2021-04-13 Sql数据库的插件更新方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113050970B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284147A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种插件适配方法和装置
CN109739868A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种数据处理方法及其相关设备
CN112115150A (zh) * 2020-08-03 2020-12-22 上海金仕达软件科技有限公司 嵌入式内存数据库的数据管理方法、终端设备及介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716399B2 (en) * 2007-05-25 2010-05-11 Red Hat, Inc. Method and system for data management interface with intelligent plugins that determine whether to perform the requested data operation received from an application
GB2466220A (en) * 2008-12-12 2010-06-16 Symbian Software Ltd Installing or uninstalling computer programs using installer plug-in modules
US10372465B2 (en) * 2016-12-23 2019-08-06 Oracle International Corporation System and method for controlling batch jobs with plugins

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284147A (zh) * 2018-09-06 2019-01-29 平安科技(深圳)有限公司 一种插件适配方法和装置
CN109739868A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种数据处理方法及其相关设备
CN112115150A (zh) * 2020-08-03 2020-12-22 上海金仕达软件科技有限公司 嵌入式内存数据库的数据管理方法、终端设备及介质

Also Published As

Publication number Publication date
CN113050970A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
KR100326745B1 (ko) 통합오토메이션개발시스템및그통합방법
US8244780B1 (en) Parameter oriented automated database command
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN111061489B (zh) 一种多平台编译检测方法、装置、设备及介质
US20230259358A1 (en) Documentation enforcement during compilation
EP1492035A2 (en) Defining user-defined data types and/or user-defined methods using an interpreted programming language
CN114020490A (zh) 一种进程间通信系统、方法及计算设备
US20040123308A1 (en) Hybird of implicit and explicit linkage of windows dynamic link labraries
CN113050970B (zh) Sql数据库的插件更新方法、装置、设备及存储介质
CN111124872A (zh) 基于差异代码分析的分支检测方法、装置及存储介质
CN111352631B (zh) 一种接口兼容性检测方法及装置
CN112363728A (zh) 一种支持持续集成构建的跨平台编译方法及系统
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN114936368A (zh) 一种Java内存木马检测方法、终端设备及存储介质
CN115544518A (zh) 漏洞扫描引擎实现方法、装置、漏洞扫描方法及电子设备
CN110333883B (zh) 一种更新持久化数据的方法及装置
CN112231176B (zh) 一种简便的VxWorks操作系统系统日志记录方法
CN115203209A (zh) 基于hibernate拦截器的分表方法、装置、电子设备及存储介质
US20020198860A1 (en) Method, computer program product, and system for modifying populated databases utilizing a reload utility
CN111400396A (zh) 数据同步脚本的生成方法、装置及计算机可读存储介质
CN112559444A (zh) Sql文件迁移方法、装置、存储介质及设备
CN113190264B (zh) 一种基于jpa的自动化数据版本生成及应用的装置和方法
CN112860309B (zh) 基于iOS的静态库调用方法、装置、设备及存储介质
CN116991427B (zh) 一种应用编译方法、装置、计算设备及存储介质
CN115421785B (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
CB03 Change of inventor or designer information

Inventor after: Liang Junqiang

Inventor after: Xiong Zhiqiang

Inventor before: Huang Liqiang

Inventor before: Xiong Zhiqiang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant