CN111610986A - 证券交易多分支数据库自动升降级方法 - Google Patents
证券交易多分支数据库自动升降级方法 Download PDFInfo
- Publication number
- CN111610986A CN111610986A CN202010402964.4A CN202010402964A CN111610986A CN 111610986 A CN111610986 A CN 111610986A CN 202010402964 A CN202010402964 A CN 202010402964A CN 111610986 A CN111610986 A CN 111610986A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- version
- degraded
- database
- branch
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013515 script Methods 0.000 claims abstract description 9
- 230000000593 degrading effect Effects 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 abstract description 9
- 238000006731 degradation reaction Methods 0.000 abstract description 9
- 238000012163 sequencing technique Methods 0.000 abstract 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
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/61—Installation
- G06F8/62—Uninstallation
-
- 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/217—Database tuning
-
- 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)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种证券交易多分支数据库自动升降级方法,包括以下步骤:将所有版本进行排序,并且找出所有节点末端的版本,根据所有末端的版本进行逆向搜索,一直到起点,形成末端到起点的树形结构,升级路线全部生成,并且储存起来;读取所有版本号,升级时,对树形结构逆向排序,然后根据操作者输入的版本号进行匹配升级;降级时先降级分叉点以下的线路,一直降级到分叉点,直到所有分叉路线都降级完成,再开始从分叉点再向进行降级,直到降级到操作者输入的版本号。本发明提供的方法可以对不同数据库具有不同升级目标时也可以进行升降级。不需要另外建立目标数据库,直接自动生成脚本,而且它有版本控制,升级到哪一个版本由操作者决定。
Description
技术领域
本发明属于数据库领域,涉及一种证券交易多分支数据库自动升降级方法。
背景技术
前期开发的项目发布后,数据库已定型。由于后期需求的增加可能需要修改项目要用到的数据库,这时就需要用到数据库升级,有时候也需要数据库降级。由于需求可能不一样,在升级或降级主支需要开辟出分支。现有传统的升降级都是采用单线的方法,不可以管理多个具有不同需求的系统,所以一个系统采用一个单线升降的方式。但是如果一个系统一个升降方式,就会使系统非常冗余。如果遇到不同的升级,单独写一个升级脚本,这样一次还好,如果多次,那么这样就不利于管理。如果想知道有没有升级过还要大量的查表,非常麻烦。
申请日为2006年11月13日,专利号为200610114522X,专利名称为《一种关系数据库应用自动升级的方法》,公开了一种数据库自动升级的方法,先建立目标数据库,然后对比源数据库和目标数据库,然后生成脚本修改源数据库,最终达到源数据库和目标数据库统一的目的,并且仅限于修改表结构。而且没有提及有关有多分支情况下如何升级。
发明内容
1、所要解决的技术问题:
现有的单线升降级方式无法满足现有的存在主支数据库的升降级。
2、技术方案:
为了解决以上问题,本发明提供了一种证券交易多分支数据库自动升降级方法,包括以下步骤:第一步:将所有版本进行排序,并且找出所有节点末端的版本,第二步:根据所有末端的版本进行逆向搜索,一直到起点,形成末端到起点的树形结构,升级路线全部生成,并且储存起来;第三步:读取所有版本号,升级进入到第四步,降级进入到第五步;第四步:对所述树形结构逆向排序,形成升级时所需的所有路线,然后根据操作者输入的版本号进行匹配升级;第五步:在读取所有版本号后进行去重处理,达到先将分叉点以下的线路,从线路末端的节点开始一直降级到分叉点,直到所有分叉路线都降级完成,再开始从分叉点再向起点或者上一级分叉点进行降级,直到降级到操作者输入的版本号。
所述第二步中,所述储存的内容为所有的版本号和对应的文件,每个文件都会记录上一个版本和更新的新版本。
所述第三步中,读取所有版本号具体为将所有自动生成的sql脚本以及对应的版本号进行读取。
所述第四步中,匹配升级的步骤为:读取数据库已经升级过的版本,迭代该升级路线的所有节点,若检测到没有升级的版本,进行升级。
每次升级都开启一个事务,并且能够使用多路线方案进行升级。
在第五步中,降级的分叉线路是并列关系。
所述升级包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息、记录变化信息、表变化信息。
所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
所述记录变化信息包括删除记录、增加记录、修改记录。
所述表的变化信息包括创建表、删除表、修改表名、修改字符集。
3、有益效果:
本发明提供的证券交易多分支数据库自动升降级方法能够多线路升级,可以对不同数据库具有不同升级目标时也可以进行升降级。而且不需要另外建立目标数据库,直接自动生成脚本,在脚本里写上的sql,导入升级。而且它有版本控制,升级到哪一个版本完全由操作者决定。
附图说明
图1为本发明的实施例1的升降级方式示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
本发明提供了一种证券交易多分支数据库自动升降级方法,包括以下步骤:第一步:将所有版本进行排序,并且找出所有节点末端的版本,第二步:根据所有末端的版本进行逆向搜索,一直到起点,形成末端到起点的树形结构,升级路线全部生成,并且储存起来;第三步:读取所有版本号,升级进入到第四步,降级进入到第五步;第四步:对所述树形结构逆向排序,形成升级时所需的所有路线,然后根据操作者输入的版本号进行匹配升级;第五步:在读取所有版本号后进行去重处理,达到先将分叉点以下的线路,从线路末端的节点开始一直降级到分叉点,直到所有分叉路线都降级完成,再开始从分叉点再向起点或者上一级分叉点进行降级,直到降级到操作者输入的版本号。
所述升级包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息、记录变化信息、表变化信息,所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度;记录变化信息包括删除记录、增加记录、修改记录;表的变化信息包括创建表、删除表、修改表名、修改字符集等。
升级的一条线路中,每到一个节点都会开启一个事务,以避免升级部分成功导致的脏数据产生,该节点要么升级成功,要么都不成功,不可能存在部分成功,最大化的保护了源数据,不需要将源数据进行备份,非常方便。对于几个目标数据库之间如有不同升级目标,工具可以使用多路线方案进行升级,不需要另外写升级脚本,很方便的进行管理。
所述储存的内容为所有的版本号和对应的文件,每个文件都会记录上一个版本和更新的新版本。读取数据库已经升级过的版本,迭代该升级路线的所有节点,若检测到没有升级的版本,进行升级,若升级失败直接回滚,最大化的保护了数据库的源数据。
降级相对升级来说更复杂,因为升级的时候会提前把线路生成出来,只要根据操作者输入的版本号进行匹配,直接升级就可以了。而降级需要考虑分叉点,也就是从哪个点开始出现分支,降级的顺序是从线路末端的节点开始一直降到分叉点,直到所有分叉路线都降完,再开始从分叉点再向起点或上以及分叉点开始降,这样就避免了重复降级,直到降完到操作者输入的版本号。分支路线是要是并列关系,无所谓先后顺序,因为升级的时候先升级哪条路线后升级那条路线或者同时升级都可以。
实施例
第一步,找到所有节点的模块, 2-1-1、2-1-2、3、2-2,根据所有末端的版本进行逆向搜索,一直到起点,形成末端到起点的树形结构,如图1所示,所有的升级路线全部生成,并且储存起来。所述储存的内容为所有的版本号和对应的文件,每个文件都会记录上一个版本和更新的新版本。
升级时,提前把线路生成出来,只要根据操作者输入的版本号进行匹配,直接升级就可以了。例如升级到2-1-2版本,对所述树形结构逆向排序,形成升级时所需的线路1->2->2-1->2-1-2 的路线,按照这样的路线进行升级,例如升级到2-2版本,逆向排序,形成升级时所需的线路1->2->2-2的线路,按照这样的路线进行升级。而且升级2-1-2和升级2-2可以同时进行,互不影响。
降级时,生降级分叉点2-1版本和2版本下的所有线路,降级2-1-1版本和2-1-2版本,然后降级2-1版本最终降低到1。当降级万万2分叉点下2-1版本、3版本、3-2版本后,降低到1版本。降级的顺序是从线路末端的节点开始一直降到分叉点,直到所有分叉路线都降完,再开始从分叉点再向起点开始降,如果在遇到分叉点,步骤同上,直到降完到操作者输入的版本号。
Claims (10)
1.一种证券交易多分支数据库自动升降级方法,包括以下步骤:第一步:将所有版本进行排序,并且找出所有节点末端的版本,第二步:根据所有末端的版本进行逆向搜索,一直到起点,形成末端到起点的树形结构,升级路线全部生成,并且储存起来;第三步:读取所有版本号,升级进入到第四步,降级进入到第五步;第四步:对所述树形结构逆向排序,形成升级时所需的所有路线,然后根据操作者输入的版本号进行匹配升级;第五步:在读取所有版本号后进行去重处理,达到先将分叉点以下的线路,从线路末端的节点开始一直降级到分叉点,直到所有分叉路线都降级完成,再开始从分叉点再向起点或者上一级分叉点进行降级,直到降级到操作者输入的版本号。
2.如权利要求1所述的方法,其特征在于:所述第二步中,所述储存的内容为所有的版本号和对应的文件,每个文件都会记录上一个版本和更新的新版本。
3.如权利要求1所述的方法,其特征在于:所述第三步中,读取所有版本号具体为将所有自动生成的sql脚本以及对应的版本号进行读取。
4.如权利要求1所述的方法,其特征在于:所述第四步中,匹配升级的步骤为:读取数据库已经升级过的版本,迭代该升级路线的所有节点,若检测到没有升级的版本,进行升级。
5.如权利要求4所述的方法,其特征在于:每次升级都开启一个事务,并且能够使用多路线方案进行升级。
6.如权利要求1所述的方法,其特征在于;在第五步中,降级的分叉线路是并列关系。
7.如权利要求1-6任一权利要求所述的方法,其特征在于:所述升级包括目标数据库中数据库结构以及源数据库中数据结构的字段变化信息、记录变化信息、表变化信息。
8.如权利要求7所述的方法,其特征在于:所述字段变化信息包括:删除字段、添加字段、修改字段名称、修改字段类型以及修改字段长度。
9.如权利要求7所述的方法,其特征在于:所述记录变化信息包括删除记录、增加记录、修改记录。
10.如权利要求7所述的方法,其特征在于:所述表的变化信息包括创建表、删除表、修改表名、修改字符集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010402964.4A CN111610986A (zh) | 2020-05-13 | 2020-05-13 | 证券交易多分支数据库自动升降级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010402964.4A CN111610986A (zh) | 2020-05-13 | 2020-05-13 | 证券交易多分支数据库自动升降级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111610986A true CN111610986A (zh) | 2020-09-01 |
Family
ID=72193784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010402964.4A Pending CN111610986A (zh) | 2020-05-13 | 2020-05-13 | 证券交易多分支数据库自动升降级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111610986A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076725A (zh) * | 2023-09-12 | 2023-11-17 | 北京云枢创新软件技术有限公司 | 基于底层数据查找树节点的方法、电子设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262826A (zh) * | 2019-03-05 | 2019-09-20 | 上海博泰悦臻网络技术服务有限公司 | 车载软件配置升级管理方法、服务端、客户端及处理端 |
CN110377306A (zh) * | 2019-07-18 | 2019-10-25 | 上海擎感智能科技有限公司 | 用于车载设备升级包的管理方法及装置、介质、服务器 |
-
2020
- 2020-05-13 CN CN202010402964.4A patent/CN111610986A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262826A (zh) * | 2019-03-05 | 2019-09-20 | 上海博泰悦臻网络技术服务有限公司 | 车载软件配置升级管理方法、服务端、客户端及处理端 |
CN110377306A (zh) * | 2019-07-18 | 2019-10-25 | 上海擎感智能科技有限公司 | 用于车载设备升级包的管理方法及装置、介质、服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076725A (zh) * | 2023-09-12 | 2023-11-17 | 北京云枢创新软件技术有限公司 | 基于底层数据查找树节点的方法、电子设备和介质 |
CN117076725B (zh) * | 2023-09-12 | 2024-02-09 | 北京云枢创新软件技术有限公司 | 基于底层数据查找树节点的方法、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8078570B2 (en) | Versioning data warehouses | |
US9953051B2 (en) | Multi-version concurrency control method in database and database system | |
CN101084499B (zh) | 用于搜索和存储数据的系统和方法 | |
KR100556594B1 (ko) | 데이터베이스에 관한 방법 | |
US9218377B2 (en) | Failure recovery and error correction techniques for data loading in information warehouses | |
CN110879813B (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
CN101127034B (zh) | 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统 | |
US8078588B2 (en) | Recoverable execution | |
CN106777270A (zh) | 一种基于提交点时间线同步的异构数据库复制并行执行系统及方法 | |
CN102279749B (zh) | 一种代码归并方法和设备 | |
US7849111B2 (en) | Online incremental database dump | |
CN102402562A (zh) | 数据库异地容灾方法及系统 | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
CN105205105A (zh) | 一种基于storm的数据ETL系统及处理方法 | |
CN101464895A (zh) | 一种更新内存数据的方法、系统和装置 | |
CN112130891B (zh) | 一种数据库持续部署的方法和设备 | |
CN102663076A (zh) | 文件数据处理方法 | |
CN105224527A (zh) | 适用于多种目的表更新方式的通用etl方法 | |
CN110609860A (zh) | 数据etl处理方法、装置、设备及存储介质 | |
US6453324B1 (en) | Method for maintaining a version history of objects in a repository | |
CN105138622A (zh) | 用于lsm树存储系统的插入操作及负载的读取和合并方法 | |
US20040073581A1 (en) | Version controlled associative array | |
CN110597821B (zh) | 数据仓库表结构变更方法及装置 | |
CN106155838A (zh) | 一种数据库备份数据恢复方法及装置 | |
CN111610986A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200901 |
|
RJ01 | Rejection of invention patent application after publication |