CN110263057A - 一种rowid映射表的存储/查询方法及装置 - Google Patents

一种rowid映射表的存储/查询方法及装置 Download PDF

Info

Publication number
CN110263057A
CN110263057A CN201910506515.1A CN201910506515A CN110263057A CN 110263057 A CN110263057 A CN 110263057A CN 201910506515 A CN201910506515 A CN 201910506515A CN 110263057 A CN110263057 A CN 110263057A
Authority
CN
China
Prior art keywords
rowid
storage
file
mapping table
source
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
Application number
CN201910506515.1A
Other languages
English (en)
Other versions
CN110263057B (zh
Inventor
王岚
李登科
杨锐
陈勇铨
周华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INFORMATION2 SOFTWARE (SHANGHAI) Ltd
Original Assignee
INFORMATION2 SOFTWARE (SHANGHAI) Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by INFORMATION2 SOFTWARE (SHANGHAI) Ltd filed Critical INFORMATION2 SOFTWARE (SHANGHAI) Ltd
Priority to CN201910506515.1A priority Critical patent/CN110263057B/zh
Publication of CN110263057A publication Critical patent/CN110263057A/zh
Application granted granted Critical
Publication of CN110263057B publication Critical patent/CN110263057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种ROWID映射表的存储/查询方法及装置,该方法包括:步骤S1,根据ROWID结构建立层次性的ROWID映射表存储结构,以存储源/目标端的ROWID映射表;步骤S2,于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;步骤S3,根据源ROWID的相对文件编号定位到相应的FNO文件;步骤S4,获取该FNO文件的索引区与数据区,根据源ROWID的块编号BLKNO定位到实际存储块;步骤S5,将目标ROWID根据源SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。

Description

一种ROWID映射表的存储/查询方法及装置
技术领域
本发明涉及计算机数据备份容灾技术领域,特别是涉及一种ROWID映射表的存储/查询方法及装置。
背景技术
ORACLE数据库是一种使用非常广泛的数据库,ORACLE数据库中存储的每一行记录都有一个唯一的标识叫做ROWID,利用ROWID表示可以查询到数据库中的这条记录。
ROWID分为四部分,共10个字节(80个二进制位),这四部分是:
1.数据对象编号(OBJD):表明此行所属的数据库对象的编号,数据对象指的是表或者分区表的分区,每个数据对象在数据库建立的时候都被唯一分配一个编号,并且此编号唯一。数据对象编号占用32位。
2.相对文件编号(FNO):表明该行记录所在的文件的编号,文件编号占10位。
3.块编号(BLKNO):表明该行记录所在文件的块的编号,块编号占22位,即0到2^22。由于ORACLE内部存储空间分配的原因,记录行的BLKNO是并不是从0到2^22连续使用的,ORACLE会选择若干段连续的BLKNO使用。
4.行编号(SLOT):表明该行记录在数据块中的位置,行编号需要16位。
为方便描述,以下将源端数据库库和目标端数据库的记录的ROWID分别称为源ROWID以及目标ROWID。
在进行ORACLE数据库复制时,需要将源库的记录同目标库的记录一一对应起来,才能将源数据库的记录变化正确地更新到目标数据库,目前常见的一种方式是采用ROWID映射,即将源ROWID和目标ROWID的对应关系存储下来,称之为ROWID映射表,在同步针对记录的更新和删除动作时首先根据源记录的ROWID查询目标ROWID,从而定位到目标记录。然而,现有技术中,ROWID映射表的存储方式使得它无法支持大量的映射条目和非常快速地查询。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种ROWID映射表的存储/查询方法及装置,以使得ROWID映射表能够支持大量的ROWID映射条目以及支持快速查询,并且尽量减少文件空洞。
为达上述目的,本发明提出本发明一种ROWID映射表的存储/查询方法,包括如下步骤:
步骤S1,根据ROWID结构建立层次性的ROWID映射表存储结构,以用于存储源端与目标端的ROWID映射表,所述层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块;
步骤S2,于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;
步骤S3,在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件;
步骤S4,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块;
步骤S5,将目标ROWID根据源SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
优选地,所述ROWID映射表的存储结构的建立如下:
根据ROWID为每个数据对象编号OBJD创建一个目录;
在每个数据对象编号OBJD目录下为使用到的相对文件编号FNO创建一个文件;
将所述FNO文件以块为单位存储,以用于存储相应块编号BLKNO对应的源端与备端rowid映射数据。
优选地,所述FNO文件中存储的文件内部格式分为文件索引区和数据区,所述文件索引区用于标记块编号BLKNO的使用情况,以及定位块编号BLKNO对应的存储位置,所述数据区用于存放具体的映射块数据。
优选地,所述文件索引区共16384个单元,每单元2字节,0表示未使用,其它数字表示这一组实际使用的存储空间组号;所述数据区以组为单位,共16384组,每组256块。
优选地,步骤S4进一步包括:
步骤S400,获取该FNO文件的文件索引区;
步骤S401,以源BLKNO除以256取整为组号,定位索引数据,以获取用于存储ROWID映射表的存储组号;
步骤S402,根据存储组号计算存储组在文件内的偏移;
步骤S403,根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。
优选地,于步骤S401中,以源BLKNO除以256为组号,定位索引数据,若索引数据不为0,则直接获得相应的存储组号,若索引数值为0,则说明该BLKNO所在的组尚未分配存储空间,遍历索引区所有索引数据,以找到一个未使用的存储组号。
优选地,若索引数值为0,遍历索引区所有索引数据,查询之前记录的最大索引数据X,在最大索引数据X基础上加1作为存储组号,并更新该存储组号到索引数据,以将FNO文件写入磁盘。
优选地,所述存储组在文件内的偏移为32768+(存储组号–1)*块大小*256。
为达到上述目的,本发明还提供一种ROWID映射表的存储/查询装置,包括:
ROWID映射表存储结构建立单元,用于根据ROWID结构建立层次性的ROWID映射表存储结构,以用于存储源端与目标端的ROWID映射表,所述层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块;
目录定位单元,用于根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;
FNO文件定位单元,用于在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件;
存储块定位单元,用于获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块;
存储/查询单元,用于将目标ROWID根据源ROWID的行编号SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
优选地,所述存储块定位单元进一步包括:
文件索引区获取单元,用于获取该FNO文件的文件索引区;
存储组号获取单元,用于以源BLKNO除以256取整为组号,定位索引数据,以获取用于存储ROWID映射表的存储组号;
偏移计算单元,用于根据存储组号计算存储组在文件内的偏移;
块定位单元,用于根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。
与现有技术相比,本发明一种ROWID映射表的存储/查询方法通过根据源端数据库的记录的源ROWID建立层次性的ROWID映射表存储结构,并于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录,然后根据源ROWID的相对文件编号FNO定位到相应的FNO文件,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块,最后将目标ROWID按源SLOT的顺序存储在存储块内/根据通过源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID,使得本发明的ROWID映射表能够支持大量的ROWID映射条目以及支持快速查询,并且可尽量减少文件空洞。
附图说明
图1为本发明一种ROWID映射表的存储/查询方法的步骤流程图;
图2为本发明实施例中ROWID映射表存储结构的结构示意图;
图3为本发明实施例中文件索引区与数据区的结构示意图;
图4为本发明一种ROWID映射表的存储/查询装置的系统架构图;
图5为本发明具体实施例中存储块定位单元的结构图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种ROWID映射表的存储/查询方法的步骤流程图。如图1所示,本发明一种ROWID映射表的存储/查询方法,包括如下步骤:
步骤S1,根据ROWID结构建立层次性的ROWID映射表存储结构,以用于存储源端与目标端的ROWID映射表,其中层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块,在本发明具体实施例中,所述ROWID映射表存储结构如图2所示。
也就是说,在进行ORACLE数据库复制时,在将源端数据库的数据复制于目标端数据库的同时,需源ROWID和目标ROWID的对应关系(ROWID映射表)进行存储,在进行存储之前,须建立该ROWID映射表的存储结构。所述ROWID映射表的存储结构的建立如下:
根据ROWID结构为每个数据对象编号OBJD创建一个目录;
在每个数据对象编号OBJD目录下为使用到的相对文件编号FNO创建一个文件;
所述FNO文件以块为单位存储,用于存储相应块编号BLKNO对应的源端与备端ROWID映射数据,也就是说,实际存储过程中,将每个块编号BLKNO对应的源端与备端rowid映射数据存储到对应的相对文件编号FNO文件中,以块为单位存储。
在本发明具体实施例中,存储的FNO文件内部格式分为文件索引区和数据区:
文件索引区:索引区的目的是为了标记块编号BLKNO的使用情况,以及快速定位块编号BLKNO对应的存储位置。在本发明具体实施例中,块号的范围是0-2^22,将其划分为2^14(16384)组,每组包含256个块,块号0-255属于第一组,256-511属于第二组以此类推,相应的,文件的存储空间也被分成16384组,每组大小为256个块。具体地,如图3所示,索引区共16384个单元(0~16383),每单元2字节,共32768字节,0表示未使用,其它数字表示这一组实际使用的存储空间组号,也即实际的存储位置,也就是说,索引区的块号除以256值取整后的值对应索引区存放的数值就是数据区的索引,例如其中索引区的块号除以256值取整后的值对应的数值3表示块号区间256-511在数据存放数据区的索引;
数据区:数据区用于存放具体的映射块数据,以组为单位,共16384组,每组256块。
步骤S2,于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录。
步骤S3,在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件。
步骤S4,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块。
具体地,步骤S4进一步包括:
步骤S400,获取该FNO文件的文件索引区,在本发明具体实施例中,将文件索引区共32768字节读到内存中供查询使用。
步骤S401,以源BLKNO除以256取整为组号,定位索引数据,以获得用于存储ROWID映射表的存储组号。在本发明具体实施例中,若该索引数据不为0,则说明已存储相应的数据,可直接获得相应的存储组号,若该索引数据为0,则遍历所有索引数据以找到一个未使用的存储组号。
具体地,以源BLKNO除以256为组号,定位索引数据,若索引数据不为0,则说明已存储相应的数据,则可直接获得相应的存储组号,若索引数值为0,说明该BLKNO所在的组尚未分配存储空间,则遍历索引区所有索引数据,以查询之前记录的最大索引数据X,索引数据中的非0值代表使用了的存储组号,因此遍历之后,就能找到一个没有使用的存储组号,即最大索引数据X基础上加1,并更新此存储组号到索引数据,以将FNO文件写入磁盘。举例来说,假设源BLKNO块号为530,将其除以256取整得到组号为2,定位索引数据,去文件索引区定位索引数据,若索引数据不为0,则表示已存储,直接用获取的索引数据定位到数据区的存储组号;若索引数据为0,则去查询之前记录的最大索引数据X,如果之前最大索引数据X为0,那么令新索引数据为1,将新索引数据1放入索引区第三区,如果之前的最大索引数据X不为0,则将最大索引数据X加1放入索引区第三区。也就是说,如果获取的索引数为0,则说明这个索引区没使用,那么在最大索引数据X基础上加1,然后存入索引区,如果获取的索引数不为0,那么直接用获取的索引数去定位数据区。
步骤S402,根据存储组号计算存储组在文件内的偏移。具体地,所述存储组指的是数据区分的组,存储组在文件内的偏移为32768+(存储组号–1)*块大小*256。
步骤S403,根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。所述存储组偏移为步骤S402获得的偏移,由于组内有256个块根据块号顺序排放,索引根据块号和块大小就可以确定组内偏移。
步骤S5,将目标ROWID按源SLOT的顺序存储在存储块内/根据通过源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
图4为本发明一种ROWID映射表的存储/查询装置的系统架构图。如图4所示,本发明一种ROWID映射表的存储/查询装置,包括:
ROWID映射表存储结构建立单元401,用于ROWID结构建立层次性的ROWID映射表存储结构,以用于存储源端与目标端的ROWID映射表,其中层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块。
也就是说,在进行ORACLE数据库复制时,在将源端数据库的数据复制于目标端数据库的同时,需源ROWID和目标ROWID的对应关系(ROWID映射表)进行存储,在进行存储之前,须建立该ROWID映射表的存储结构。所述ROWID映射表的存储结构的建立如下:
根据ROWID结构为每个数据对象编号OBJD创建一个目录;
在每个数据对象编号OBJD目录下为使用到的相对文件编号FNO创建一个文件;
所述FNO文件以块为单位存储,用于存储相应块编号BLKNO对应的源端与备端rowid映射数据,也就是说,实际存储过程中,将每个块编号BLKNO对应的源端与备端rowid映射数据存储到对应的相对文件编号FNO文件中,以块为单位存储。
在本发明具体实施例中,存储的FNO文件内部格式分为文件索引区和数据区:
文件索引区:索引区的目的是为了标记块编号BLKNO的使用情况,以及快速定位块编号BLKNO对应的存储位置。在本发明具体实施例中,块号的范围是0-2^22,将其划分为2^14(16384)组,每组包含256个块,块号0-255属于第一组,256-511属于第二组以此类推,相应的,文件的存储空间也被分成16384组,每组大小为256个块。具体地,索引区共16384个单元(0~16383),每单元2字节,共32768字节,0表示未使用,其它数字表示这一组实际使用的存储空间组号,也即实际的存储位置,也就是说,索引区的块号除以256值取整后的值对应索引区存放的数值就是数据区的索引,例如其中索引区的块号除以256值取整后的值对应的数值3表示块号区间256-511在数据存放数据区的索引;
数据区:数据区用于存放具体的映射块数据,以组为单位,共16384组,每组256块。
目录定位单元402,用于在进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录。
FNO文件定位单元403,用于在目录定位单元402定位到的目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件。
存储块定位单元404,用于获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块。
具体地,如图5所示,存储块定位单元404进一步包括:
文件索引区获取单元4041,用于获取该FNO文件的文件索引区,在本发明具体实施例中,将文件索引区共32768字节读到内存中供查询使用。
存储组号获取单元4042,用于以源BLKNO除以256取整为组号,定位索引数据,以获得用于存储ROWID映射表的存储组号。在本发明具体实施例中,若该索引数据不为0,则说明已存储相应的数据,则可直接获得相应的存储组号,若该索引数据为0,则遍历所有索引数据以找到一个未使用的存储组号。
具体地,以源BLKNO除以256为组号,定位索引数据,若索引数据不为0,则说明已存储相应的数据,则可直接获得相应的存储组号,若索引数值为0,说明该BLKNO所在的组尚未分配存储空间,遍历索引区所有索引数据,以查询之前记录的最大索引数据X,索引数据中的非0值代表使用了的存储组号,因此遍历之后,就能找到一个没有使用的存储组号,即最大索引数据X基础上加1,并更新此存储组号到索引数据,以便将FNO文件写入磁盘。举例来说,假设源BLKNO块号为530,将其除以256取整得到组号为2,定位索引数据,去文件索引区若索引数据,若索引数据不为0,则表示已存储,直接用获取的索引数据定位到数据区的存储组号;若索引数据为0,则去查询之前记录的最大索引数据X,如果之前最大索引数据X为0,那么新索引数据为1,将索引数据1放入索引区第三区,如果之前的最大索引数据X不为0,则将最大索引数据X加1放入索引区第三区。也就是说,如果获取的索引数为0,则说明这个索引区未使用,那么在最大索引数据X基础上加1,然后存入索引区,如果获取的索引数据不为0,那么则直接用获取的索引数去定位数据区。
偏移计算单元4043,用于根据存储组号计算存储组在文件内的偏移。具体地,所述存储组指的是数据区分的组,存储组在文件内的偏移为32768+(存储组号–1)*块大小*256。
块定位单元4044,用于根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。所述存储组偏移为步骤S402获得的偏移,由于组内有256个块根据块号顺序排放,索引根据块号和块大小就可以确定组内偏移。
存储/查询单元405,用于将目标ROWID按源ROWID的行编号SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询得到相应的目标ROWID。
步骤S5,将目标ROWID按源SLOT的顺序存储在存储块内/根据通过源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
综上所述,本发明一种ROWID映射表的存储/查询方法通过根据源端数据库的记录的源ROWID建立层次性的ROWID映射表存储结构,并于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录,然后根据源ROWID的相对文件编号FNO定位到相应的FNO文件,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块,最后将目标ROWID按源SLOT的顺序存储在存储块内/根据通过源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID,使得本发明的ROWID映射表能够支持大量的ROWID映射条目以及支持快速查询,并且可尽量减少文件空洞。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (10)

1.本发明一种ROWID映射表的存储/查询方法,包括如下步骤:
步骤S1,根据ROWID结构建立层次性的ROWID映射表存储结构,以存储源端与目标端的ROWID映射表,所述层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块;
步骤S2,于进行ROWID映射表的存储/查询时,根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;
步骤S3,在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件;
步骤S4,获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块;
步骤S5,将目标ROWID根据源SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
2.如权利要求1所述的本发明一种ROWID映射表的存储/查询方法,其特征在于,所述ROWID映射表的存储结构的建立如下:
根据ROWID为每个数据对象编号OBJD创建一个目录;
在每个数据对象编号OBJD目录下为使用到的相对文件编号FNO创建一个文件;
将所述FNO文件以块为单位存储,以用于存储相应块编号BLKNO对应的源端与备端rowid映射数据。
3.如权利要求2所述的本发明一种ROWID映射表的存储/查询方法,其特征在于:所述FNO文件中存储的文件内部格式分为文件索引区和数据区,所述文件索引区用于标记块编号BLKNO的使用情况,以及定位块编号BLKNO对应的存储位置,所述数据区用于存放具体的映射块数据。
4.如权利要求3所述的本发明一种ROWID映射表的存储/查询方法,其特征在于:所述文件索引区共16384个单元,每单元2字节,0表示未使用,其它数字表示这一组实际使用的存储空间组号;所述数据区以组为单位,共16384组,每组256块。
5.如权利要求4所述的本发明一种ROWID映射表的存储/查询方法,其特征在于,步骤S4进一步包括:
步骤S400,获取该FNO文件的文件索引区;
步骤S401,以源BLKNO除以256取整为组号,定位索引数据,以获取用于存储ROWID映射表的存储组号;
步骤S402,根据存储组号计算存储组在文件内的偏移;
步骤S403,根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。
6.如权利要求5所述的本发明一种ROWID映射表的存储/查询方法,其特征在于:于步骤S401中,以源BLKNO除以256为组号,定位索引数据,若索引数据不为0,则直接获得相应的存储组号,若索引数值为0,则说明该BLKNO所在的组尚未分配存储空间,遍历索引区所有索引数据,以找到一个未使用的存储组号。
7.如权利要求6所述的本发明一种ROWID映射表的存储/查询方法,其特征在于:若索引数值为0,遍历索引区所有索引数据,查询之前记录的最大索引数据X,在最大索引数据X基础上加1作为存储组号,并更新该存储组号到索引数据,以将FNO文件写入磁盘。
8.如权利要求6所述的本发明一种ROWID映射表的存储/查询方法,其特征在于:所述存储组在文件内的偏移为32768+(存储组号–1)*块大小*256。
9.一种ROWID映射表的存储/查询装置,包括:
ROWID映射表存储结构建立单元,用于根据ROWID结构建立层次性的ROWID映射表存储结构,以用于存储源端与目标端的ROWID映射表,所述层次性的ROWID映射表存储结构包括目录,目录下的文件以及文件下的存储块;
目录定位单元,用于根据源ROWID的数据对象编号OBJD于ROWID映射表存储结构定位到相应的目录;
FNO文件定位单元,用于在该目录下,根据源ROWID的相对文件编号FNO定位到相应的FNO文件;
存储块定位单元,用于获取该FNO文件的文件索引区与数据区,根据源ROWID的块编号BLKNO定位到该块编号BLKNO对应的实际存储块;
存储/查询单元,用于将目标ROWID根据源ROWID的行编号SLOT的顺序存储在存储块内/根据源ROWID的行编号SLOT号于存储块中查询相应的目标ROWID。
10.如权利要求9所述的一种ROWID映射表的存储/查询装置,其特征在于,所述存储块定位单元进一步包括:
文件索引区获取单元,用于获取该FNO文件的文件索引区;
存储组号获取单元,用于以源BLKNO除以256取整为组号,定位索引数据,以获取用于存储ROWID映射表的存储组号;
偏移计算单元,用于根据存储组号计算存储组在文件内的偏移;
块定位单元,用于根据存储组偏移加组内偏移定位到该块编号BLKNO对应的实际存储块。
CN201910506515.1A 2019-06-12 2019-06-12 一种rowid映射表的存储和查询方法及装置 Active CN110263057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910506515.1A CN110263057B (zh) 2019-06-12 2019-06-12 一种rowid映射表的存储和查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910506515.1A CN110263057B (zh) 2019-06-12 2019-06-12 一种rowid映射表的存储和查询方法及装置

Publications (2)

Publication Number Publication Date
CN110263057A true CN110263057A (zh) 2019-09-20
CN110263057B CN110263057B (zh) 2020-04-17

Family

ID=67917810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910506515.1A Active CN110263057B (zh) 2019-06-12 2019-06-12 一种rowid映射表的存储和查询方法及装置

Country Status (1)

Country Link
CN (1) CN110263057B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414362A (zh) * 2020-02-28 2020-07-14 平安科技(深圳)有限公司 数据读取方法、装置、设备及存储介质
CN113190281A (zh) * 2021-04-08 2021-07-30 武汉达梦数据库股份有限公司 一种基于rowid区间的初始化装载方法与装置
CN114416651A (zh) * 2022-03-30 2022-04-29 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据查找方法及装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187888A (zh) * 2007-12-11 2008-05-28 浪潮电子信息产业股份有限公司 一种异构环境中复制数据库数据的方法
CN102073633A (zh) * 2009-11-23 2011-05-25 腾讯科技(深圳)有限公司 资源文件的存储访问方法及装置
US20120089566A1 (en) * 2010-10-11 2012-04-12 Sap Ag Method for reorganizing or moving a database table
CN103020281A (zh) * 2012-12-27 2013-04-03 中国科学院计算机网络信息中心 一种基于空间数据数值索引的数据存储与检索方法
CN103488710A (zh) * 2013-09-10 2014-01-01 广州巨杉软件开发有限公司 大数据页中高效存储非定常数据结构
CN105528367A (zh) * 2014-09-30 2016-04-27 华东师范大学 基于开源大数据对时间敏感数据的存储和近实时查询方法
US20160124663A1 (en) * 2014-10-29 2016-05-05 Commvault Systems, Inc. Accessing a file system using tiered deduplication
CN106326387A (zh) * 2016-08-17 2017-01-11 电子科技大学 一种分布式数据存储架构及数据存储方法和数据查询方法
US20170116241A1 (en) * 2015-10-21 2017-04-27 Oracle International Corporation Non-blocking database table alteration
CN107678888A (zh) * 2017-09-30 2018-02-09 北京九桥同步软件有限公司 数据库数据备份方法及装置
US20180285201A1 (en) * 2017-03-28 2018-10-04 Commvault Systems, Inc. Backup operations for large databases using live synchronization
CN108664523A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN109165262A (zh) * 2018-10-16 2019-01-08 成都索贝数码科技股份有限公司 一种关系型大表的分片集群系统及其分片方法
CN109684327A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种数据库外部链接的数据获取方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187888A (zh) * 2007-12-11 2008-05-28 浪潮电子信息产业股份有限公司 一种异构环境中复制数据库数据的方法
CN102073633A (zh) * 2009-11-23 2011-05-25 腾讯科技(深圳)有限公司 资源文件的存储访问方法及装置
US20120089566A1 (en) * 2010-10-11 2012-04-12 Sap Ag Method for reorganizing or moving a database table
CN103020281A (zh) * 2012-12-27 2013-04-03 中国科学院计算机网络信息中心 一种基于空间数据数值索引的数据存储与检索方法
CN103488710A (zh) * 2013-09-10 2014-01-01 广州巨杉软件开发有限公司 大数据页中高效存储非定常数据结构
CN105528367A (zh) * 2014-09-30 2016-04-27 华东师范大学 基于开源大数据对时间敏感数据的存储和近实时查询方法
US20160124663A1 (en) * 2014-10-29 2016-05-05 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US20170116241A1 (en) * 2015-10-21 2017-04-27 Oracle International Corporation Non-blocking database table alteration
CN106326387A (zh) * 2016-08-17 2017-01-11 电子科技大学 一种分布式数据存储架构及数据存储方法和数据查询方法
US20180285201A1 (en) * 2017-03-28 2018-10-04 Commvault Systems, Inc. Backup operations for large databases using live synchronization
CN108664523A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN107678888A (zh) * 2017-09-30 2018-02-09 北京九桥同步软件有限公司 数据库数据备份方法及装置
CN109165262A (zh) * 2018-10-16 2019-01-08 成都索贝数码科技股份有限公司 一种关系型大表的分片集群系统及其分片方法
CN109684327A (zh) * 2018-11-23 2019-04-26 武汉达梦数据库有限公司 一种数据库外部链接的数据获取方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414362A (zh) * 2020-02-28 2020-07-14 平安科技(深圳)有限公司 数据读取方法、装置、设备及存储介质
CN111414362B (zh) * 2020-02-28 2023-11-10 平安科技(深圳)有限公司 数据读取方法、装置、设备及存储介质
CN113190281A (zh) * 2021-04-08 2021-07-30 武汉达梦数据库股份有限公司 一种基于rowid区间的初始化装载方法与装置
CN113190281B (zh) * 2021-04-08 2022-05-17 武汉达梦数据库股份有限公司 一种基于rowid区间的初始化装载方法与装置
CN114416651A (zh) * 2022-03-30 2022-04-29 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据查找方法及装置

Also Published As

Publication number Publication date
CN110263057B (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN110263057A (zh) 一种rowid映射表的存储/查询方法及装置
US8694549B2 (en) Dynamic management of multiple persistent data stores
CN103229173B (zh) 元数据管理方法及系统
CN102567495B (zh) 一种海量信息存储系统及实现方法
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN105993013B (zh) 一种数据处理方法装置及系统
US5295261A (en) Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
CN104657459A (zh) 一种基于文件粒度的海量数据存储方法
US8296394B1 (en) Method and system for caching real-time data
US7480662B2 (en) Fact table storage in a decision support system environment
CN101989301B (zh) 一种支持多数据源的索引维护方法
CN105912678A (zh) 一种数据存储方法、数据读取方法及其对应的系统
CN102375853A (zh) 分布式数据库系统、在其中建立索引的方法和查询方法
CN102779138B (zh) 实时数据的硬盘存取方法
CN101093482A (zh) 一种大量信息存储和检索的方法
CN103377210A (zh) 建立增量型导航数据库的方法和对数据库进行更新的方法
CN105677915A (zh) 一种基于引擎的分布式业务数据存取方法
CN102279951A (zh) 报表信息处理方法及系统
CN108932316A (zh) 一种包含冷热数据分离和分布式数据字的中间服务方案
CN104021210A (zh) 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法
Rotem et al. Extendible arrays for statistical databases and OLAP applications
CN111680019A (zh) 一种区块链的数据扩容方法及其装置
CN107704475A (zh) 多层分布式非结构化数据存储方法、查询方法及装置
CN103793401B (zh) 建立多个数据库表的共享索引的方法及装置
CN110008289A (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