一种手工恢复asm文件的方法

摘要
本发明提供一种手工恢复ASM文件的方法,涉及计算机系统设计领域和数据库领域,通过获取ASM磁盘信息来重构已损坏或者丢失的ASM磁盘头,然后再通过PST信息来获取相关磁盘的信息,最后通过alias来获取ASM磁盘中的数据文件,从而获得最终的数据文件。通过手工抽取损坏的ASM磁盘文件来达到没有备份的情况下的数据恢复。
权利要求(5)
1.一种手工恢复ASM文件的方法,其特征在于该方法包括ASM DISK HEADER (1)、PST(2)、FILE DIRECTORY (3)、DISK DIRECTORY (4)、ALIAS DIRECTORY (5);通过读取 PST 数据,然后根据 kfdhdb.dskname、kfdhdb.grpname、kfdhdb.fgname、kfdhdb.dsksize 等数据构建ASM头信息,利用读取ASM元数据来获取存在于ASM磁盘中的数据文件名称,然后通过使用ASMDU来抽取相应磁盘中的文件。
2.根据权利要求1所述的方法,其特征在于所述ASM DISK HEADER,主要是该asmdisk的专有信息,例如asm disk name, group name, ausize,仓ij建和挂载的时间,可以通过oracle提供的kfed tool读取asm disk header的信息,记录在第一个AU的第一个block。
3.根据权利要求1所述的方法,其特征在于所述APST用来跟踪diskgroup的成员关系,每个disk的第二个au用于保存pst内容,pst的最后一个block用于磁盘组的heartbeat,防止被不同的集群同时挂载相同的磁盘组。
4.根据权利要求1所述的方法,其特征在于所述ADISK DIRECTORY用于记录磁盘组的asm磁盘信息,包括磁盘的大小,磁盘创建创建时间,挂载时间等信息。
5.根据权利要求1所述的方法,其特征在于所述AALIAS DIRECTORY用于记录asm另Ij名信息,包括文件所在的磁盘,文件的名称与别名,文件的目录名等信息。
说明

—种手工恢复ASM文件的方法

技术领域

[0001] 本发明涉及计算机系统设计领域和数据库领域,具体涉及一种手工恢复ASM文件的方法。

技术背景

[0002] ASM全称为 Automated Storage Management,即自动存储管理,它是自 OraclelOg这个版本Oracle推出的新功能。这是Oracle提供的一个卷管理器,用于替代操作操作系统所提供的LVM,它不仅支持单实例配置,也支持RAC这样的多实例配置。将给Oracle数据库管理员带来极大的方便,ASM可以自动管理磁盘组,并提供数据冗余和优化。特别是对于企业极的大型数据库管理员来说,可以使管理员可以从管理成百上千个数据文件这些琐碎的日常事务中解脱开来,以便处理其它更为重要的事务上去。

[0003] 在Oracle 10g这个版本之前,管理一个大型数据库成百上千个的数据文件对数据库管理员来说是一个既无技术含量又十分枯燥的工作,这要求数据库管理员要熟悉一些系统的LVM的相关知识,做好磁盘规化,LV的条带等相关的系统方面的相关操作。而使用自动存储管理将大大减轻这方面的工作量,数据库管理员只需要管理少数几个磁盘组即可。一个磁盘组是ASM管理的一个逻辑单元,由一组磁盘设备组成。我们可以定义一个磁盘组作为数据库的默认磁盘组,Oracle会自动管理存储,包括创建、删除数据文件等。Oracle会自动将这些文件与一个合适的数据库对象做关联,这样我们在管理这些对象时只需要提供对象的名称,而无需像以前那样提供详细的文件名。

[0004] ASM提供了很多有用的存储技术,如RAID和LVM (逻辑卷管理)等。像这些技术一样,ASM允许你在一组独立的磁盘上创建一个单独的磁盘组。这样就实现了单个磁盘组的1/0均衡。同时ASM还实现了条带化(Striping)和磁盘镜像(Mirroring)以提高1/0的性能和数据可靠性。与RAID或LVM不同的是,ASM是在文件级实现的条带化和镜像,这样的实现方式给用户带了很大选择自由度,我们可以在同一个磁盘组中对不同的文件配置不同的存储属性,实现不同的存储方式。

[0005] 由于ASM头中包含了 ASM的重要信息,如果头数据由于人为破坏或者硬件问题导致数据丢失那么会导致oracle数据库无法启动,进而有可能导致ASM磁盘中的数据丢失。

发明内容

[0006] 本发明主要是利用读取ASM元数据来获取存在于ASM磁盘中的数据文件名称,然后通过使用ASMDU来抽取相应磁盘中的文件,从而当ASM磁盘无法mount的时候作为一种数据恢复的手段。本发明的设计方法是通过读取ASM DISK HEADER中的相关信息包括 kfdhdb.driver, provstr、kfdhdb.dskname、kfdhdb.blksize、kfdhdb.ausize、kfdhdb.fstlocn、kfdhdb.f lbllocn等,通过读取这些字段的数据来获取相应的磁盘、磁盘组、AU等信息,来获得对应环境的基本信息。然后获取ALIAS DIRECTORY的关键元数据kfffde[0].xptr.au,通过这个数据来获取数据文件别名的具体信息,从而得到相应的数据库实例名字,然后再获得相应的system、confile、redo等文件的名称,然后使用AMDU来抽取相应的文件。从而当ASM实例down之后也可以从ASM的磁盘中获取数据文件从而达到数据恢复的目的。

[0007] 本发明的有益效果是:本方法通过读取PST数据,然后根据kfdhdb.dskname、kfdhdb.grpname>kfdhdb.fgname>kfdhdb.dsksize 等数据构建 ASM 头信息,然后根据 ALIASDIRECTORY的关键元数据kfffde[0].xptr.au来获取数据文件别名的具体信息,从而可以将ASM磁盘中的数据抽取出来;减少了因为没有数据备份而导致的数据丢失的情况。

[0008] 这种手工恢复ASM文件的方法具有上述优点,在无数据备份的情况下可以减少数据丢失,保护了企业的数据。

附图说明

[0009] 附图1本发明的逻辑结构图。

[0010] 实施方式

下面参照附图,对本发明的内容以手工恢复ASM文件为例,描述这一结构的实现过程。

[0011] 正如发明内容中所描述的,本发明的逻辑实现结构设计方法主要包括:ASM DISKHEADER (1)、PST (2),FILE DIRECTORY (3),DISK DIRECTORY (4),ALIAS DIRECTORY (5),通过读取 PST 数据,然后根据 kfdhdb.dskname、kfdhdb.grpname、kfdhdb.fgname> kfdhdb.dsksize等数据构建ASM头信息,利用读取ASM元数据来获取存在于ASM磁盘中的数据文件名称,然后通过使用ASMDU来抽取相应磁盘中的文件,从而当ASM磁盘无法mount的时候作为一种数据恢复的手段。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *