CN114840497B - 一种数据库的行迁移预处理方法、系统、装置及存储介质 - Google Patents
一种数据库的行迁移预处理方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN114840497B CN114840497B CN202210612487.3A CN202210612487A CN114840497B CN 114840497 B CN114840497 B CN 114840497B CN 202210612487 A CN202210612487 A CN 202210612487A CN 114840497 B CN114840497 B CN 114840497B
- Authority
- CN
- China
- Prior art keywords
- data
- sql
- rowid
- module
- migration
- 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
- 230000005012 migration Effects 0.000 title claims abstract description 100
- 238000013508 migration Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000007781 pre-processing Methods 0.000 title claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 21
- 238000005096 rolling process Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000000750 progressive effect Effects 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/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/214—Database migration support
-
- 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
-
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出的一种数据库的行迁移预处理方法、系统、装置及存储介质,所述方法包括:监控业务sql,发现update语句后标记该sql;解析标记的sql,通过解析结果判断是否会出现行迁移;若不会出现行迁移,则正常执行update语句,在原数据块中更新数据,并结束预处理;若会出现行迁移,将待更新数据直接插入到标记为可用的新数据块中,并在索引中同步更新rowid信息,更新完成后进行数据提交。本发明能够在更新数据的时候将整行数据迁移到预先安排好的数据块中并同时将索引中的原rowid更新为新rowid,避免产生行迁移问题,从而降低I/0消耗,提高性能。
Description
技术领域
本发明涉及计算机技术领域,更具体的说是涉及一种数据库的行迁移预处理方法、系统、装置及存储介质。
背景技术
Oracle数据库中,进行数据更新update操作,数据库引擎首先会尝试在它保存的数据块中寻找足够的空闲空间,如果当数据块的pctfree值设置不足,没有足够的空闲空间可用,Oracle数据库将会把此行移到其它数据块,同时保留此数据行的ROWID不变,并在原有块中建一指针指向行迁移后的位置。在这种情况下读取一行数据将需要访问2个数据块,这就形成了行迁移。这样做的原因是将整行都放到新的数据块中会导致该行数据rowid发生变化,而rowid被存储在索引中,rowid的变化可能导致查询错误。
当通过索引访问已有行迁移现象的行时,数据库必须扫描一个以上的数据块才能检索到该行的数据,导致insert或update时性能较差,因为需要执行额外的处理。利用索引查询已经迁移的行时,select语句的性能比较差,因为要执行额外的I/O。
为了克服行迁移现象,现有技术主要通过根据当前的业务环境将数据块的pctfree调大,以扩大数据块的大小,但是当时当业务环境发送变化时,需要再次对数据块进行修改,不够灵活。另外,专利CN202111560676.2虽然提出了一种行迁移消除方法,但是该方法是在产生行迁移之后进行处理,且处理完行迁移之后并没有更新索引的步骤,这会导致查询失效。
发明内容
针对以上问题,本发明的目的在于提供一种数据库的行迁移预处理方法、系统、装置及存储介质,能够在更新数据的时候将整行数据迁移到预先安排好的数据块中并同时将索引中的原rowid更新为新rowid,这样就不会产生行迁移问题,从而降低I/0消耗,提高性能。
本发明为实现上述目的,通过以下技术方案实现:一种数据库的行迁移预处理方法,包括:
监控业务sql,发现update语句后标记该sql;
解析标记的sql,通过解析结果判断是否会出现行迁移;
若不会出现行迁移,则正常执行update语句,在原数据块中更新数据,并结束预处理;
若会出现行迁移,将待更新数据直接插入到标记为可用的新数据块中,并在索引中同步更新rowid信息,更新完成后进行数据提交。
进一步,所述解析标记的sql,包括:
搜索sql库,发现待标记的sql,启动解析进程处理sql语句,提取更新信息;所述更新信息包括待更新数据所在的表、待更新数据的大小;
根据更新信息找到原数据所在表的pctfree值、各数据块使用率信息和原数据rowid信息,作为解析结果。
进一步,所述通过解析结果判断是否会出现行迁移,包括:
根据解析结果判断待更新数据大小是否大于原数据块剩余空间,若是,则会出现行迁移;若否,则不会出现行迁移。
进一步,所述将待更新数据直接插入到标记为可用的新数据块中,包括:利用undo日志记录原数据进行记录,用于进行数据回滚;
将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除。
进一步,所述索引中同步更新rowid信息,包括:
在待更新数据插入到标记为可用的新数据块后检索索引中的相关信息,将索引中的数据原rowid更新为新rowid,同时检索内存中是否存在原rowid相关信息,如果存在则一并修改为新rowid。
相应的,本发明还公开了一种数据库的行迁移预处理系统,包括:监控模块、接收模块、解析模块、更新模块和同步模块;
监控模块内设有多个监控进程,用于监控业务sql,监控进程发现update语句后标记该sql,然后向接收模块发出信号,告知接收模块可进行接收;
接收模块内设有用于接收业务sql的接收器和用于存放待解析sql的sql库,接收模块用于通过内置的接收进程得到监控模块发出的信号后,找到被标记的sql,将其传入sql库,同时向解析模块和监控模块发出信号,告知监控模块sql已被接收,告知解析模块sql库中语句等待被解析;
解析模块内设有多个解析进程,用于解析sql,根据解析结果判断是否会出现迁移,并整合结果信息,根据判断结果对该sql进行标记,同时将剩余空间大于待更新数据的其他数据块标记为可用,将数据块信息以可用列表形式整合到解析结果中,发送给更新模块;
更新模块,用于根据解析结果来进行数据更新操作,操作完成后,发送信号给同步模块,进行rowid信息同步;
同步模块,用于同步更新索引中的rowid信息,并进行数据提交。
进一步,更新模块具体用于:
如果解析结果表明该sql更新不会出现行迁移,则正常在原数据块中更新数据,如果解析结果表明会出现行迁移,首先利用undo日志将原数据进行记录,以便出现问题时进行数据回滚;然后将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除;操作完成后,发送信号给同步模块,进行rowid信息同步。
进一步,同步模块具体用于:
收到更新完成的信号后检索索引中的相关信息,将索引中的数据原rowid更新为新rowid,同时检索内存中是否存在原rowid相关信息,如果存在则一并修改为新rowid;最后进行数据提交,将更新数据写入磁盘。
相应的,本发明公开了一种数据库的行迁移预处理装置,包括:
存储器,用于存储数据库的行迁移预处理程序;
处理器,用于执行所述数据库的行迁移预处理程序时实现如上文任一项所述数据库的行迁移预处理方法的步骤。
相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有数据库的行迁移预处理程序,所述数据库的行迁移预处理程序被处理器执行时实现如上文任一项所述数据库的行迁移预处理方法的步骤。
对比现有技术,本发明有益效果在于:本发明公开了一种数据库的行迁移预处理方法、系统、装置及存储介质,实现了一种行迁移预处理机制,能够在数据库数据更新时避免出现行迁移问题,同时保证索引中rowid一致性,提升查询性能,减少空间浪费,有效提高资源利用率,可作为数据库解决方案的一种补充。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1是本发明具体实施方式的方法流程图。
附图2是本发明具体实施方式的系统结构图。
具体实施方式
本发明的核心是提供一种数据库的行迁移预处理方法,现有技术中,通过根据当前的业务环境将数据块的pctfree调大,以扩大数据块的大小,但是当时当业务环境发送变化时,需要再次对数据块进行修改,不够灵活。另外,其它的行迁移消除方法在产生行迁移之后进行处理,且处理完行迁移之后并没有更新索引的步骤,这会导致查询失效。
而本发明提供的数据库的行迁移预处理方法,首先,监控业务sql,发现update语句后标记该sql;然后解析标记的sql,通过解析结果判断是否会出现行迁移。如果不会出现行迁移,则正常执行update语句,在原数据块中更新数据,并结束预处理;如果会出现行迁移,将待更新数据直接插入到标记为可用的新数据块中,并在索引中同步更新rowid信息,更新完成后进行数据提交。由此可见,本发明采用在更新数据的时候将整行数据迁移到预先安排好的数据块中并同时将索引中的原rowid更新为新rowid,有效避免了产生行迁移问题,从而降低I/0消耗,提高了性能。
为了使本技术领域的人员更好地理解本发明方案,对本发明涉及的技术术语进行如下解释:
pctfree值:块中保留用于update操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此块中,只能用于update操作,PCTFREE保留的空间就是为确保更改后的数据行可以仍存放于原有数据块中,避免行迁移的情况发生。
行迁移:Oracle的数据按照块保存,如果一块数据磁盘空间无法保存某个数据时,即数据块update操作数据大小超过数据块保留的空间,则会将新的数据保存到另外一个新的块里,然后在以前的块保存一个新位置的地址连接。
rowid:rowid就是唯一标志记录物理位置的一个id,用于定位数据库中一条记录的一个相对唯一地址值,通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。
下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
如图1所示,本实施例提供了一种数据库的行迁移预处理方法,包括如下步骤:
S1:监控业务sql,发现update语句后标记该sql。
S2:解析标记的sql,并生成解析结果。
具体来说:首先,搜索sql库,发现待标记的sql,启动解析进程处理sql语句,提取更新信息。其中,更新信息包括待更新数据所在的表、待更新数据的大小。然后,根据更新信息找到原数据所在表的pctfree值、各数据块使用率信息和原数据rowid信息,作为解析结果。
S3:通过解析结果判断是否会出现行迁移;若否,则转到步骤S4,若是则转到步骤S5。
具体的,根据解析结果判断待更新数据大小是否大于原数据块剩余空间,若是,则会出现行迁移;若否,则不会出现行迁移。
S4:正常执行update语句,在原数据块中更新数据,并结束预处理。
S5:将待更新数据直接插入到标记为可用的新数据块中。
在本步骤中,首先利用undo日志记录原数据进行记录,以便出现问题时进行数据回滚,保证数据安全。然后将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除。
S6:在索引中同步更新rowid信息,更新完成后进行数据提交,并结束预处理。
具体的,在待更新数据插入到标记为可用的新数据块后检索索引中的相关信息,将索引中的数据原rowid更新为新rowid,同时检索内存中是否存在原rowid相关信息,如果存在则一并修改为新rowid。
本实施例提供了一种数据库的行迁移预处理方法,主要是从行迁移的产生原因和影响入手,也就是说即使发生了行迁移,发生了行迁移的行的rowid还是不会变化,该机制的核心原理就是在更新数据的时候将整行数据迁移到预先安排好的数据块中并同时将索引中的原rowid更新为新rowid,这样就不会产生行迁移问题,从而降低I/0消耗,提高性能。
实施例二:
基于实施例一,如图2所示,本发明还公开了一种数据库的行迁移预处理系统,包括:监控模块、接收模块、解析模块、更新模块和同步模块。
监控模块:由监控进程组成,负责监控业务sql,监控进程发现update语句后标记该sql,然后向接收模块发出信号,告知接收模块可进行接收。
接收模块:包括接收器和sql库,接收器负责接收业务sql,sql库负责存放待解析sql。接收进程得到监控模块发出的信号后,找到被标记的sql,将其传入sql库,同时向解析模块和监控模块发出信号,告知监控模块sql已被接收,告知解析模块sql库中语句等待被解析。
解析模块:解析模块内设有解析进程,收到信号后,搜索sql库,发现待解析sql,解析进程处理sql语句,提取更新信息,包括待更新数据所在的表,待更新数据的大小,根据这些信息找到原数据所在表pctfree值、各数据块使用率信息以及原数据rowid信息,根据这些信息判断待更新数据大小是否大于原数据块剩余空间,即是否会出现行迁移问题。如果待更新数据大小小于数据块剩余空间,则数据会在原数据块中进行更新,不会出现行迁移,如果待更新数据大小大于数据块剩余空间,则数据在原数据块中进行更新时,会出现行迁移。根据判断结果对该sql进行标记,同时将剩余空间大于待更新数据的其他数据块标记为可用,将数据块信息以可用列表形式整合到解析结果中,发送给更新模块。
更新模块:更新模块主要是负责更新数据,更新模块根据解析结果来进行数据更新,如果解析结果表明该sql更新不会出现行迁移,则正常在原数据块中更新数据,如果解析结果表明会出现行迁移。如果会出现行迁移,首先通过undo日志将原数据进行记录,以便出现问题时进行数据回滚,保证数据安全。然后更新模块将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除。操作完成后,发送信号给同步模块,进行rowid信息同步。
同步模块:同步模块主要是负责rowid信息的同步,也是该机制关键模块,由于更新后产生了新的rowid,原rowid也被删除,索引中保存的rowid信息需要更新同步。同步模块收到更新完成的信号后检索索引中的相关信息,将索引中的的数据原rowid更新为新rowid,同时检索内存中是否存在原rowid相关信息,如果存在则一并修改为新rowid。最后进行数据提交,数据写入磁盘,整体的数据更新完成。
本实施例提供了一种数据库的行迁移预处理系统,能够在更新数据的时候将整行数据迁移到预先安排好的数据块中并同时将索引中的原rowid更新为新rowid,这样就不会产生行迁移问题,从而降低I/0消耗,提高性能。
实施例三:
本实施例公开了一种数据库的行迁移预处理装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的数据库的行迁移预处理程序时实现以下步骤:
1、监控业务sql,发现update语句后标记该sql。
2、解析标记的sql,并生成解析结果。
3、通过解析结果判断是否会出现行迁移;若否,则转到步骤4,若是则转到步骤5。
4、正常执行update语句,在原数据块中更新数据,并结束预处理。
5、将待更新数据直接插入到标记为可用的新数据块中。
6、在索引中同步更新rowid信息,更新完成后进行数据提交,并结束预处理。
进一步的,本实施例中的数据库的行迁移预处理装置,还可以包括:
输入接口,用于获取外界导入的数据库的行迁移预处理程序,并将获取到的数据库的行迁移预处理程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于USB接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于USB接口、串行接口等。
通讯单元,用于在数据库的行迁移预处理装置和外部服务器之间建立远程通讯连接,以便于数据库的行迁移预处理装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
鼠标,可以用于协助用户输入数据并简化用户的操作。
实施例四:
本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动硬盘、CD-ROM或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有数据库的行迁移预处理程序,所述数据库的行迁移预处理程序被处理器执行时实现以下步骤:
1、监控业务sql,发现update语句后标记该sql。
2、解析标记的sql,并生成解析结果。
3、通过解析结果判断是否会出现行迁移;若否,则转到步骤4,若是则转到步骤5。
4、正常执行update语句,在原数据块中更新数据,并结束预处理。
5、将待更新数据直接插入到标记为可用的新数据块中。
6、在索引中同步更新rowid信息,更新完成后进行数据提交,并结束预处理。
综上所述,本发明实现了一种行迁移预处理机制,能够在数据库数据更新时避免出现行迁移问题,同时保证索引中rowid一致性,提升查询性能,减少空间浪费,有效提高资源利用率,可作为数据库解决方案的一种补充。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的数据库的行迁移预处理方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (7)
1.一种数据库的行迁移预处理方法,其特征在于,包括:
监控业务sql,发现update语句后标记该sql;
解析标记的sql,通过解析结果判断是否会出现行迁移,并整合结果信息,根据判断结果对该sql进行标记,同时将剩余空间大于待更新数据的其他数据块标记为可用;
若不会出现行迁移,则正常执行update语句,在原数据块中更新数据,并结束预处理;
若会出现行迁移,将待更新数据直接插入到标记为可用的新数据块中,并在索引中同步更新rowid信息,将原数据删除,同时检索内存中是否存在原rowid相关信息,如果存在一并修改为新rowid,更新完成后进行数据提交。
2.根据权利要求1所述的数据库的行迁移预处理方法,其特征在于,所述解析标记的sql,包括:
搜索sql库,发现待标记的sql,启动解析进程处理sql语句,提取更新信息;
所述更新信息包括待更新数据所在的表、待更新数据的大小;
根据更新信息找到原数据所在表的pctfree值、各数据块使用率信息和原数据rowid信息,作为解析结果。
3.根据权利要求2所述的数据库的行迁移预处理方法,其特征在于,所述通过解析结果判断是否会出现行迁移,包括:
根据解析结果判断待更新数据大小是否大于原数据块剩余空间,若是,则会出现行迁移;若否,则不会出现行迁移。
4.根据权利要求3所述的数据库的行迁移预处理方法,其特征在于,所述将待更新数据直接插入到标记为可用的新数据块中,包括:
利用undo日志记录原数据进行记录,用于进行数据回滚;
将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除。
5.一种数据库的行迁移预处理系统,其特征在于,包括:监控模块、接收模块、解析模块、更新模块和同步模块;
所述监控模块内设有多个监控进程,用于监控业务sql,监控进程发现update语句后标记该sql,然后向接收模块发出信号,告知接收模块可进行接收;
所述接收模块内设有用于接收业务sql的接收器和用于存放待解析sql的sql库,接收模块用于通过内置的接收进程得到监控模块发出的信号后,找到被标记的sql,将其传入sql库,同时向解析模块和监控模块发出信号,告知监控模块sql已被接收,告知解析模块sql库中语句等待被解析;
所述解析模块内设有多个解析进程,用于解析sql,根据解析结果判断是否会出现迁移,并整合结果信息,根据判断结果对该sql进行标记,同时将剩余空间大于待更新数据的其他数据块标记为可用,将数据块信息以可用列表形式整合到解析结果中,发送给更新模块;
所述更新模块,用于根据解析结果来进行数据更新操作,操作完成后,发送信号给同步模块,进行rowid信息同步;
所述同步模块,用于同步更新索引中的rowid信息,并进行数据提交;
所述更新模块具体用于:
如果解析结果表明该sql更新不会出现行迁移,则正常在原数据块中更新数据,如果解析结果表明会出现行迁移,首先利用undo日志将原数据进行记录,以便出现问题时进行数据回滚;然后将待更新数据直接插入到标记为可用的新数据块中,同时生成新的rowid,将原数据删除;操作完成后,发送信号给同步模块,进行rowid信息同步;
所述同步模块具体用于:
收到更新完成的信号后检索索引中的相关信息,将索引中的数据原rowid更新为新rowid,同时检索内存中是否存在原rowid相关信息,如果存在则一并修改为新rowid;最后进行数据提交,将更新数据写入磁盘。
6.一种数据库的行迁移预处理装置,其特征在于,包括:
存储器,用于存储数据库的行迁移预处理程序;
处理器,用于执行所述数据库的行迁移预处理程序时实现如权利要求1至4任一项权利要求所述的数据库的行迁移预处理方法的步骤。
7.一种可读存储介质,其特征在于:所述可读存储介质上存储有数据库的行迁移预处理程序,所述数据库的行迁移预处理程序被处理器执行时实现如权利要求1至4任一项权利要求所述的数据库的行迁移预处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612487.3A CN114840497B (zh) | 2022-05-31 | 2022-05-31 | 一种数据库的行迁移预处理方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210612487.3A CN114840497B (zh) | 2022-05-31 | 2022-05-31 | 一种数据库的行迁移预处理方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840497A CN114840497A (zh) | 2022-08-02 |
CN114840497B true CN114840497B (zh) | 2024-01-12 |
Family
ID=82572892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210612487.3A Active CN114840497B (zh) | 2022-05-31 | 2022-05-31 | 一种数据库的行迁移预处理方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840497B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860716B (zh) * | 2023-06-16 | 2023-12-22 | 北京原点数安科技有限公司 | 数据迁移方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122640A (en) * | 1998-09-22 | 2000-09-19 | Platinum Technology Ip, Inc. | Method and apparatus for reorganizing an active DBMS table |
CN111061737A (zh) * | 2019-12-12 | 2020-04-24 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
EP3686750A1 (en) * | 2019-01-23 | 2020-07-29 | Accenture Global Solutions Limited | Data migration |
CN114218193A (zh) * | 2021-12-16 | 2022-03-22 | 北京京东拓先科技有限公司 | 数据迁移方法、装置、计算机设备和可读存储介质 |
CN114265828A (zh) * | 2021-12-20 | 2022-04-01 | 平安证券股份有限公司 | 行迁移消除方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768743B2 (en) * | 2020-06-05 | 2023-09-26 | Nutanix, Inc. | System and method for dynamically adjusting recovery time objective in a virtual computing system |
-
2022
- 2022-05-31 CN CN202210612487.3A patent/CN114840497B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122640A (en) * | 1998-09-22 | 2000-09-19 | Platinum Technology Ip, Inc. | Method and apparatus for reorganizing an active DBMS table |
EP3686750A1 (en) * | 2019-01-23 | 2020-07-29 | Accenture Global Solutions Limited | Data migration |
CN111061737A (zh) * | 2019-12-12 | 2020-04-24 | 税友软件集团股份有限公司 | 一种分布式数据库快速扩容装置 |
CN114218193A (zh) * | 2021-12-16 | 2022-03-22 | 北京京东拓先科技有限公司 | 数据迁移方法、装置、计算机设备和可读存储介质 |
CN114265828A (zh) * | 2021-12-20 | 2022-04-01 | 平安证券股份有限公司 | 行迁移消除方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114840497A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920698B (zh) | 一种数据同步方法、装置、系统、介质及电子设备 | |
US20120203745A1 (en) | System and method for range search over distributive storage systems | |
CN110489475B (zh) | 一种多源异构数据处理方法、系统及相关装置 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
US10296497B2 (en) | Storing a key value to a deleted row based on key range density | |
CN108388640B (zh) | 一种数据转换方法、装置以及数据处理系统 | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和系统 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN108416043A (zh) | 多平台空间数据融合与同步方法 | |
CN105095424A (zh) | 一种实现医院his系统中药品的高并发检索方法 | |
CN114840497B (zh) | 一种数据库的行迁移预处理方法、系统、装置及存储介质 | |
CN110990365A (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN111767297B (zh) | 大数据处理方法、装置、设备及介质 | |
US20080140693A1 (en) | Apparatus, Method, And Computer Program Product For Synchronizing Data Sources | |
CN113495872A (zh) | 分布式数据库中的事务处理方法及系统 | |
CN109815240A (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
CN113918663A (zh) | 一种基于命名规则和缓存机制的知识图谱构的操作方法 | |
CN113297269A (zh) | 数据查询方法及装置 | |
CN109491988B (zh) | 一种支持全量更新的数据实时关联方法 | |
CN113064919B (zh) | 数据处理方法、数据存储系统、计算机设备及存储介质 | |
CN111324607A (zh) | Sql语句复用方法和装置 | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN114116907A (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 |