ASM管理命令行三工具:KFOD、KFED和AMDU

0    196    1

Tags:

👉 本文共约12071个字,系统预计阅读时间或需46分钟。

目录

    ASM(Automatic Storage Management)是Oracle目前主推的软集群存储策略。一般而言,管理ASM的工具包括使用sqlplus命令行、ASMCA图形化界面。此外,ASM Disk的配置和创建,可以通过oracleasm程序命令行进行配置。进入11g之后,集群件GI的crsctl和srvctl也可以提供ASM实例Instance和Disk Group级别的修改。

    一般情况下,ASM安装管理借助上述工具就够了,况且Oracle Restate和Cluster ware可以确保ASM组建的HA架构。

    一些特殊场景,如磁盘数据损坏、底层修复和ASM盘发现,需要额外的一些命令行工具。ASM工具包括:kfod、kfed和AMDU。在早期的ASM版本(10gR2)中,一部分工具还需要额外的重新编译和链接才能使用。在11g,这部分工具已经成为默认设置,可以直接使用。

    本篇主要介绍三个工具的基本使用和功能介绍。

    1**kfod工具**

    与图形化界面不同,kfod属于底层的功能命令行工具。最常用的场景是从操作系统层面刺激磁盘的扫描动作,用于辅助ASM发现可用的ASM DISK。Oracle官方门户中,对于kfod的描述包括如下几个方面:

    ü Oracle ASM和Database安装过程中,kfod是会自动被调用,用于进行磁盘发现过程(Disk Discovery);

    ü 如果在安装Grid过程没有成功,kfod也会在安装stage文件夹中被找到。目录地址为:/grid/stage/ext/bin/。如果有这样的情况,Oracle就要求我们设置环境变量LD_LIBRARY_PATH到/grid/stage/ext/bin/;

    简单的说,kfod查看检索的意义更大,并不像其他有破坏性工具那样存在很大风险。使用帮助命令参数,可以看到kfod的功能说明。

    [grid@NCR-Standby-Asm ~]$ kfod help

    KFOD-00101: LRM error [107] while parsing command line arguments

    _asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]

    _asm_l/ibraries ASM Libraries[_asm_libraries=lib1,lib2,...]

    _asms/id ASM Instance[_asmsid=sid]

    a/sm_diskstring ASM Diskstring [asm_diskstring=discoverystring, discoverystring ...]

    c/luster KFOD cluster [cluster=TRUE/(FALSE)]

    db/_unique_name db_unique_name for ASM instance[db_unique_name=dbname]

    di/sks Disks to discover [disks=raw,asm,badsize,all]

    ds/cvgroup Include group name [dscvgroup=TRUE/(FALSE)]

    g/roup Disks in diskgroup [group=diskgroup]

    h/ostlist hostlist[hostlist=host1,host2,...]

    metadata_a/usize AU Size for Metadata Size Calculation

    metadata_c/lients Client Count for Metadata Size Calculation

    metadata_d/isks Disk Count for Metadata Size Calculation

    metadata_n/odes Node Count for Metadata Size Calculation

    metadata_r/edundancy Redundancy for Metadata Size Calculation

    n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)]

    o/p KFOD options type [OP=DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/ALL]

    p/file ASM parameter file [pfile=parameterfile]

    s/tatus Include disk header status [status=TRUE/(FALSE)]

    v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)]

    几个常见的操作方法:

    --查看ASM配置基本情况

    [grid@NCR-Standby-Asm ~]$ kfod

    --------------------------------------------------------------------------------

    ORACLE_SID ORACLE_HOME

    ================================================================

    +ASM /u01/app/grid/product/11.2.0/grid

    --查看ASM Disk情况

    [grid@NCR-Standby-Asm ~]$ kfod di=all

    --------------------------------------------------------------------------------

    Disk Size Path User Group

    ================================================================================

    1: 20489 Mb ORCL:DATA1

    2: 20489 Mb ORCL:DATA2

    3: 20489 Mb ORCL:DATA3

    4: 20489 Mb ORCL:DATA5

    5: 20442 Mb ORCL:DATA6

    --------------------------------------------------------------------------------

    ORACLE_SID ORACLE_HOME

    ================================================================================

    +ASM /u01/app/grid/product/11.2.0/grid

    --特定diskgroup情况

    [grid@NCR-Standby-Asm ~]$ kfod status=true g=data

    --------------------------------------------------------------------------------

    Disk Size Path

    ================================================================================

    0 20489 Mb ORCL:DATA1

    1 20489 Mb ORCL:DATA2

    2 20489 Mb ORCL:DATA3

    [grid@NCR-Standby-Asm ~]$ kfod status=true g=reco

    --------------------------------------------------------------------------------

    Disk Size Path

    ================================================================================

    0 20489 Mb ORCL:DATA5

    1 20442 Mb ORCL:DATA6

    2****KFED

    KFED的全称为Kernel File Metadata Editor。KFED的使用场景比较严峻,就是当ASM Diskgroup不能成功mount的时候,通过KFED来分析ASM磁盘头信息,来诊断问题。

    从Oracle 11.1开始,KFED就已经正式成为安装组件的一部分。一些旧的版本中,就需要手工进行build构建。与Kfod的区别是,KFED只有在完全安装完之后,才能使用,在stage阶段无法使用。

    KFED帮助信息如下:

    [grid@NCR-Standby-Asm ~]$ kfed

    as/mlib ASM Library [asmlib='lib']

    aun/um AU number to examine or update [AUNUM=number]

    aus/z Allocation Unit size in bytes [AUSZ=number]

    blkn/um Block number to examine or update [BLKNUM=number]

    blks/z Metadata block size in bytes [BLKSZ=number]

    ch/ksum Update checksum before each write [CHKSUM=YES/NO]

    cn/t Count of AUs to process [CNT=number]

    de/v ASM device to examine or update [DEV=string]

    dm/pall Don't suppress repeated lines when dumping corrupt blocks [DMPALL=YES/NO]

    o/p KFED operation type [OP=READ/WRITE/MERGE/REPAIR/NEW/FORM/FIND/STRUCT]

    p/rovnm Name for provisioning purposes [PROVNM=string]

    s/eek AU number to seek to [SEEK=number]

    te/xt File name for translated block text [TEXT=string]

    ty/pe ASM metadata block type number [TYPE=number]

    最常用的场景,是借助kfed去读ASM Disk的磁盘头信息。

    [grid@NCR-Standby-Asm ~]$ kfed read /dev/sdb1

    KFED-00303: unable to open file '/dev/sdb1'

    [grid@NCR-Standby-Asm ~]$ env | grep ORACLE_HOME

    ORACLE_HOME=/u01/app/grid/product/11.2.0/grid

    [root@NCR-Standby-Asm ~]# cd /u01/app/grid/product/11.2.0/grid

    [root@NCR-Standby-Asm grid]# cd bin/

    [root@NCR-Standby-Asm bin]# ls -l | grep kfed

    -rwxr-x--x 1 grid oinstall 2403791 May 25 15:28 kfed

    -rwxr-x--x 1 grid oinstall 2403783 May 5 09:21 kfedO

    [root@NCR-Standby-Asm bin]# ./kfed read /dev/sdb1

    kfbh.endian: 1 ; 0x000: 0x01

    kfbh.hard: 130 ; 0x001: 0x82

    kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD

    kfbh.datfmt: 1 ; 0x003: 0x01

    kfbh.block.blk: 0 ; 0x004: blk=0

    kfbh.block.obj: 2147483648 ; 0x008: disk=0

    kfbh.check: 586307481 ; 0x00c: 0x22f25799

    kfbh.fcn.base: 0 ; 0x010: 0x00000000

    kfbh.fcn.wrap: 0 ; 0x014: 0x00000000

    kfbh.spare1: 0 ; 0x018: 0x00000000

    (篇幅原因,有省略……)

    kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000

    kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000

    kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000

    kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000

    针对ASM Disk头块损坏的问题,Oracle推出了自动backup策略,备份块就在510位置上。

    [root@NCR-Standby-Asm bin]# ./kfed read /dev/sdb1 blkn=510

    kfbh.endian: 1 ; 0x000: 0x01

    kfbh.hard: 130 ; 0x001: 0x82

    kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD

    kfbh.datfmt: 1 ; 0x003: 0x01

    kfbh.block.blk: 254 ; 0x004: blk=254

    kfbh.block.obj: 2147483648 ; 0x008: disk=0

    kfbh.check: 586307431 ; 0x00c: 0x22f25767

    kfbh.fcn.base: 0 ; 0x010: 0x00000000

    kfbh.fcn.wrap: 0 ; 0x014: 0x00000000

    kfbh.spare1: 0 ; 0x018: 0x00000000

    kfbh.spare2: 0 ; 0x01c: 0x00000000

    kfdhdb.driver.provstr: ORCLDISKDATA1 ; 0x000: length=13

    自动命令repair,也就是将这个块的信息写回到头块位置上。

    3****AMDU

    AMDU是笔者个人觉得最像是官方工具的一个,全称为:ASM Metadata Dump Utility。AMDU最大的作用在于可以将ASM Disk Group和DISK所有可用元数据信息导出,并且整理为可读的格式内容。

    AMDU最大的一个好处,在于其工作不受到Disk Group是否mount访问的影响。这个工具之所以被正式公布,主要在于Oracle Support在进行远程支持的时候,需要客户提供上载文件。

    工具帮助参数信息如下:

    [grid@NCR-Standby-Asm ~]$ amdu help=y

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
    ASM管理命令行三工具:KFOD、KFED和AMDU后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
    验证码:
    请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复

    嘿,我是小麦,需要帮助随时找我哦。
    • 18509239930
    • 个人微信

    • DB宝
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部