CN114546942B - 一种数据库数据读取方法、装置、终端及存储介质 - Google Patents
一种数据库数据读取方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN114546942B CN114546942B CN202210107405.XA CN202210107405A CN114546942B CN 114546942 B CN114546942 B CN 114546942B CN 202210107405 A CN202210107405 A CN 202210107405A CN 114546942 B CN114546942 B CN 114546942B
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- file
- information
- database
- 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 47
- 238000013507 mapping Methods 0.000 claims description 34
- 238000010276 construction Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static 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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库数据读取领域,具体公开一种在数据库关闭状态下的数据库数据读取方法、装置、终端及存储介质,解析控制文件,定位引导表;解析引导表,获取数据表信息;根据数据表信息定位所需读取数据所在的数据块;从定位的数据块中读取所需数据。本发明首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
Description
技术领域
本发明涉及数据库数据读取领域,具体涉及一种在数据库关闭状态下的数据库数据读取方法、装置、终端及存储介质。
背景技术
数据库包括数据库实例(数据库内存+数据库进程)和数据库相关的控制文件、数据文件等文件。一般在读取数据库数据时,需要数据库保持打开状态,使用数据库的SQL语言(Structured Query Language,结构化查询语言)通过数据库接口、专门的工具或第三方接口来实现。但当数据库处于关闭状态,数据库实例也会是关闭状态,其相关的数据库内存释放,相关数据库服务停止,这样就无法通过数据库实例读取数据库的数据内容。
发明内容
为解决上述问题,本发明提供一种数据库数据读取方法,通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
第一方面,本发明的技术方案提供一种数据库数据读取方法,应用于数据库关闭状态,包括以下步骤:
解析控制文件,定位引导表;
解析引导表,获取数据表信息;
根据数据表信息定位所需读取数据所在的数据块;
从定位的数据块中读取所需数据。
进一步地,解析控制文件,定位引导表,具体包括:
通过二进制转换工具将控制文件解析为trace文件;
读取trace文件内容,找到存放引导表的1号数据文件的数据文件绝对路径和数据文件名称;
进入到1号数据文件的绝对路径,根据其数据文件名称找到1号数据文件;
扫描1号数据文件获取引导表的起始块位置并记录到第一文本文件。
进一步地,解析引导表,获取数据表信息,具体包括:
读取第一文本文件中引导表的起始块位置;
根据引导表的起始块位置找到引导表的盘区映射表;
遍历引导表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取元数据表的建表语句;
从建表语句中找到元数据表的起始块位置;
根据元数据表的起始块位置找到元数据表的盘区映射表;
遍历元数据表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取到数据库中所有的数据表信息,并保存至第二文本文件;其中数据表信息包括数据表名称和对应的起始块位置信息。
进一步地,根据数据表信息定位所需读取数据所在的数据块,具体包括:
将需要读取的数据表名称与第二文本文件中的数据表名称进行比对;
若需要读取的数据表存在于第二文本文件中,则从第二文本文件中读取数据表对应的起始块位置信息;
根据数据表对应的起始块位置信息读取对应的盘区映射表,找到该盘区映射表对应的数据块位置信息并记录到第三文本文件中;
若需要读取的数据表不存在于第二文本文件中,则发出数据表不存在告警。
进一步地,将数据块位置信息记录到第三文本文件中时,根据记录信息的数量将第三文本文件分解为多个第三子文本文件,将所记录信息分散存储到各个第三子文本文件中。
进一步地,从定位的数据块中读取所需数据,具体包括:
读取第三文本文件中的数据块位置信息;
通过数据块位置信息找到数据块;
扫描数据块读取行数据并保存到第四文本文件中。
进一步地,扫描数据块读取行数据,具体包括:
若行数据有多个时间版本,则将行数据时间点与读取时间点进行比对;
读取行数据时间点与读取时间点一致的行数据;
若行数据的多个时间版本均与读取时间点不一致,则读取行数据时间点早于读取时间点的行数据。
第二方面,本发明的技术方案提供一种数据库数据读取装置,运行于数据库关闭状态,包括,
引导表定位模块:解析控制文件,定位引导表;
数据表信息获取模块:解析引导表,获取数据表信息;
数据块定位模块:根据数据表信息定位所需读取数据所在的数据块;
数据读取模块:从定位的数据块中读取所需数据。
第三方面,本发明的技术方案提供一种终端,包括:
存储器,用于存储数据库数据读取程序;
处理器,用于执行所述数据库数据读取程序时实现如上述任一项所述数据库数据读取方法的步骤。
第四方面,本发明的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有数据库数据读取程序,所述数据库数据读取程序被处理器执行时实现如上述任一项所述数据库数据读取方法的步骤。
本发明提供的一种数据库数据读取方法、装置、终端及存储介质,相对于现有技术,具有以下有益效果:首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种数据库数据读取方法流程示意图。
图2为本发明实施例二提供的一种数据库数据读取装置结构示意框图。
图3为本发明实施例三提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
针对当前当数据库处于关闭状态,数据库实例也会是关闭状态,其相关的数据库内存释放,相关数据库服务停止,这样就无法通过数据库实例读取数据库的数据内容的问题,本实施例提供一种数据库数据读取方法,首先通过解析控制文件,定位到数据库引导表所在1号数据文件(数据库引导表存放在该数据文件中),然后定位到引导表所在的1号数据块(存放引导表段的块头信息),扫描该数据块,把引导表(引导表存储数据库的元数据表等信息)的具体信息读取出来,找到元数据表,遍历元数据表信息,从元数据表中找到要读取的数据表和所对应的数据块位置信息,通过进一步扫描这些数据块读取出数据内容,进行输出展示。
如图1所示为本实施例一提供的一种数据库数据读取方法流程示意图,包括以下步骤。
S101,解析控制文件,定位引导表。
定位引导表即定位到引导表所在的数据文件,然后从该数据文件中获取引导表的起始块位置。
S102,解析引导表,获取数据表信息。
根据引导表的起始块位置可获取元数据表的建表语句,从建表语句中找到元数据表的起始块位置,根据元数据表的起始块位置可读取到数据库中所有的数据表信息。
S103,根据数据表信息定位所需读取数据所在的数据块。
根据数据表信息即可定位到所需数据块的位置信息,后续根据位置信息找到数据块。
S104,从定位的数据块中读取所需数据。
如上所述,数据块的位置信息已获取,根据位置信息即可找到数据块,然后从数据块中读取到所需数据。需要说明的是,数据块中有多类数据,并不一定需要全部读取出来,根据用户需求读出需要的数据即可,例如只读出行数据。
本实施例一提供的一种数据库数据读取方法,首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
为便于对本发明的理解,以下对上述各步骤过程进行详细说明。
(一)解析控制文件,定位引导表
定位引导表即定位到引导表所在的数据文件,然后从该数据文件中获取引导表的起始块位置,该过程具体包括以下步骤。
步骤一,通过二进制转换工具将控制文件解析为trace文件。
控制文件本身是二进制文件,但以二进制文件存在,无法直接读取,所以将控制文件通过二进制转换工具解析为trace文件。可以理解的是,将trace文件解析出来之后需要存储,具体实施例时可将trace文件存储到数据库文件的存储目录。
步骤二,读取trace文件内容,找到存放引导表的1号数据文件的数据文件绝对路径和数据文件名称。
读取trace文件时先进入数据库文件的存储目录,找到trance文件,然后从trace文件中读取需要的信息。trace文件中记录了数据库的物理结构,包括各种数据库文件的名称、存放目录,按照数据文件编号顺序记录数据文件名称。本实施例从trace文件读取存放引导表的1号数据文件的数据文件绝对路径和数据文件名称,以便定位1号数据文件,再找到引导表的信息。
步骤三,进入到1号数据文件的绝对路径,根据其数据文件名称找到1号数据文件。
步骤四,扫描1号数据文件获取引导表的起始块位置并记录到第一文本文件。
具体地,扫描1号数据文件的1号数据块,1号数据块记录了引导表的起始块位置,将读取的起始块位置记录到第一文本文件,以便后续使用。
(二)解析引导表,获取数据表信息
根据引导表的起始块位置可获取元数据表的建表语句,从建表语句中找到元数据表的起始块位置,根据元数据表的起始块位置可读取到数据库中所有的数据表信息,具体地,该过程包括以下步骤。
步骤一,读取第一文本文件中引导表的起始块位置。
定位引导表时已将引导表的起始块位置记录到第一文本文件,该过程读取第一文本文件中的内容即可。
步骤二,根据引导表的起始块位置找到引导表的盘区映射表。
引导表的盘区映射表是引导表所在的数据块与其数据块物理位置信息对应关系。
步骤三,遍历引导表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取元数据表的建表语句。
遍历引导表的所有盘区映射表对应的数据块,这些数据块可能跨越多个数据文件,解析这些数据块中的内容,读取元数据表的建表语句。
步骤四,从建表语句中找到元数据表的起始块位置。
步骤五,根据元数据表的起始块位置找到元数据表的盘区映射表。
元数据表的盘区映射表是元数据表所在的数据块与其数据块物理位置信息对应关系。
步骤六,遍历元数据表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取到数据库中所有的数据表信息,并保存至第二文本文件;其中数据表信息包括数据表名称和对应的起始块位置信息。
遍历元数据表的所有盘区映射表对应的数据块,这些数据块可能跨越多个数据文件,解析这些数据块中的内容,读取到数据库中所有的数据表信息,包括数据表名称、数据表的字段信息及对应的起始块位置信息等,并将这些信息存储至第二文本文件中。
(三)根据数据表信息定位所需读取数据所在的数据块
根据数据表信息即可定位到所需数据块的位置信息,后续根据位置信息找到数据块,具体地,该过程包括以下步骤。
步骤一,将需要读取的数据表名称与第二文本文件中的数据表名称进行比对。
第二文本文件中记录了数据库全部的数据表名称,首先要检测用户需要读取的数据表是否在该数据库中,因此将需要读取的数据表名称与第二文本文件中的数据表名称进行比对。
步骤二,若需要读取的数据表存在于第二文本文件中,则从第二文本文件中读取数据表对应的起始块位置信息。
步骤三,根据数据表对应的起始块位置信息读取对应的盘区映射表,找到该盘区映射表对应的数据块位置信息并记录到第三文本文件中。
需要记录的数据可能较多,未避免全部记录在一个文件中会出现卡死,将数据块位置信息记录到第三文本文件中时,根据记录信息的数量将第三文本文件分解为多个第三子文本文件,将所记录信息分散存储到各个第三子文本文件中。可根据记录数量均衡记录在各个子文本文件中。
步骤四,若需要读取的数据表不存在于第二文本文件中,则发出数据表不存在告警。
需要说明的是,如果需要读取的数据表不存在于T2中,则停止后续步骤,给出“要读取的数据表在数据库中不存在”的告警提示。
(四)定位的数据块中读取所需数据
数据块中有多类数据,并不一定需要全部读取出来,根据用户需求读出需要的数据即可,以行数据为例,具体地,该过程包括以下步骤。
步骤一,读取第三文本文件中的数据块位置信息。
步骤二,通过数据块位置信息找到数据块。
步骤三,扫描数据块读取行数据并保存到第四文本文件中。
首先,读取第三文本文件中记录的数据块位置信息,通过数据块位置信息找到数据块,并解析数据块信息。扫描数据块,跳过若干信息,如数据块头信息、事务信息、事务槽、数据头信息、表目录信息、行目录,只读取行数据。第三文本文件包括多个第三子文本文件,可并行分别读取相关第三子文本文件,以加快数据行读取效率。
行数据可能存在一行数据存在多个时间版本的情况,因此若行数据有多个时间版本,则将行数据时间点与读取时间点进行比对;读取行数据时间点与读取时间点一致的行数据;若行数据的多个时间版本均与读取时间点不一致,则读取行数据时间点早于读取时间点的行数据。这样就保证了不会读取脏数据的情况。
另外,同第三文本文件类似,将第四文本文件进行分割,以避免文本文件容量过大在读取时卡死情况。
实施例二
在实施例一基础上,本实施例二提供一种数据库数据读取装置,用于实现前述的数据库数据读取方法。
如图2所示为本实施例二提供的一种数据库数据读取装置结构示意框图,包括以下功能模块。
引导表定位模块101:解析控制文件,定位引导表;
数据表信息获取模块102:解析引导表,获取数据表信息;
数据块定位模块103:根据数据表信息定位所需读取数据所在的数据块;
数据读取模块104:从定位的数据块中读取所需数据。
其中,引导表定位模块101解析控制文件,定位引导表,具体包括:通过二进制转换工具将控制文件解析为trace文件;读取trace文件内容,找到存放引导表的1号数据文件的数据文件绝对路径和数据文件名称;进入到1号数据文件的绝对路径,根据其数据文件名称找到1号数据文件;扫描1号数据文件获取引导表的起始块位置并记录到第一文本文件。
数据表信息获取模块102解析引导表,获取数据表信息具体包括:读取第一文本文件中引导表的起始块位置;根据引导表的起始块位置找到引导表的盘区映射表;遍历引导表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取元数据表的建表语句;从建表语句中找到元数据表的起始块位置;根据元数据表的起始块位置找到元数据表的盘区映射表;遍历元数据表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取到数据库中所有的数据表信息,并保存至第二文本文件;其中数据表信息包括数据表名称和对应的起始块位置信息。
数据块定位模块103根据数据表信息定位所需读取数据所在的数据块,具体包括:将需要读取的数据表名称与第二文本文件中的数据表名称进行比对;若需要读取的数据表存在于第二文本文件中,则从第二文本文件中读取数据表对应的起始块位置信息;根据数据表对应的起始块位置信息读取对应的盘区映射表,找到该盘区映射表对应的数据块位置信息并记录到第三文本文件中;若需要读取的数据表不存在于第二文本文件中,则发出数据表不存在告警。
数据读取模块104从定位的数据块中读取所需数据,具体包括:读取第三文本文件中的数据块位置信息;通过数据块位置信息找到数据块;扫描数据块读取行数据并保存到第四文本文件中。其中,若行数据有多个时间版本,则将行数据时间点与读取时间点进行比对;读取行数据时间点与读取时间点一致的行数据;若行数据的多个时间版本均与读取时间点不一致,则读取行数据时间点早于读取时间点的行数据。
本实施例二提供的一种数据库数据读取装置,首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
实施例三
图3为本发明实施例提供的一种终端装置300的结构示意图,包括:处理器310、存储器320及通信单元330。所述处理器310用于实现存储器320中保存的数据库数据读取程序时实现以下步骤:
解析控制文件,定位引导表;
解析引导表,获取数据表信息;
根据数据表信息定位所需读取数据所在的数据块;
从定位的数据块中读取所需数据。
本发明首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
该终端装置300包括处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
实施例四
本发明还提供一种计算机存储介质,这里所说的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random accessmemory,简称:RAM)等。
计算机存储介质存储有数据库数据读取程序,所述数据库数据读取程序被处理器执行时实现以下步骤:
解析控制文件,定位引导表;
解析引导表,获取数据表信息;
根据数据表信息定位所需读取数据所在的数据块;
从定位的数据块中读取所需数据。
本发明首先通过解析控制文件定位引导表,然后通过引导表获取数据表信息,根据数据表信息定位所需读取数据所在的数据块,最终从定位的数据块中读取所需数据,本发明简单高效,可通过分析相关数据库文件来读取数据、获取数据,实现在数据库关闭状态下数据库内数据的读取。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (6)
1.一种数据库数据读取方法,应用于数据库关闭状态,其特征在于,包括以下步骤:
解析控制文件,定位引导表;
解析引导表,获取数据表信息;
根据数据表信息定位所需读取数据所在的数据块;
从定位的数据块中读取所需数据;
其中,解析控制文件,定位引导表,具体包括:
通过二进制转换工具将控制文件解析为trace文件;
读取trace文件内容,找到存放引导表的1号数据文件的数据文件绝对路径和数据文件名称;
进入到1号数据文件的绝对路径,根据其数据文件名称找到1号数据文件;
扫描1号数据文件获取引导表的起始块位置并记录到第一文本文件;
其中,解析引导表,获取数据表信息,具体包括:
读取第一文本文件中引导表的起始块位置;
根据引导表的起始块位置找到引导表的盘区映射表;
遍历引导表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取元数据表的建表语句;
从建表语句中找到元数据表的起始块位置;
根据元数据表的起始块位置找到元数据表的盘区映射表;
遍历元数据表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取到数据库中所有的数据表信息,并保存至第二文本文件;其中数据表信息包括数据表名称和对应的起始块位置信息;
其中,根据数据表信息定位所需读取数据所在的数据块,具体包括:
将需要读取的数据表名称与第二文本文件中的数据表名称进行比对;
若需要读取的数据表存在于第二文本文件中,则从第二文本文件中读取数据表对应的起始块位置信息;
根据数据表对应的起始块位置信息读取对应的盘区映射表,找到该盘区映射表对应的数据块位置信息并记录到第三文本文件中;
若需要读取的数据表不存在于第二文本文件中,则发出数据表不存在告警;
其中,从定位的数据块中读取所需数据,具体包括:
读取第三文本文件中的数据块位置信息;
通过数据块位置信息找到数据块;
扫描数据块读取行数据并保存到第四文本文件中。
2.根据权利要求1所述的数据库数据读取方法,其特征在于,将数据块位置信息记录到第三文本文件中时,根据记录信息的数量将第三文本文件分解为多个第三子文本文件,将所记录信息分散存储到各个第三子文本文件中。
3.根据权利要求2所述的数据库数据读取方法,其特征在于,扫描数据块读取行数据,具体包括:
若行数据有多个时间版本,则将行数据时间点与读取时间点进行比对;
读取行数据时间点与读取时间点一致的行数据;
若行数据的多个时间版本均与读取时间点不一致,则读取行数据时间点早于读取时间点的行数据。
4.一种数据库数据读取装置,运行于数据库关闭状态,其特征在于,包括,
引导表定位模块:解析控制文件,定位引导表;
数据表信息获取模块:解析引导表,获取数据表信息;
数据块定位模块:根据数据表信息定位所需读取数据所在的数据块;
数据读取模块:从定位的数据块中读取所需数据;
其中,解析控制文件,定位引导表,具体包括:
通过二进制转换工具将控制文件解析为trace文件;
读取trace文件内容,找到存放引导表的1号数据文件的数据文件绝对路径和数据文件名称;
进入到1号数据文件的绝对路径,根据其数据文件名称找到1号数据文件;
扫描1号数据文件获取引导表的起始块位置并记录到第一文本文件;
其中,解析引导表,获取数据表信息,具体包括:
读取第一文本文件中引导表的起始块位置;
根据引导表的起始块位置找到引导表的盘区映射表;
遍历引导表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取元数据表的建表语句;
从建表语句中找到元数据表的起始块位置;
根据元数据表的起始块位置找到元数据表的盘区映射表;
遍历元数据表所有盘区映射表对应的数据块,并解析所遍历所有数据块中的内容,读取到数据库中所有的数据表信息,并保存至第二文本文件;其中数据表信息包括数据表名称和对应的起始块位置信息;
其中,根据数据表信息定位所需读取数据所在的数据块,具体包括:
将需要读取的数据表名称与第二文本文件中的数据表名称进行比对;
若需要读取的数据表存在于第二文本文件中,则从第二文本文件中读取数据表对应的起始块位置信息;
根据数据表对应的起始块位置信息读取对应的盘区映射表,找到该盘区映射表对应的数据块位置信息并记录到第三文本文件中;
若需要读取的数据表不存在于第二文本文件中,则发出数据表不存在告警;
其中,从定位的数据块中读取所需数据,具体包括:
读取第三文本文件中的数据块位置信息;
通过数据块位置信息找到数据块;
扫描数据块读取行数据并保存到第四文本文件中。
5.一种终端,其特征在于,包括:
存储器,用于存储数据库数据读取程序;
处理器,用于执行所述数据库数据读取程序时实现如权利要求1-3任一项所述数据库数据读取方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有数据库数据读取程序,所述数据库数据读取程序被处理器执行时实现如权利要求1-3任一项所述数据库数据读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107405.XA CN114546942B (zh) | 2022-01-28 | 2022-01-28 | 一种数据库数据读取方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107405.XA CN114546942B (zh) | 2022-01-28 | 2022-01-28 | 一种数据库数据读取方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114546942A CN114546942A (zh) | 2022-05-27 |
CN114546942B true CN114546942B (zh) | 2024-01-19 |
Family
ID=81674491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210107405.XA Active CN114546942B (zh) | 2022-01-28 | 2022-01-28 | 一种数据库数据读取方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546942B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192226A (zh) * | 2006-12-01 | 2008-06-04 | 中兴通讯股份有限公司 | 一种基于定长记录的数据库的数据存取方法 |
WO2013091349A1 (zh) * | 2011-12-21 | 2013-06-27 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
CN107220178A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种服务器诊断测试结果准实时展现的方法 |
CN109067605A (zh) * | 2018-10-08 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种存储子系统故障诊断方法、装置、终端及存储介质 |
CN111258664A (zh) * | 2020-01-19 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种内存序列号完整获取方法、系统、终端及存储介质 |
CN111414362A (zh) * | 2020-02-28 | 2020-07-14 | 平安科技(深圳)有限公司 | 数据读取方法、装置、设备及存储介质 |
CN112035461A (zh) * | 2020-06-17 | 2020-12-04 | 深圳市法本信息技术股份有限公司 | 数据库的表数据文件的迁移方法和系统 |
CN113742298A (zh) * | 2021-11-04 | 2021-12-03 | 南京芯传汇电子科技有限公司 | 一种机载二进制文件通用并行的解析方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109164980B (zh) * | 2018-08-03 | 2024-02-02 | 北京涛思数据科技有限公司 | 一种时序数据的聚合优化处理方法 |
-
2022
- 2022-01-28 CN CN202210107405.XA patent/CN114546942B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192226A (zh) * | 2006-12-01 | 2008-06-04 | 中兴通讯股份有限公司 | 一种基于定长记录的数据库的数据存取方法 |
WO2013091349A1 (zh) * | 2011-12-21 | 2013-06-27 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
CN107220178A (zh) * | 2017-05-26 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种服务器诊断测试结果准实时展现的方法 |
CN109067605A (zh) * | 2018-10-08 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种存储子系统故障诊断方法、装置、终端及存储介质 |
CN111258664A (zh) * | 2020-01-19 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种内存序列号完整获取方法、系统、终端及存储介质 |
CN111414362A (zh) * | 2020-02-28 | 2020-07-14 | 平安科技(深圳)有限公司 | 数据读取方法、装置、设备及存储介质 |
CN112035461A (zh) * | 2020-06-17 | 2020-12-04 | 深圳市法本信息技术股份有限公司 | 数据库的表数据文件的迁移方法和系统 |
CN113742298A (zh) * | 2021-11-04 | 2021-12-03 | 南京芯传汇电子科技有限公司 | 一种机载二进制文件通用并行的解析方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114546942A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010499B2 (en) | Database staging area read-through or forced flush with dirty notification | |
CN111274045B (zh) | 一种多平台对接方法、装置、计算机设备及可读存储介质 | |
CN111414362A (zh) | 数据读取方法、装置、设备及存储介质 | |
CN110958292A (zh) | 文件上传方法、电子装置、计算机设备及存储介质 | |
CN108121774B (zh) | 一种数据表备份方法及终端设备 | |
CN107590162A (zh) | 日志文件的存储方法及装置 | |
CN112671878B (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN114546942B (zh) | 一种数据库数据读取方法、装置、终端及存储介质 | |
CN116993523A (zh) | 配置化对账方法、装置、设备及存储介质 | |
CN113704123B (zh) | 接口测试方法、装置、设备以及存储介质 | |
CN112147987B (zh) | 一种车辆诊断方法、车辆诊断装置及终端设备 | |
CN108241607A (zh) | 算法测试案例的自动导入方法、服务器及存储介质 | |
CN111026613B (zh) | 日志处理方法及装置 | |
CN109740027B (zh) | 数据交换方法、装置、服务器和存储介质 | |
CN108897873B (zh) | 一种生成作业文件的方法、装置、存储介质及处理器 | |
CN110517010A (zh) | 一种数据处理方法、系统及存储介质 | |
CN114818645B (zh) | 基于数据主体的自动化报告生成方法、装置、设备及介质 | |
US6356895B1 (en) | Method and computer program product for processing system files using a trigger program | |
CN112764740B (zh) | 一种基于Shell的应用在系统间文件交互中的处理方法 | |
CN113296683B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN111753141B (zh) | 一种数据管理方法及相关设备 | |
CN116048981A (zh) | 一种后端接口测试用例设计方法、装置、介质及设备 | |
CN117171030A (zh) | 软件运行环境检测方法、装置、设备及存储介质 | |
CN114185609A (zh) | 设备配置信息的处理方法、装置、储存介质和处理器 | |
CN117009296A (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 |