怎么使用ASM维护工具
这篇文章主要介绍“怎么使用ASM维护工具”,在日常操作中,相信很多人在怎么使用ASM维护工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用ASM维护工具”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
ASM实例中有元文件与数据文件介绍
X$KFFXP是ASM(Automatic Storage Management)自动存储管理特性的重要内部视图,该视图反应了File Extent Map映射关系,ASM会将文件split成多个多个piece分片,这些分片被称为Extents。 在Disk上存放这些Extent的位置,就是我们常说的”Allocation Unit”。
KFF意为Kernel File,X$KFFXP即Kernel File Extent Maps, 该内部视图的一条记录代表一个Extent。
可以通过以下脚本查询文件与Extent等ASM属性的映射关系:
setlinesize140pagesize1400col"FILENAME"formata40setheadonselectNAME"FILENAME",NUMBER_KFFXP"FILENUMBER",XNUM_KFFXP"EXTENTNUMBER",DISK_KFFXP"DISKNUMBER",AU_KFFXP"AUNUMBER",SIZE_KFFXP"NUMBERofAUs"fromx$kffxp,v$asm_aliaswhereGROUP_KFFXP=GROUP_NUMBERandNUMBER_KFFXP=FILE_NUMBERandsystem_created='Y'andlxn_kffxp=0orderbyname;
KFOD 工具
有了这个命令我们可以不通过实例查询视图查询磁盘信息,直接在操作系统层对ASM的相关信息进行查阅磁盘空间大小和剩余量等信息。
KFOD 命令在 ASM实例 $ORACLE_HOME/bin 目录下
(1)查看磁盘组的组成
[grid@host02lib]$kfoddisk=allgroup=diskgroupds=true--------------------------------------------------------------------------------DiskSizePathDiskGroupUserGroup================================================================================1:999Mb/dev/raw/raw1OCRgridasmadmin2:999Mb/dev/raw/raw2OCRgridasmadmin3:999Mb/dev/raw/raw3OCRgridasmadmin4:9993Mb/dev/raw/raw4#gridasmadmin5:9993Mb/dev/raw/raw5#gridasmadmin6:9993Mb/dev/raw/raw6#gridasmadmin
(2)查看分组信息及可用容量
[grid@host02lib]$kfoddiisk=allop=groups--------------------------------------------------------------------------------GroupSizeFreeRedundancyName================================================================================
(3)显示所有磁盘
[grid@host02lib]$kfoddisk=all--------------------------------------------------------------------------------DiskSizePathUserGroup================================================================================1:999Mb/dev/raw/raw1gridasmadmin2:999Mb/dev/raw/raw2gridasmadmin3:999Mb/dev/raw/raw3gridasmadmin4:9993Mb/dev/raw/raw4gridasmadmin5:9993Mb/dev/raw/raw5gridasmadmin6:9993Mb/dev/raw/raw6gridasmadmin--------------------------------------------------------------------------------ORACLE_SIDORACLE_HOME================================================================================+ASM1/u01/app/11.2.0/grid+ASM2/u01/app/11.2.0/grid
KFED 工具
KFED主要用来编辑和修复ASM metadata,可以在DiskGroup没有mount的情况下使用;因此在ASM无法启动、DiskGroup无法mount的时候可以尝试使用这个神器来修复
kfed工具支持对于ASM信息的READ/WRITE/MERGE/NEW/ FORM/FIND/STRUCT等操作,11gR2之前需要手工编译.
一、编译kfed工具
1.编译
[oracle@node1 ~]$ cd $ORACLE_HOME/rdbms/lib
[oracle@node1 lib]$ make -f ins_rdbms.mk ikfed
2.配置环境变量
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/rdbms/lib:$PATH
3.查看帮助
[oracle@node1 ~]$ kfed -help
4查看一块磁盘信息
[oracle@rac01~]$kfedread/dev/asm-disk1aun=0blkn=0【01】kfbh.endian:1;0x000:0x01【02】kfbh.hard:130;0x001:0x82【03】kfbh.type:1;0x002:KFBTYP_DISKHEAD【04】kfbh.datfmt:1;0x003:0x01【05】kfbh.block.blk:0;0x004:blk=0【06】kfbh.block.obj:2147483648;0x008:disk=0【07】kfbh.check:875080645;0x00c:0x3428abc5【08】kfbh.fcn.base:4892;0x010:0x0000131c【09】kfbh.fcn.wrap:0;0x014:0x00000000【10】kfbh.spare1:0;0x018:0x00000000【11】kfbh.spare2:0;0x01c:0x00000000【12】kfdhdb.driver.provstr:ORCLDISK;0x000:length=8【13】kfdhdb.driver.reserved[0]:0;0x008:0x00000000【14】kfdhdb.driver.reserved[1]:0;0x00c:0x00000000【15】kfdhdb.driver.reserved[2]:0;0x010:0x00000000【16】kfdhdb.driver.reserved[3]:0;0x014:0x00000000【17】kfdhdb.driver.reserved[4]:0;0x018:0x00000000【18】kfdhdb.driver.reserved[5]:0;0x01c:0x00000000【19】kfdhdb.compat:186646528;0x020:0x0b200000【20】kfdhdb.dsknum:0;0x024:0x0000【21】kfdhdb.grptyp:1;0x026:KFDGTP_EXTERNAL【22】kfdhdb.hdrsts:3;0x027:KFDHDR_MEMBER【23】kfdhdb.dskname:DATA_0000;0x028:length=9【24】kfdhdb.grpname:DATA;0x048:length=4【25】kfdhdb.fgname:DATA_0000;0x068:length=9【26】kfdhdb.capname:;0x088:length=0【27】kfdhdb.crestmp.hi:33020845;0x0a8:HOUR=0xdDAYS=0x1dMNTH=0x6YEAR=0x7df【28】kfdhdb.crestmp.lo:1437992960;0x0ac:USEC=0x0MSEC=0x182SECS=0x1bMINS=0x15【29】kfdhdb.mntstmp.hi:33021392;0x0b0:HOUR=0x10DAYS=0xeMNTH=0x7YEAR=0x7df【30】kfdhdb.mntstmp.lo:2467747840;0x0b4:USEC=0x0MSEC=0x1b6SECS=0x31MINS=0x24........【108】
总共有108行内容,这些内容是什么含义呢?我们来一一解读
第1行:kfbh.endian:小字节(LittleEndian) = 1 大字节(Big Endian) = 0
第2行:kfbh.hard:元文件块大小 默认是0x82
第3行:type_kfbh:类型,磁盘头总是KFBTYP_DISKHEAD
第4行:kfbh.datfmt 数据格式
第5行:kfbh.block.blk磁盘头始终是0
第6行:kfbh.block.obj磁盘在磁盘组中的号
第7行:kfbh.check 校验码,写到磁盘前计算
第8~11行:磁盘头无意义
第12行:kfdhdb.driver.provstr 没有使用Lib包的时候显示为ORCLDISK
第13~18行:kfdhdb.driver.reserved始终为0
第19行:kfdhdb.compat 版本号
第20行: kfdhdb.dsknum 0
第21行:kfdhdb.grptyp 冗余策略,共4种冗余策略
KFDGTP_INVALID((kfdgtp)0)/* Illegal value */
KFDGTP_EXTERNAL ((kfdgtp)1)/* Externalredundancy */
KFDGTP_NORMAL ((kfdgtp)2)/*Normal redundancy */
KFDGTP_HIGH ((kfdgtp)3)/* High redundancy */
第22行:hdrsts_kfdhdb 磁盘状态,共8种状态
KFDHDR_INVALID((kfdhdr)0)/* Illegal value */
KFDHDR_UNKNOWN ((kfdhdr)1)/*Disk header block unreadable */
KFDHDR_CANDIDATE ((kfdhdr)2)/*No OSM or OS disk header found*/
KFDHDR_MEMBER ((kfdhdr)3)/* Normal member of the group */
KFDHDR_FORMER ((kfdhdr)4)/* Disk dropped cleanly from group */
KFDHDR_CONFLICT ((kfdhdr)5)/*Header conflicts */
KFDHDR_INCOMPAT ((kfdhdr)6)/*Written by incompatible software*/
KFDHDR_PROVISIONED ((kfdhdr)7)/* Disk wasprepared beforehand */
参见V$asm_disk
第23行:dskname_kfdhdb 磁盘名称
第24行:grpname_kfhdb 磁盘组名称
第25行:fgname_kfdhdb: 磁盘名称
第26行:capname_kfdhdb 未使用
第27~28行:fdhdb.crestmp.hi,kfdhdb.crestmp.lo创建时的时间戳
第29~30行:kfdhdb.mntstmp.hi,kfdhdb.mntstmp.lo Mount时的时间戳
第31行:kfdhdb.secsize 扇区大小
第32行:kfdhdb.blksize块大小
第33行:kfdhdb.ausize AU大小。
第34行:kfdhdb.mfact: 版本相关,无意义
第35行:kfhdb.dsksize本磁盘包含的AU数量。kfdhdb.ausize *dsksize_kfdhdb = disk size
第36行:kfdhdb.pmcnt AU的物理地址空间。
第37行:kfdhdb.fstlocn 说明第一个AU后,是用户可用空间。
第37行:kfdhdb.altlocn 说明文件目录开始自第二个AU
第38行:kfdhdb.f1b1locn 文件目录块1分配单元号
第39~108行:在默认au的情况下,后面的信息基本都变化不大
这部分信息对于ASM识别磁盘非常重要,也正式因为它的重要,11g默认就就对其进行了一个镜像备份,可以通过kefd的repair操作直接恢复,相当的方便
ASM磁盘头信息损坏和修复
AMDU (ASM Metadata Dump Utility) ASM磁盘组的信息需要在Mount之后才能通过内部视图查询,如果磁盘组因为故障无法正常加载,那么信息将不可用,这为诊断带来了诸多不便。从Oracle 11g开始,Oracle提供了一个工具AMDU用于协助诊断,通过这个工具可以在磁盘组加载之前将ASM的元数据抽取出来,用于数据库诊断,这个工具可以向后兼容,引入到10g中。
通过amdu -h可以查看详细的帮助说明,缺省的调用amdu,会自动生成一个以时间命名的目录,该目录下生成的报告文件会记录磁盘组的相关信息
到此,关于“怎么使用ASM维护工具”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。