CN113434489A - 一种实时数据库在线扩容方法、***、设备及存储介质 - Google Patents
一种实时数据库在线扩容方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN113434489A CN113434489A CN202110985658.2A CN202110985658A CN113434489A CN 113434489 A CN113434489 A CN 113434489A CN 202110985658 A CN202110985658 A CN 202110985658A CN 113434489 A CN113434489 A CN 113434489A
- Authority
- CN
- China
- Prior art keywords
- data
- time database
- blank
- real
- expanded
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 24
- 238000013500 data storage Methods 0.000 claims description 4
- 230000003190 augmentative effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000009776 industrial production Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000007787 solid Substances 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/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41835—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
-
- 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/2228—Indexing structures
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种实时数据库在线扩容方法、***、设备及存储介质,包括,根据原始实时数据库的格式,建立空白数据文件;将空白数据文件映射到内存中,按照预设扩容要求,拷贝表头数据至空白数据文件,并修改最大元组数;将空白数据表的索引区及数据区的容量大小设置为预设容量,并重建索引,得到扩容后的数据文件;将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库;本发明无需对新导入数据的数据库进行重启加载,即可完成对实时数据库的扩容更新,实现对实时数据库的在线扩容;扩容过程,无需对原始实时数据库查询等业务的停止,实现对实时数据库的动态扩展要求。
Description
技术领域
本发明属于分散控制***技术领域,特别涉及一种实时数据库在线扩容方法、***、设备及存储介质。
背景技术
分散控制***(Distributed Control System,DCS)是利用计算机技术对工业生产过程进行集中监视、操作、管理和分散控制的一种新型控制设备,其广泛的应用于电力等工业生产领域;随着电力***的规模越来越大,结构越来越复杂,对电力设备的管理也日趋重要。
在电力等工业生产领域,当前分散控制***中的***配置等数据一般被保存在实时数据库中;为了保证***的访问速度,实时数据库中所有数据表的最大元组数,即每个数据表的容量都是采用预先定义,***正常运行过程中无法对实时数据库中的数据表进行动态扩展,必须停止实时数据库重新生成数据库文件;一旦某个数据表被写满数据后,将无法实现动态扩展。
发明内容
针对现有技术中存在的技术问题,本发明提供了一种实时数据库在线扩容方法、***、设备及存储介质,以解决现有的分散控制***中无法对实时数据库进行动态扩展的技术问题。
为达到上述目的,本发明采用的技术方案为:
本发明提供了一种实时数据库在线扩容方法,包括以下步骤:
根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;
停止原始实时数据库的写操作,并将空白数据文件映射到内存中;
按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;
将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;
将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;
将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
进一步的,空白数据文件与原始实时数据库的保存路径相同,空白数据文件的命名为原始实时数据库的原始名+exp.dat。
进一步的,空白数据文件与原始实时数据库的格式相同,且空白数据文件中数据表的个数与原始实时数据库中数据表的个数相同。
进一步的,将空白数据文件中,与待扩容数据表对应的空白数据表的索引区大小设置为预设容量,并对所述空白数据表的索引区的索引数据进行更新重建的过程,具体如下:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中第1-X号数据表的索引数据拷贝至空白数据文件的索引区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的其预设扩容后的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个索引数据空间,即将空白数据文件中第X号数据表的索引区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的索引区地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的索引数据拷贝至空白数据文件的索引区。
进一步的,将空白数据文件中,与待扩容数据表对应的空白数据表的数据区的容量大小设置为预设容量,并对所述空白数据表的数据区的索引地址进行修改重建的过程,具体如下:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中,第1-X号数据表的数据拷贝至空白数据文件的数据区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个数据存储空间,即将空白数据文件中第X号数据表的数据区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的数据区的索引地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的数据拷贝至空白数据文件的数据区。
进一步的,得到扩容后的实时数据库之后,原始实时数据库释放原始数据的引用,并将原始实时数据库删除。
进一步的,空白数据文件中与待扩容数据表对应的空白数据表的最大元组数与待扩容数据表的预设扩容后的最大元组数相同。
本发明还提供了一种实时数据库在线扩容***,包括:
空白文件模块,用于根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;
映射模块,用于停止原始实时数据库的写操作,并将空白数据文件映射到内存中;
获取模块,用于按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;
表头拷贝模块,用于将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;
重建索引模块,用于将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;
原始数据拷贝模块,用于将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
本发明还提供了一种实时数据库在线扩容设备,包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的一种实时数据库在线扩容方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种实时数据库在线扩容方法的步骤。
与现有技术相比,本发明的有益效果为:
本发明提供了一种实时数据库在线扩容方法,采用将空白数据文件映射到内存中,按照预设扩容要求,对空白数据文件的最大元组数、索引区及数据区的容量进行修改,并重建索引区及数据区的索引地址,通过修改原始实时数据库与扩容后实时数据库在内存中的地址,无需对新导入数据的数据库进行重启加载,即可完成对实时数据库的扩容更新,实现对实时数据库的在线扩容;扩容过程,无需对原始实时数据库查询等业务的停止,实现对实时数据库的动态扩展要求。
附图说明
图1为实施例所述的实时数据库在线扩容方法的流程图;
图2为实施例所述的实时数据库在线扩容***的结构框图;
图3为本发明所述的实时数据库在线扩容设备的结构框图。
具体实施方式
为了使本发明所解决的技术问题,技术方案及有益效果更加清楚明白,以下具体实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种实时数据库在线扩容方法,包括以下步骤:
如附图1所示,步骤1、根据原始实时数据库的格式,建立空白数据文件。
本发明中,空白数据文件包括表头、索引区及数据区;空白数据文件与原始实时数据库的保存路径相同,空白数据文件的命名为原始实时数据库的原始名+exp.dat;空白数据文件与原始实时数据库的格式相同,且空白数据文件中数据表的个数与原始实时数据库中数据表的个数相同。
步骤2、停止原始实时数据库的写操作,并将空白数据文件映射到内存中。
步骤3、按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数。
步骤4、将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数。其中,空白数据文件中与待扩容数据表对应的空白数据表的最大元组数与待扩容数据表的预设扩容后的最大元组数相同。
步骤5、将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件。
索引区扩容过程:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中第1-X号数据表的索引数据拷贝至空白数据文件的索引区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的其预设扩容后的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个索引数据空间,即将空白数据文件中第X号数据表的索引区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的索引区地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的索引数据拷贝至空白数据文件的索引区。
数据区扩容过程:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中,第1-X号数据表的数据拷贝至空白数据文件的数据区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个数据存储空间,即将空白数据文件中第X号数据表的数据区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的数据区的索引地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的数据拷贝至空白数据文件的数据区。
如下表1、2所示,表1为原始实时数据库的数据文件格式表,表2为扩容后的数据文件格式表。
表1 原始实时数据库的数据文件格式表
表2 扩容后的数据文件格式表
步骤6、将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
步骤7、原始实时数据库释放原始数据的引用,并将原始实时数据库删除,将扩容后的实时数据库写入磁盘中保存。
本发明所述的一种实时数据库在线扩容方法,采用将空白数据文件映射到内存中,按照预设扩容要求,对空白数据文件的最大元组数、索引区及数据区的容量进行修改,并重建索引区及数据区的索引地址,通过修改原始实时数据库与扩容后实时数据库在内存中的地址,无需对新导入数据的数据库进行重启加载,即可完成对实时数据库的扩容更新,实现对实时数据库的在线扩容;扩容过程,无需对原始实时数据库查询等业务的停止,实现对实时数据库的动态扩展要求。
如附图2所示,本发明还提供了一种实时数据库在线扩容***,包括空白文件模块、映射模块、获取模块、表头拷贝模块、重建索引模块及原始数据拷贝模块;
其中,空白文件模块,用于根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区。
映射模块,用于停止原始实时数据库的写操作,并将空白数据文件映射到内存中。
获取模块,用于按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数。
表头拷贝模块,用于将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数。
重建索引模块,用于将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件。
原始数据拷贝模块,用于将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
如附图3所示,本发明还提供了一种实时数据库在线扩容设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如实时数据库在线扩容程序;其中,附图3中的通讯接口,用于接入外部设备,以获取数据。
所述处理器执行所述计算机程序时实现上述实时数据库在线扩容方法的步骤,例如:根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;停止原始实时数据库的写操作,并将空白数据文件映射到内存中;按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
或者,所述处理器执行所述计算机程序时实现上述***中各模块的功能,例如:空白文件模块,用于根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;映射模块,用于停止原始实时数据库的写操作,并将空白数据文件映射到内存中;获取模块,用于按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;表头拷贝模块,用于将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;重建索引模块,用于将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;原始数据拷贝模块,用于将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序在所述实时数据库在线扩容设备中的执行过程。
例如,所述计算机程序可以被分割成空白文件模块、映射模块、获取模块、表头拷贝模块、重建索引模块及原始数据拷贝模块,各模块具体功能如下:空白文件模块,用于根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;映射模块,用于停止原始实时数据库的写操作,并将空白数据文件映射到内存中;获取模块,用于按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;表头拷贝模块,用于将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;重建索引模块,用于将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;原始数据拷贝模块,用于将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
所述实时数据库在线扩容设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述实时数据库在线扩容设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述附图3的示意图仅仅是实时数据库在线扩容设备的示例,并不构成对实时数据库在线扩容设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述实时数据库在线扩容设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是任何常规的处理器等,所述处理器是所述实时数据库在线扩容设备的控制中心,利用各种接口和线路连接整个实时数据库在线扩容设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述实时数据库在线扩容设备的各种功能。
所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种实时数据库在线扩容方法的步骤。
所述实时数据库在线扩容设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述方法的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
实施例
以下以某电厂的分散控制***中的alarm数据库的扩容过程为例;其中,扩容前,所述alarm数据库中包含三个数据表,三个数据表的ID分别为第1号数据表、第2号数据表及第3号数据表;先对第2号数据表进行扩容,扩容前第2号数据的最大元组数为1000,扩容后的最大元组数为1500。
本实施例提供了一种实时数据库在线扩容方法,包括以下步骤:
步骤1、根据原始实时数据库的格式,建立空白数据文件;本发明中,空白数据文件包括表头、索引区及数据区;空白数据文件与原始实时数据库的保存路径相同,空白数据文件的命名为“alarm数据库+exp.dat”;空白数据文件与原始实时数据库的格式相同,且空白数据文件中数据表的个数与原始实时数据库中数据表的个数相同分别均为三个数据表。
步骤2、停止原始实时数据库的写操作,并将空白数据文件映射到内存中。
步骤3、按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;本实施例中,待扩容数据表为第2号数据表,扩容前第2号数据的最大元组数为1000,预设扩容后的最大元组数为1500。
步骤4、将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中的第2号空白数据表的最大元组数;即将空白数据文件中的第2号空白数据表的最大元组数设置为1500。
步骤5、将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;其中,扩容后的数据文件的索引区的大小为所有数据表的索引区容量的总和;扩容后的数据文件的数据区的大小为所有数据表的数据区容量的总和
索引区扩容过程:
将原始实时数据库中第2号数据表的索引数据拷贝至空白数据文件的索引区;
对空白数据文件中第2号数据表新增500个索引数据空间,即将空白数据文件中第2号数据表的索引区容量设置为1500;
根据预设扩容后的最大元组数1500,对空白数据文件中第2、3号数据表的索引区地址进行重建;之后,将原始实时数据库中第3号数据表的索引数据拷贝至空白数据文件的索引区。
数据区扩容过程:
将原始实时数据库中,第2号数据表的数据拷贝至空白数据文件的数据区;
对空白数据文件中第2号数据表新增500个数据存储空间,即将空白数据文件中第2号数据表的数据区容量设置为1500;
根据预设扩容后的最大元组数1500,对空白数据文件中第2、3号数据表的数据区的索引地址进行重建;之后,将原始实时数据库中第3号数据表的数据拷贝至空白数据文件的数据区。
如下表3、4所示,表3为实施例中alarm数据库的数据文件格式表,表4为实施例中扩容后的数据文件格式表。
表3实施例中alarm数据库的数据文件格式表
表4实施例中扩容后的数据文件格式表
步骤6、将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
步骤7、原始实时数据库释放原始数据的引用,并将原始实时数据库删除,将扩容后的实时数据库写入磁盘中保存。
本实施例中,如表4所示,扩容后的数据库中,第2号数据表的最大元组数为1500,索引文件扩大至1500,相应的数据块增加到1500个;本实施例的在线扩容采用了内存映射的方法,将原始数据文件重定向到扩容后的数据文件;解决了传统的扩容需要停对数据库的查询等业务的问题;传统的扩容方式重新生成数据文件后,需要停止相关的业务后让数据库重新加载新的文件后才能生效;而本实施例的在线扩容方式无需重新加载新的文件,实现对实时数据库的动态扩展。
本实施例提供的实时数据库在线扩容***、设备及计算机可读存储介质中相关部分的说明可以参见本实施例所述的一种实时数据库在线扩容方法中对应部分的详细说明,在此不再赘述。
本发明所述的实时数据库在线扩容方法,在对实时数据库进行扩容时,对实时数据库中数据表的个数不进行扩容,仅对数据文件中每个数据表存储的数据空间进行扩容;空白数据文件的格式与原始实时数据库的格式相同,包括表头、索引区及数据区;其中,表头包括数据库的表信息、表的数量、ID、最大元组数及已使用数据量等信息;索引区包括每条数据生成一个索引可以快速定位数据所在内存地址,数据区包括每条数据保存的地址,数据保存在文件中通过内存映射到内存中。
本发明中,索引数据中表示了数据区的位置,扩容后由于索引区容量大小发生了改变,导致数据区的位置发生了变化,需要对索引进行修改,这样才可以通过索引找到具体的数据;其中,对索引区进行修改的过程:判断扩容数据表ID在原始实时数据库中的索引区位置;将原始实时数据库中的索引区中位于所述扩容数据表的ID前的所有索引区数据拷贝至空白数据文件;在拷贝后的索引区数据文件之后,预留索引区扩容空间;其中,预留索引区扩容空间的大小与待扩容的索引区的数据空间大小一致;之后,将原始实时数据库的剩余索引区数据拷贝至扩容后空的数据文件;其中,剩余索引区数据的位置处于预留索引区扩容空间之后,即对地址进行偏移得到;由于数据表的最大元组数变化,需对预留索引区扩容空间之后的索引区地址进行重建修改;本实施例中,对数据区的修改过程与上述的索引区的修改过程类似,此处不在赘述。
上述实施例仅仅是能够实现本发明技术方案的实施方式之一,本发明所要求保护的范围并不仅仅受本实施例的限制,还包括在本发明所公开的技术范围内,任何熟悉本技术领域的技术人员所容易想到的变化、替换及其他实施方式。
Claims (10)
1.一种实时数据库在线扩容方法,其特征在于,包括以下步骤:
根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;
停止原始实时数据库的写操作,并将空白数据文件映射到内存中;
按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;
将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;
将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;
将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
2.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,空白数据文件与原始实时数据库的保存路径相同,空白数据文件的命名为原始实时数据库的原始名+exp.dat。
3.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,空白数据文件与原始实时数据库的格式相同,且空白数据文件中数据表的个数与原始实时数据库中数据表的个数相同。
4.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件,具体如下:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中第1-X号数据表的索引数据拷贝至空白数据文件的索引区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的其预设扩容后的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个索引数据空间,即将空白数据文件中第X号数据表的索引区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的索引区地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的索引数据拷贝至空白数据文件的索引区。
5.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件,具体如下:
根据原始实时数据库中待扩容数据表的ID及其预设扩容后的最大元组数,将原始实时数据库中,第1-X号数据表的数据拷贝至空白数据文件的数据区;其中,假设待扩容数据表的ID为第X号数据表,待扩容数据表的原始最大元组数为n,其预设扩容后的最大元组数为m;
对空白数据文件中第X号数据表新增m-n个数据存储空间,即将空白数据文件中第X号数据表的数据区容量设置为m;
根据预设扩容后的最大元组数m,对空白数据文件中第X-N号数据表的数据区的索引地址进行重建;之后,将原始实时数据库中第(X+1)-N号数据表的数据拷贝至空白数据文件的数据区。
6.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,得到扩容后的实时数据库之后,原始实时数据库释放原始数据的引用,并将原始实时数据库删除。
7.根据权利要求1所述的一种实时数据库在线扩容方法,其特征在于,空白数据文件中与待扩容数据表对应的空白数据表的最大元组数与待扩容数据表的预设扩容后的最大元组数相同。
8.一种实时数据库在线扩容***,其特征在于,包括:
空白文件模块,用于根据原始实时数据库的格式,建立空白数据文件;其中,空白数据文件包括表头、索引区及数据区;
映射模块,用于停止原始实时数据库的写操作,并将空白数据文件映射到内存中;
获取模块,用于按照预设扩容要求,获取原始实时数据库中待扩容数据表ID及其预设扩容后的最大元组数;
表头拷贝模块,用于将原始实时数据库的表头数据拷贝至空白数据文件的表头中,并修改空白数据文件中与原始实时数据库中待扩容数据表对应的空白数据表的最大元组数;
重建索引模块,用于将空白数据文件中,与待扩容数据表对应的空白数据表的索引区及数据区的容量大小设置为预设容量,并对所述空白数据表的索引区的索引数据及数据区的索引地址进行修改重建,得到扩容后的数据文件;
原始数据拷贝模块,用于将原始实时数据库中的原始数据拷贝至扩容后的数据文件中,并将内存映射至扩容后的数据文件,得到扩容后的实时数据库。
9.一种实时数据库在线扩容设备,包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的一种实时数据库在线扩容方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种实时数据库在线扩容方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110985658.2A CN113434489B (zh) | 2021-08-26 | 2021-08-26 | 一种实时数据库在线扩容方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110985658.2A CN113434489B (zh) | 2021-08-26 | 2021-08-26 | 一种实时数据库在线扩容方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434489A true CN113434489A (zh) | 2021-09-24 |
CN113434489B CN113434489B (zh) | 2021-11-16 |
Family
ID=77798008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110985658.2A Active CN113434489B (zh) | 2021-08-26 | 2021-08-26 | 一种实时数据库在线扩容方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434489B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113759884A (zh) * | 2021-11-08 | 2021-12-07 | 西安热工研究院有限公司 | 一种分散控制***输入输出点产物文件生成方法和*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116542A (zh) * | 2013-01-24 | 2013-05-22 | 浪潮(北京)电子信息产业有限公司 | 设备扩容稳定性测试方法 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
CN104699807A (zh) * | 2015-03-23 | 2015-06-10 | 上海新炬网络信息技术有限公司 | 一种oracle数据表空间的自动监控扩容方法 |
WO2017036336A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种基于云平台的业务数据的处理方法和装置 |
CN107562377A (zh) * | 2017-08-25 | 2018-01-09 | 长沙曙通信息科技有限公司 | 一种存储***硬盘扩容实现方法 |
CN110287150A (zh) * | 2019-05-16 | 2019-09-27 | 中国科学院信息工程研究所 | 一种大规模存储***元数据分布式管理方法与*** |
-
2021
- 2021-08-26 CN CN202110985658.2A patent/CN113434489B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116542A (zh) * | 2013-01-24 | 2013-05-22 | 浪潮(北京)电子信息产业有限公司 | 设备扩容稳定性测试方法 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
CN104699807A (zh) * | 2015-03-23 | 2015-06-10 | 上海新炬网络信息技术有限公司 | 一种oracle数据表空间的自动监控扩容方法 |
WO2017036336A1 (zh) * | 2015-09-01 | 2017-03-09 | 阿里巴巴集团控股有限公司 | 一种基于云平台的业务数据的处理方法和装置 |
CN107562377A (zh) * | 2017-08-25 | 2018-01-09 | 长沙曙通信息科技有限公司 | 一种存储***硬盘扩容实现方法 |
CN110287150A (zh) * | 2019-05-16 | 2019-09-27 | 中国科学院信息工程研究所 | 一种大规模存储***元数据分布式管理方法与*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113759884A (zh) * | 2021-11-08 | 2021-12-07 | 西安热工研究院有限公司 | 一种分散控制***输入输出点产物文件生成方法和*** |
CN113759884B (zh) * | 2021-11-08 | 2022-02-01 | 西安热工研究院有限公司 | 一种分散控制***输入输出点产物文件生成方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN113434489B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934371B2 (en) | Data processing method and apparatus, and computer-readable storage medium | |
WO2020041928A1 (zh) | 数据存储方法、***及终端设备 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN105824849A (zh) | 一种数据导入方法及适配器 | |
WO2021057064A1 (zh) | 基于人工智能的数据交互转换方法、装置、设备及介质 | |
CN113535708A (zh) | 一种数据重删方法、***、存储介质及设备 | |
CN111522574B (zh) | 差分包生成方法及相关设备 | |
CN113434489B (zh) | 一种实时数据库在线扩容方法、***、设备及存储介质 | |
CN113672627A (zh) | Elasticsearch搜索引擎索引构建方法及装置 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN113051102A (zh) | 文件备份方法、装置、***、存储介质和计算机设备 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
WO2021227789A1 (zh) | 存储空间的分配方法、装置、终端及计算机可读存储介质 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN108664249B (zh) | 提高string字符串存储效率的方法、装置、电子设备及计算机可读存储介质 | |
EP4390646A1 (en) | Data processing method in distributed system, and related system | |
CN116010345A (zh) | 一种实现流批一体数据湖的表服务方案的方法、装置及设备 | |
WO2019214071A1 (zh) | 区块链上用户通信方法、装置、终端设备及存储介质 | |
WO2021237704A1 (zh) | 数据同步方法及相关装置 | |
CN110019507B (zh) | 数据同步的方法及装置 | |
CN111324614A (zh) | 一种表的配置方法、装置、终端设备以及存储介质 | |
CN115509763B (zh) | 指纹计算方法及装置 | |
CN116561106B (zh) | 一种配置项数据管理方法及*** | |
CN115544321B (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 | ||
GR01 | Patent grant |