CN107622123A - 一种面向asm文件系统的文件解析方法 - Google Patents

一种面向asm文件系统的文件解析方法 Download PDF

Info

Publication number
CN107622123A
CN107622123A CN201710897077.7A CN201710897077A CN107622123A CN 107622123 A CN107622123 A CN 107622123A CN 201710897077 A CN201710897077 A CN 201710897077A CN 107622123 A CN107622123 A CN 107622123A
Authority
CN
China
Prior art keywords
asm
file
units
unit
disk
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
CN201710897077.7A
Other languages
English (en)
Other versions
CN107622123B (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.)
Focus Technology Co Ltd
Original Assignee
Focus Technology Co 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 Focus Technology Co Ltd filed Critical Focus Technology Co Ltd
Priority to CN201710897077.7A priority Critical patent/CN107622123B/zh
Publication of CN107622123A publication Critical patent/CN107622123A/zh
Application granted granted Critical
Publication of CN107622123B publication Critical patent/CN107622123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种面向ASM文件系统的文件解析方法,通过从ASM实例中获取ASM元数据,进而生成ASM元数据的MAP结构,并运用ASM的条带化规则,将文件偏移量映射到元数据MAP的key,即磁盘组ID、文件ID、AU序列号组成的三元组;再通过key获取value,定位数据在ASM磁盘的具体存储位置;然后按照条带化规则,保证每次读取内容保持在一个AU单元的一个条带内,本发明通过利用Key‑Value结构,建立ASM文件单元与磁盘内存储位置的关联关系,实现直接从ASM文件中读取数据的目的,避免额外的IO操作,提高读取效率。

Description

一种面向ASM文件系统的文件解析方法
技术领域
本发明属于数据库技术领域,具体涉及一种面向ASM文件系统的文件解析方法。
背景技术
随着业务的发展,以及对数据库数据实时捕获的强烈要求,很多企业并不满足于数据库本身提供的方案,如通过建触发器捕获变更数据,而是希望通过解析数据库日志的方式实时捕获变更数据,从而最大程度的降低数据库资源消耗。目前很多公司依然使用oracle数据库,作为商业数据库,其redo日志一般是存放在自己的ASM文件系统中,如果不能解决从ASM中读取文件的问题也就意味着无法继续解析redo日志。
ASM全称为Automated Storage Management,俗称自动存储管理系统,是自Oracle10g这个版本后,Oracle推出的新功能。ASM通过ASM CMD工具来管理,它能绕开底层操作系统的存储管理,不受操作系统层参数的影响直接处理磁盘上的数据,效率要比操作系统层高。然而,ASM并非通用的文件系统,操作系统无法访问ASM中存储的文件,只能用于Oracle数据文件、重做日志以及控制文件。
目前访问ASM读取文件的方法有两种,一种是通过调存储过程,由存储过程查询数据库,进而通过数据库获取ASM中的数据,之后把获取的数据回写到操作系统层的可读文件上;另一种是通过RMAN(也称为:恢复管理器),由RMAN从ASM中拷贝整个文件到操作系统后,再从操作系统读取文件。前者调用存储过程的方法的缺陷在于一方面强依赖于数据库,导致额外消耗数据库资源,且频繁调用可能会产生多项未知问题;而且性能差、使用复杂,且需要有额外IO操作参与;后者RMAN方法效率不高,且不支持增量读取数据。
因而,如何跨越存储过程和RMAN的管理,快速且高效地直接从ASM中读取数据是兹待解决的技术问题。
发明内容
为解决现有技术存在的问题,本发明的目的是,提出一种面向ASM文件系统的文件解析方法,最大程度地减少对数据库性能的影响,实现独立于数据库、高效地增量读取ASM文件内容。
本发明通过从ASM实例中获取ASM元数据,进而生成ASM元数据的MAP结构,并运用ASM的条带化规则,将文件偏移量映射到元数据MAP的key即磁盘组ID、文件ID、AU序列号组成的三元组,通过key获取value,定位指定数据在ASM磁盘的具体位置,然后按照条带化规则每次最多读取内容不能超过一个条带,最少读取内容不能小于一个块。
本发明技术方案如下:一种面向ASM文件系统的文件解析方法,其特征在于,通过从ASM实例中获取ASM元数据,进而生成ASM元数据的MAP结构,并运用ASM的条带化规则,将文件偏移量映射到元数据MAP的key,即磁盘组ID、文件ID、AU序列号组成的三元组;再通过key获取value,定位数据在ASM磁盘的具体存储位置;然后按照条带化规则,保证每次读取内容保持在一个AU单元的一个条带内,具体步骤包括:
步骤1:逻辑上将ASM文件均分为各个小单元,每一个小单元有自己的序号,即AU序号,大小为1M;相应地,存储ASM文件的磁盘空间也划分为多个用于数据存储的分配单元,称为AU单元;所述每一个AU单元有唯一身份识别ID号,即AUID,数据存储大小为1M;一个ASM文件的具体数据将分布在多个AU单元内;
多个磁盘组合成磁盘组,每一个磁盘组有唯一的ID号,即磁盘组ID;每一个磁盘有唯一的ID号,即磁盘ID;
针对细粒度文件类型,AU单元内将具体的数据分割成大小相同的数据块,形成多个均等大小的条带;
步骤2:将所有ASM文件的具体数据存储在磁盘组内的各个磁盘中,并记录各个AU单元的存储位置:磁盘组ID、磁盘ID、AUID;读取时以等数量的AU单元为一个读取组,待读取完一组后再继续读取下一组;其中,所述读取组是由多个AU单元组成,在读取一个读取组时,按照AU单元序号顺序读取;
读取组内的AU单元数目根据ASM文件每次计划读取的数据量提前设定,即读取组内的AU单元数=读取量/ASM文件单元的大小;
步骤3:以SQL查询的方式从ASM实例中获取ASM文件元数据,包括文件ID、磁盘组ID、磁盘ID、AU单元序号、AUID;并基于ASM文件元数据构建元数据的MAP结构(key-value结构),其中,key={磁盘组ID,文件ID,AU顺序号},value={磁盘ID,AUID};
步骤4:当有读取ASM文件的需要时,通过定位预读取文件的初始读取位置和预读取位置,获得文件逻辑偏移量;接着,利用文件逻辑偏移量计算获得文件内的位置标识,包括AU序号和AU单元内偏移量;其中,所述AU单元内偏移量,是指一个AU单元内的初始位置和读取位置的偏移距离;
步骤4所述的位置标识计算方式为:文件逻辑偏移量除以“1024K”,取整数作为AU序号;AU单元内偏移量=(文件逻辑偏移量-AU序号值*1024K)%条带空间大小;
步骤5:如果是粗粒度文件,利用已构建的MAP结构,根据key值:ASM文件ID、磁盘组ID和AU序号,获得Value值:磁盘ID和AUID;进而通过磁盘ID定位到具体磁盘,通过AUID定位到该磁盘中的数据读取位置;
针对细粒度文件,ASM文件的数据存储以条带为单位进行存储,一个ASM文件单元的具体数据分布在多个连续的AU单元的条带中;针对粗粒度文件,ASM文件的数据以AU单元为单位进行存储,一个ASM文件单元的具体数据占用一个AU单元;
步骤6:针对不同的文件类型,从数据读取位置执行不同的读取操作:如果是粗粒度文件,按照AU序号,顺序读取每一个AU单元对应的具体磁盘数据;如果是细粒度文件,以读取组为单位,按照读取组内的AU排序,先依次读取每个AU单元的第一个条带对应的磁盘数据,然后再依次读取每个AU单元的第二个条带对应的磁盘数据,按照上述规则直到读取完当前读取组内的所有AU单元的条带,然后转到下一个读取组进行读取。
本发明有益效果:与现有技术相比,(1)本发明通过利用Key-Value结构,建立ASM文件单元与磁盘内存储位置的关联关系,保证能根据ASM文件元数据映射到文件数据在磁盘中的分布位置,实现直接从ASM文件中读取数据的目的,减少对数据库的依赖和不利影响,避免额外的IO操作,提高读取效率;(2)本发明通过将AU单元内的存储数据分割成相同大小的数据块,实现利用指定文件偏移量进而确定磁盘中具体的读取位置,实现ASM文件的增量读取,提高ASM文件读取效率。
附图说明
图1为本发明实施例中直接读取ASM文件的系统结构示意图;
图2为本发明实施例中ASM文件在磁盘组的存储分布示意图;
图3为本发明实施例中基于条带规则的ASM文件的磁盘存储结构图;
图4为本发明实施例中基于条带化规则的细粒度文件读取示意图;
图5为本发明实施例中面向ASM文件系统的文件解析方法流程图;
图6为本发明实施例中基于文件偏移量定位磁盘位置的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明实施例中直接读取ASM文件的系统结构示意图,该系统架构具体包含三个主体,即元数据管理模块、条带化规则控制模块、数据读取模块;所述元数据管理模块负责获取ASM元数据,提供条带化规则控制模块访问;所述条带化规则控制模块依据条带化规则控制整个文件的读取逻辑,维护读取位置;所述数据读取模块通过获取文件读取的偏移量和读取长度参数,控制模块返回具体的ASM位置给数据读取模块,读取模块从指定位置在条带规则的控制下读取数据。
图2为本发明实施例中ASM文件在磁盘组的存储分布示意图,磁盘组1中包含三个磁盘,即磁盘Disk1、磁盘Disk2和磁盘Disk3,某一个ASM文件内各个单元的具体数据分布在磁盘组1内的三个磁盘中,比如序号为auseq1的ASM文件单元的存储位置为:磁盘组1-Disk1-AU4;序号为auseq2的ASM文件单元的存储位置为:磁盘组1-Disk2-AU4;
不同于粗粒度的ASM文件在磁盘中以AU单元为单位依次存储,细粒度的ASM文件存储以条带为单位,比如在线日志文件,按照各个AU单元在磁盘组中的排序依次存储,参阅图3为本发明实施例中基于条带规则的ASM文件的磁盘存储结构图,假设以6个au单元为一个读取组(au1~au6),ASM文件连续的一段数据分布在au1~au6的第一个条带中;因而,顺序读取ASM文件这段数据时,按照au1~au6的排列顺序,依次读取第一个条带。
图4为本发明实施例中基于条带化规则的细粒度文件读取示意图,本发明实施例中以8个AU单元作为一个读取组,即图中的au0~au7;其中,au0、au3和au6在磁盘disk1中,au1、au4和au7在磁盘disk2中,au2和au5在磁盘disk3中;在读取文件时,先依次读取au0~au7的第一个条带,接着读取au0~au7的第二个条带,每一个条带的读取顺序如图4中的数字标注,直至读取完au0~au7的第八个条带,表明一组数据读取完毕,即可转至下一个读取组(au9~au16)
在本发明实施例中,设定8个au单元为读取组,每个AU单元被划为8个条带,现预读取偏移量为9217024B的ASM文件数据,具体读取步骤参阅图5为本发明实施例中面向ASM文件系统的文件解析方法流程图,包括:
步骤501:逻辑上将ASM文件均分为各个小单元,各个文件单元的大小为1M,为每个文件单元配置序号,比如auseq1、auseq2、auseq3等;相应地,磁盘空间也划分为多个分配单元,即au单元,每一个au单元有唯一的识别ID,比如au1、au2、au3等,大小均为1M;
步骤502:将ASM文件的具体数据存储在磁盘组内的各个磁盘中,记录存储位置;并利用存储位置信息,包括文件ID、磁盘组ID、磁盘ID、AU单元序号、AUID,建立MAP结构:key={磁盘组ID,文件ID,AU顺序号},value={磁盘ID,AUID},
步骤503:获取读取位置的的逻辑文件偏移量,如图6为本发明实施例中基于文件偏移量定位磁盘位置的示意图,具体包括:
(1)定位读取位置分布的au单元组,具体有:
计算获得AU顺序号和AU内部偏移量,计算依据如下:
ASM文件单元=1M=1048576B;
一个读取组的大小=1M*8=8M;
一个条带的大小=1024k/8=128k;
因为9217024B/1048576=8.79M>8M,说明ASM文件已读取到序号为9的ASM文件单元,相应地,说明磁盘中的au1~au8的数据已经读完,剩余的0.79M是分布在au9~au16中;
(2)定位单元组内的au单元,具体有:
根据文件ID、文件所在磁盘组的ID及文件单元序号,定位到读取的磁盘:并根据剩余的828416B(9217024B-8*1024*1024),计算在磁盘中的位置,计算依据如下:
按照基于条带规则的数据读取,由于一个条带的大小=1024k/8=128k=131072B,且828416B/131072B=6.32,说明读取位置位于au单元组内的第7个,即au14;
(3)根据au单元内部偏移量,最终确定读取位置,具体有:
根据828416B-6*131072B=41984B,获得au14内的偏移量为41984B;因而从磁盘中au17内偏移41984B的位置开始读取数据;
步骤504:从au14内偏移41984B处读取89088=128K*1024-41984B后,转到au15内读取131072B=128k*1024;再转到au16内读取131072B;至此,一个读取组读完;
步骤505:转到当前读取组内的第一个au单元,即au9,按照au排序,读取各个au单元内的第二个条带数据,即读取131072B=128k*1024;
步骤506:按照步骤405的读取规则,直至读取完第二个读取组内的au单元的条带;
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种面向ASM文件系统的文件解析方法,其特征在于,通过从ASM实例中获取ASM元数据,进而生成ASM元数据的MAP结构,并运用ASM的条带化规则,将文件偏移量映射到元数据MAP的key,即磁盘组ID、文件ID、AU序列号组成的三元组;再通过key获取value,定位数据在ASM磁盘的具体存储位置;然后按照条带化规则,保证每次读取内容保持在一个AU单元的一个条带内,具体步骤包括:
步骤1:逻辑上将ASM文件均分为各个小单元,每一个小单元有自己的序号,即AU序号,大小为1M;相应地,存储ASM文件的磁盘空间也划分为多个用于数据存储的分配单元,称为AU单元;所述每一个AU单元有唯一身份识别ID号,即AUID,数据存储大小为1M;一个ASM文件的具体数据将分布在多个AU单元内;
多个磁盘组合成磁盘组,每一个磁盘组有唯一的ID号,即磁盘组ID;每一个磁盘有唯一的ID号,即磁盘ID;
针对细粒度文件类型,AU单元内将具体的数据分割成大小相同的数据块,形成多个均等大小的条带;
步骤2:将所有ASM文件的具体数据存储在磁盘组内的各个磁盘中,并记录各个AU单元的存储位置:磁盘组ID、磁盘ID、AUID;读取时以等数量的AU单元为一个读取组,待读取完一组后再继续读取下一组;其中,所述读取组是由多个AU单元组成,在读取一个读取组时,按照AU单元序号顺序读取;
读取组内的AU单元数目根据ASM文件每次计划读取的数据量提前设定,即读取组内的AU单元数=读取量/ASM文件单元的大小;
步骤3:以SQL查询的方式从ASM实例中获取ASM文件元数据,包括文件ID、磁盘组ID、磁盘ID、AU单元序号、AUID;并基于ASM文件元数据构建元数据的MAP结构(key-value结构),其中,key={磁盘组ID,文件ID,AU顺序号},value={磁盘ID,AUID};
步骤4:当有读取ASM文件的需要时,通过定位预读取文件的初始读取位置和预读取位置,获得文件逻辑偏移量;接着,利用文件逻辑偏移量计算获得文件内的位置标识,包括AU序号和AU单元内偏移量;其中,所述AU单元内偏移量,是指一个AU单元内的初始位置和读取位置的偏移距离;
步骤4所述的位置标识计算方式为:文件逻辑偏移量除以“1024K”,取整数作为AU序号;AU单元内偏移量=(文件逻辑偏移量-AU序号值*1024K)%条带空间大小;
步骤5:如果是粗粒度文件,利用已构建的MAP结构,根据key值:ASM文件ID、磁盘组ID和AU序号,获得Value值:磁盘ID和AUID;进而通过磁盘ID定位到具体磁盘,通过AUID定位到该磁盘中的数据读取位置;
针对细粒度文件,ASM文件的数据存储以条带为单位进行存储,一个ASM文件单元的具体数据分布在多个连续的AU单元的条带中;针对粗粒度文件,ASM文件的数据以AU单元为单位进行存储,一个ASM文件单元的具体数据占用一个AU单元;
步骤6:针对不同的文件类型,从数据读取位置执行不同的读取操作:如果是粗粒度文件,按照AU序号,顺序读取每一个AU单元对应的具体磁盘数据;如果是细粒度文件,以读取组为单位,按照读取组内的AU排序,先依次读取每个AU单元的第一个条带对应的磁盘数据,然后再依次读取每个AU单元的第二个条带对应的磁盘数据,按照上述规则直到读取完当前读取组内的所有AU单元的条带,然后转到下一个读取组进行读取。
2.根据权利要求1所述的一种面向ASM文件系统的文件解析方法,其特征在于,在所述步骤1中,如果是针对细粒度文件类型,AU单元内将具体的数据分割成大小相同的数据块,形成多个均等大小的条带。
3.根据权利要求1所述的一种面向ASM文件系统的文件解析方法,其特征在于,在所述步骤2中,如果是针对细粒度文件的存储,ASM文件的数据存储以条带为单位进行存储,一个ASM文件单元的具体数据分布在多个连续的AU单元的条带中;如果是针对粗粒度文件,ASM文件的数据以AU单元为单位进行存储,一个ASM文件单元的具体数据占用一个AU单元。
4.根据权利要求1所述的一种面向ASM文件系统的文件解析方法,其特征在于,步骤4中所述的位置标识计算方式为:文件逻辑偏移量除以“1024K”,取整数作为AU序号;AU单元内偏移量=(文件逻辑偏移量-AU序号值*1024K)%条带空间大小。
5.根据权利要求1所述的一种面向ASM文件系统的文件解析方法,其特征在于,在所述步骤5中,若针对细粒度文件,位置的确定不能仅依靠MAP结构,具体的位置定位步骤包括:
(1)根据AU序号,判断预读取位置分布的au单元组;
(2)根据ASM文件ID、文件所在磁盘组的ID及文件单元序号,定位到要读取的磁盘,并根据“(文件逻辑偏移量-AU序号值*1024K)/条带空间大小+1”,定位单元组内的au单元;
(3)根据au单元内部偏移量,在已确定的au单元内偏移到读取位置。
CN201710897077.7A 2017-09-28 2017-09-28 一种面向asm文件系统的文件解析方法 Active CN107622123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710897077.7A CN107622123B (zh) 2017-09-28 2017-09-28 一种面向asm文件系统的文件解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710897077.7A CN107622123B (zh) 2017-09-28 2017-09-28 一种面向asm文件系统的文件解析方法

Publications (2)

Publication Number Publication Date
CN107622123A true CN107622123A (zh) 2018-01-23
CN107622123B CN107622123B (zh) 2020-07-03

Family

ID=61091014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710897077.7A Active CN107622123B (zh) 2017-09-28 2017-09-28 一种面向asm文件系统的文件解析方法

Country Status (1)

Country Link
CN (1) CN107622123B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515899A (zh) * 2019-07-31 2019-11-29 济南浪潮数据技术有限公司 文件定位方法及装置
CN111803917A (zh) * 2020-06-30 2020-10-23 北京金山云网络技术有限公司 资源的处理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021869A1 (en) * 2003-06-27 2005-01-27 Aultman Joseph L. Business enterprise backup and recovery system and method
CN105677876A (zh) * 2016-01-12 2016-06-15 国家电网公司 一种基于物理级的数据库日志挖掘方法
CN107134287A (zh) * 2016-02-26 2017-09-05 四川效率源信息安全技术股份有限公司 基于cdfs文件系统的文件提取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021869A1 (en) * 2003-06-27 2005-01-27 Aultman Joseph L. Business enterprise backup and recovery system and method
CN105677876A (zh) * 2016-01-12 2016-06-15 国家电网公司 一种基于物理级的数据库日志挖掘方法
CN107134287A (zh) * 2016-02-26 2017-09-05 四川效率源信息安全技术股份有限公司 基于cdfs文件系统的文件提取方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110515899A (zh) * 2019-07-31 2019-11-29 济南浪潮数据技术有限公司 文件定位方法及装置
CN111803917A (zh) * 2020-06-30 2020-10-23 北京金山云网络技术有限公司 资源的处理方法和装置

Also Published As

Publication number Publication date
CN107622123B (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN100468402C (zh) 一种数据存储及查询方法
CN101777017B (zh) 一种连续数据保护系统的快速恢复方法
CN104317800A (zh) 一种海量智能用电数据混合存储系统及方法
CN103559323B (zh) 数据库实现方法
CN101405728B (zh) 具有动态加载能力的关系数据库架构
CN106874320A (zh) 分布式流式数据处理的方法和装置
CN108595664B (zh) 一种hadoop环境下的农业数据监控方法
CN102521411A (zh) 公式及公式数据处理装置和公式及公式数据处理方法
CN106503276A (zh) 一种用于实时监控系统的时间序列数据库的方法与装置
CN103995899A (zh) 一种kpi的分析系统
CN102779138B (zh) 实时数据的硬盘存取方法
CN103927251A (zh) 一种嵌入式系统的日志管理方法
CN104239377A (zh) 跨平台的数据检索方法及装置
CN1975772B (zh) 整合多个系统中的信息的方法和装置
CN106354827A (zh) 一种媒资数据整合方法及系统
US20210232561A1 (en) Data processing method and apparatus, and computer-readable storage medium
CN106383897B (zh) 数据库容量计算方法和装置
CN107943542A (zh) 一种配置信息管理方法、装置、可读介质及存储控制器
CN108829836A (zh) 异构遥感大数据应用平台
CN110888878A (zh) 一种面向业务的主数据管理方法及系统
CN107622123A (zh) 一种面向asm文件系统的文件解析方法
CN104461388A (zh) 一种存储阵列配置保存及仲裁方法
CN101458655B (zh) 内存管理方法、系统及内存控制装置
CN103345527B (zh) 数据智能统计系统
CN110225375A (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