CN112052225B - 一种db2数据库静态嵌入式sql绑定优雅部署方法 - Google Patents
一种db2数据库静态嵌入式sql绑定优雅部署方法 Download PDFInfo
- Publication number
- CN112052225B CN112052225B CN202010880251.9A CN202010880251A CN112052225B CN 112052225 B CN112052225 B CN 112052225B CN 202010880251 A CN202010880251 A CN 202010880251A CN 112052225 B CN112052225 B CN 112052225B
- Authority
- CN
- China
- Prior art keywords
- file
- sqc
- bnd
- deployment
- files
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000003068 static effect Effects 0.000 title claims abstract description 17
- 238000012795 verification Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
- G06F16/166—File name conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种DB2数据库静态嵌入式SQL绑定优雅部署方法,根据开发人员提交的编辑文件可自动生成不同属性的.bnd文件,从而在应用服务器集群部署时实现优雅部署,绑定时不影响数据库中存量package包,该方案解决了由于被绑定文件对应的package包正在被使用导致部署失败的问题,避免了对集群整体进行不必要的停机,保证了业务的连续性,降低了部署风险。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种DB2数据库静态嵌入式SQL绑定优雅部署方法。
背景技术
DB2是IBM出品的一款关系型数据库,被广泛应用于金融、通讯等领域;DB2数据库系统为用户提供了多样的编程接口,以适用于各种应用需求。SQL语句从编译和运行的角度可以分为两种,静态SQL和动态SQL,静态SQL由于其稳定性、高性能等特性,受到实时交易系统广泛青睐,如银行的实时支付交易系统等;目前DB2数据库静态SQL更新后,需要对其依赖的package包进行绑定,为避免被绑定package包正在被使用导致绑定失败,则需要停止应用服务进行部署。特别是对于一些需要7*24小时无停机窗口的业务系统,只能选择系统服务低频期进行停机部署,同时要求从部署工艺上尽量缩短部署时间,以减少对业务影响,但是对于银行业等服务质量要求高的行业,不仅需要中断业务,一旦部署出现问题,将延长业务中断时间,影响客户体验也会有损企业的声誉,因此依然存在较大的部署风险。
发明内容
为解决现有技术的不足,本发明提出一种DB2数据库静态嵌入式SQL绑定优雅部署方法,根据开发人员提交的.sqc文件可自动生成不同属性的.bnd文件,从而在集群部署时实现优雅部署,数据库绑定时不影响存量package包,该方案解决了由于被绑定的package正在被使用导致部署失败的问题,避免了对集群整体进行不必要的停机,保证了业务的连续性,降低了部署风险。
为实现以上目的,本发明所采用的技术方案包括:
一种DB2数据库静态嵌入式SQL绑定优雅部署方法,其特征在于,包括:
S1、判断需要进行部署的新增.sqc文件的文件名是否已经存在于原makefile文件中;
S2、对于文件名已经存在于原makefile文件中的.sqc文件,自动重新命名.sqc文件,编译生成区别于原有.bnd文件新的不同名.bnd文件,并依据新生成的.bnd文件生成增量部署包。
进一步地,所述步骤S1包括使用find查找需要进行编译的.sqc文件的文件名是否已经存在于原makefile文件中。
进一步地,所述步骤S2还包括对于需要编译的.sqc文件的文件名不存在于原makefile文件中的情况,直接生成与需要进行编译的.sqc文件相同文件名的.bnd文件并使用该.bnd文件生成增量部署包。
进一步地,所述步骤S2还包括对于需要编译的.sqc文件的文件名已经存在于原makefile文件中的情况,对该.sqc文件与存量同名.sqc文件进行md5值校验,并对md5值校验不同的.sqc新提交文件重新命名生成新的不同名的.sqc文件,并对新命名的.sqc文件编译生成对应文件名的.bnd文件。
进一步地,所述步骤S2还包括对md5值校验相同的.sqc文件向开发人员反馈提示,以便开发人员确定提交文件的准确性。
进一步地,所述方法还包括:
S3、根据生成的.bnd文件生成upd文件;所述upd文件包含需要进行绑定的.bnd文件列表;
S4、部署时,解析upd文件,根据upd文件中.bnd文件列表,逐条进行绑定。
进一步地,所述步骤S4还包括对应用集群服务器进行部署时,在不影响其余服务器正常运行情况下对集群中的一个或多个服务器进行部署。
本发明还涉及一种自动化操作方案,其特征在于,包括以下相互数据连接的模块:
新增文件核验模块,用于判断需要进行编译.sqc文件的文件名是否已经存在于原makefile文件中;
md5校验模块,用于当需要进行编译的.sqc与存量.sqc文件重名时,通过md5校验值比对两个文件是否一致;
增量部署包生成模块,用于将需要进行编译的.sqc文件生成区别于现有存量的.bnd文件,并进一步根据该.bnd文件生成增量部署包。
本发明的有益效果为:
采用本发明所述DB2数据库静态嵌入式SQL绑定优雅部署方法,通过添加在生成.bnd文件阶段的重命名机制,使系统部署中的任意更改均转换为新增文件,不需要对原有数据库package包进行删改替换,从而避免在部署过程中对于当前运行系统的直接影响,特别是应用在集群部署架构,可以通过本方案简便的实现各服务器的分批次升级,能够在升级同时保证集群对外服务不中断,同时若部署存在问题也可即时停止升级过程,最大程度保障业务连续性,降低系统部署的风险;另一方面,对于系统的重大升级事宜,可以避免采用高风险的一次性迁移手段,允许新老系统并行使用,保障系统平滑过渡,实现无风险切换。
附图说明
图1为本发明DB2数据库静态嵌入式SQL绑定优雅部署方法流程示意图。
具体实施方式
为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
C语言静态嵌入式SQL编程,编写.sqc源码文件,在数据库客户端通过编目连接数据库,并进行编译,编译过程大致经过了SQL解析、语义检查、重写和优化、生成执行计划等几个过程。
SQC文件预编译后会生成带有bnd后缀的文件,.bnd文件经过bind操作后,可在数据库生成package包,创建程序包的过程中,数据库管理器在执行程序时会调用这些程序包,为SQL执行提供访问数据库策略;每次编译后的.bnd会生成新的时间戳,在运行时需保证.bnd文件与数据库中package包的时间戳一致,所以编译后再部署时,需要进行显式绑定。如果对存量的.bnd程序包进行绑定,需确保原数据库中package包没有被在使用。
本发明根据开发人员提交的编辑文件可自动生成不同属性的.bnd文件,从而在集群部署时实现优雅部署,无需再考虑是否为存量.bnd文件,无需担心由于被绑定的程序包正在被使用导致部署失败。
如图1所示为本发明DB2数据库静态嵌入式SQL绑定优雅部署方法流程示意图,包括以下步骤:
S1、判断需要进行编译的.sqc文件的文件名是否已经存在于原有makefile文件中。首先,通过使用自动化构建工具buildforge检出开发人员提交的.sqc文件并调用脚本进行文件的核验;使用find查找提交的.sqc文件的文件名是否已经存在于原有makefile文件中。
S2、对于新提交的.sqc文件的文件名已经存在于原有makefile文件中的情况,修改新提交.sqc文件文件名,并将原makefile中对应的文件名替换为新命名的文件名,然后编译生成新的不同名.bnd文件,根据新生成的.bnd文件生成增量部署包;过程中包括在生成不同名.bnd文件前对新提交的.sqc文件进行md5值校验,并对md5值校验不同的新增.sqc文件生成区别于新增.sqc文件文件名的文件,对md5值校验相同的新提交.sqc文件向开发人员反馈提示。而对于新提交的.sqc文件的文件名不存在于原有makefile文件中的情况,直接生成与新增.sqc文件相同文件名的.bnd文件并使用该.bnd文件生成增量部署包。
S3、根据生成的.bnd文件生成upd文件;所述upd文件包含需要进行绑定的.bnd文件列表。
S4、部署时,解析upd文件,根据upd文件中.bnd文件列表,逐条进行绑定。特别是,对应用集群服务器进行部署时,在不影响其余服务器正常运行情况下对集群中的一个或多个服务器进行部署。例如,对于应用集群服务器,可选择其中一台服务器作为试点应用服务器进行试点部署,由于该部署bind的是数据库新package包,不会影响数据库中原有package包的调用,所以其他服务器可以正常对外服务;待试点应用服务器验证通过后再进行后续部署,同时若试点服务器部署后异常可暂停该试点服务器的对外服务,同样不会影响其他服务器正常对外服务。
本发明还涉及一种自动化生成部署包的方案,其特征在于,包括以下相互连接的模块:新增文件核验模块,用于判断需要进行编译的新增.sqc文件的文件名是否已经存在于原有makefile文件中;md5校验模块,用于对新增.sqc文件进行md5值校验;增量部署包生成模块,用于将新增.sqc文件生成区别于原有.sqc的文件,并编译生成.bnd文件,并进一步根据所述不同名.bnd文件自动生成增量部署包。
本发明所述DB2数据库静态嵌入式SQL绑定优雅部署方法的其中一个适用领域是银行金融系统业务。例如对于银行系统的联机系统(如集中收单联机系统)是一种典型的集群部署架构,当需要对此类集群架构的应用服务基础操作系统进行更新时,须进行重新编译、重新绑定的问题,可以通过应用本发明所述方法及系统进行解决。
例如,当需要将银行的集中收单联机系统的应用服务基础操作系统由AIX系统变更为LINUX系统,由于集中收单联机系统采用C语言静态嵌入式SQL开发,不具备跨平台迁移能力。因此在迁移过程中必须进行重新编译、重新绑定;同时对于此类系统变更,需要考虑交易类系统的服务连贯性、稳定性,不能进行长时间停机部署,也必须避免在系统变更过程中产生问题导致服务中断。通过应用本发明所述方案,可以实现在系统变更过程中原有AIX系统以及新部署的LINUX系统并行运行,集群内服务器分批次迁移,实现平滑过渡,并最终将通过实际运行验证的新系统迁移至整个Linux集群服务器,避免了系统变更过程中的风险。
以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种DB2数据库静态嵌入式SQL绑定优雅部署方法,其特征在于,包括:
S1、判断新增的需要进行编译的.sqc文件的文件名是否已经存在于原makefile文件中;
S2、对于文件名已经存在于原makefile文件中的.sqc文件,自动重新命名.sqc文件,编译生成区别于原有.bnd文件的新的不同名.bnd文件,并依据新生成的.bnd文件生成增量部署包;
S3、根据生成的.bnd文件生成upd文件;所述upd文件包含需要进行绑定的.bnd文件列表;
S4、部署时,解析upd文件,根据upd文件中.bnd文件列表,逐条进行绑定,对应用集群服务器进行部署时,在不影响其余服务器正常运行情况下对集群中的一个或多个服务器进行部署。
2.如权利要求1所述的方法,其特征在于,所述步骤S1包括使用find查找需要进行编译的.sqc文件的文件名是否已经存在于原makefile文件中。
3.如权利要求1所述的方法,其特征在于,所述步骤S2还包括对于需要进行编译的.sqc文件的文件名不存在于原makefile文件中的情况,直接生成与.sqc文件相同文件名的.bnd文件并使用该.bnd文件生成增量部署包。
4.如权利要求1所述的方法,其特征在于,所述步骤S2还包括对于需要编译的.sqc文件的文件名已经存在于原makefile文件中的情况,对该.sqc文件进行md5值校验,并对md5值校验不同的.sqc文件重新命名生成新的.sqc文件,并编译生成对应文件名的.bnd文件。
5.如权利要求4所述的方法,其特征在于,所述步骤S2还包括对md5值校验相同的.sqc文件向开发人员反馈提示。
6.一种自动化生成部署包的电子装置,其特征在于,包括以下相互数据连接的模块:
新增文件核验模块,用于判断需要进行编译的.sqc文件的文件名是否已经存在于原makefile文件中;
md5校验模块,用于当需要进行编译的.sqc与存量.sqc文件重名时,通过md5校验值比对两个文件是否一致;
增量部署包生成模块,用于将需要进行编译的.sqc文件生成区别于现有存量的不同名.bnd文件,并进一步根据该.bnd文件生成增量部署包;根据生成的.bnd文件生成upd文件;所述upd文件包含需要进行绑定的.bnd文件列表;部署时,解析upd文件,根据upd文件中.bnd文件列表,逐条进行绑定,对应用集群服务器进行部署时,在不影响其余服务器正常运行情况下对集群中的一个或多个服务器进行部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880251.9A CN112052225B (zh) | 2020-08-27 | 2020-08-27 | 一种db2数据库静态嵌入式sql绑定优雅部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880251.9A CN112052225B (zh) | 2020-08-27 | 2020-08-27 | 一种db2数据库静态嵌入式sql绑定优雅部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052225A CN112052225A (zh) | 2020-12-08 |
CN112052225B true CN112052225B (zh) | 2024-05-17 |
Family
ID=73599536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010880251.9A Active CN112052225B (zh) | 2020-08-27 | 2020-08-27 | 一种db2数据库静态嵌入式sql绑定优雅部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052225B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9316701D0 (en) * | 1992-08-11 | 1993-09-29 | Pfu Ltd | Method for automatically generating a makefile for compiling an application program which can access relational databases |
US5875334A (en) * | 1995-10-27 | 1999-02-23 | International Business Machines Corporation | System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements |
CA2422682A1 (en) * | 2002-03-20 | 2003-09-20 | Bestbuy.Com, Llc | Software building and deployment system and method |
CN104166570A (zh) * | 2014-08-15 | 2014-11-26 | 青岛海信网络科技股份有限公司 | 一种在线更新文件的方法、设备及系统 |
CN104618166A (zh) * | 2015-02-16 | 2015-05-13 | 中国农业银行股份有限公司 | 应用服务部署方法、装置及系统 |
CN107864052A (zh) * | 2017-10-30 | 2018-03-30 | 广东亿迅科技有限公司 | 基于持续部署应用配置自动化升级的方法及其系统 |
CN110018822A (zh) * | 2019-04-16 | 2019-07-16 | 山东浪潮通软信息科技有限公司 | 一种自动生成微服务功能的方法及系统 |
WO2019232828A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 脚本部署方法、装置、计算机设备及存储介质 |
CN110995494A (zh) * | 2019-12-10 | 2020-04-10 | 成都九洲电子信息系统股份有限公司 | 热部署包制作及利用热部署包对服务器进行升级的方法 |
-
2020
- 2020-08-27 CN CN202010880251.9A patent/CN112052225B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9316701D0 (en) * | 1992-08-11 | 1993-09-29 | Pfu Ltd | Method for automatically generating a makefile for compiling an application program which can access relational databases |
US5875334A (en) * | 1995-10-27 | 1999-02-23 | International Business Machines Corporation | System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements |
CA2422682A1 (en) * | 2002-03-20 | 2003-09-20 | Bestbuy.Com, Llc | Software building and deployment system and method |
CN104166570A (zh) * | 2014-08-15 | 2014-11-26 | 青岛海信网络科技股份有限公司 | 一种在线更新文件的方法、设备及系统 |
CN104618166A (zh) * | 2015-02-16 | 2015-05-13 | 中国农业银行股份有限公司 | 应用服务部署方法、装置及系统 |
CN107864052A (zh) * | 2017-10-30 | 2018-03-30 | 广东亿迅科技有限公司 | 基于持续部署应用配置自动化升级的方法及其系统 |
WO2019232828A1 (zh) * | 2018-06-06 | 2019-12-12 | 平安科技(深圳)有限公司 | 脚本部署方法、装置、计算机设备及存储介质 |
CN110018822A (zh) * | 2019-04-16 | 2019-07-16 | 山东浪潮通软信息科技有限公司 | 一种自动生成微服务功能的方法及系统 |
CN110995494A (zh) * | 2019-12-10 | 2020-04-10 | 成都九洲电子信息系统股份有限公司 | 热部署包制作及利用热部署包对服务器进行升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112052225A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10067993B2 (en) | Post-migration validation of ETL jobs and exception management | |
EP3769223B1 (en) | Unified test automation system | |
US10922067B1 (en) | System and method for installing, updating and uninstalling applications | |
US8327351B2 (en) | Application modification framework | |
US7917607B2 (en) | Software management systems and methods, including use of such systems and methods in a provider-tenant environment | |
US8245216B2 (en) | Patch management system | |
US8631396B2 (en) | Schema specification to improve product consumability on installation, configuration, and/or un-installation activity | |
US20080162509A1 (en) | Methods for updating a tenant space in a mega-tenancy environment | |
US11144311B2 (en) | Static analysis of higher-order merge conflicts in large software development projects | |
US20070156849A1 (en) | Systems and methods for delivering software upgrades in a provider-tenant environment | |
US20080162491A1 (en) | Method and system for cloning a tenant database in a multi-tenant system | |
US20080162587A1 (en) | Server synchronization for maintenance activities | |
CN101393528B (zh) | 软件动态更新中确定实例对象转换次序的方法及系统 | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
US9690564B2 (en) | Runtime detection of software configurations and upgrades | |
CN107239313A (zh) | Spring应用服务的升级方法和存储介质 | |
CN112052225B (zh) | 一种db2数据库静态嵌入式sql绑定优雅部署方法 | |
US8150821B2 (en) | System and method for using generic utilities to perform database utilities on mainframe operated DB2 databases | |
EP3696764A1 (en) | Data processing | |
CN116149707B (zh) | 分布式系统的升级风险检测和规避方法及装置 | |
WO2018042022A1 (en) | System and apparatus for providing different versions of a type of data journey | |
CN116954617A (zh) | 一种基于Cppcheck和Gerrit的代码静态检测方法和服务器 | |
Das et al. | Oracle Database Client Installation Guide, 10g Release 2 (10.2) for Solaris Operating System (x86-64) B15706-01 | |
Bhakthavatsalam et al. | Oracle Database Client Installation Guide, 10g Release 2 (10.2) for hp Tru64 UNIX B25302-01 | |
Shea | Oracle Database Upgrade Guide, 11g Release 2 (11.2) E17222-04 |
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 |