zoukankan      html  css  js  c++  java
  • Script:ASM修复脚本,寻找LISTHEAD和Kfed源数据

    以下脚本用于ASM修复disk header时:     1. dd各种有用的metadata block :  
    #! /bin/sh
    rm /tmp/kfed_DH.out /tmp/kfed_FS.out /tmp/kfed_BK.out /tmp/kfed_FD.out /tmp/kfed_DD.out /tmp/kfed_PST.out
    for i in `ls /dev/asm-disk*`
    do
    echo $i >> /tmp/kfed_DH.out
    kfed read $i >> /tmp/kfed_DH.out
    echo $i >> /tmp/kfed_FS.out
    kfed read $i blkn=1 >> /tmp/kfed_FS.out
    echo $i >> /tmp/kfed_BK.out
    kfed read $i aun=1 blkn=254 >> /tmp/kfed_BK.out
    echo $i >> /tmp/kfed_FD.out
    kfed read $i aun=2 blkn=1 >> /tmp/kfed_FD.out
    echo $i >> /tmp/kfed_DD.out
    kfed read $i aun=2 blkn=2 >> /tmp/kfed_DD.out
    echo $i >> /tmp/kfed_PST.out
    kfed read $i aun=1 blkn=2 >> /tmp/kfed_PST.out
    done
          kfed_DH.out ==>KFBTYP_DISKHEAD      aun=0 blkn=0 kfed_FS.out ==>  KFBTYP_FREESPC      aun=1 blkn=0 kfed_BK.out  ==> KFBTYP_DISKHEAD DISK HEAD BACKUP   aun=1 blkn=254 kfed_FD.out  ==> KFBTYP_FILEDIR   aun=2  blkn=1 kfed_DD.out  ==> KFBTYP_FILEDIR  aun=2 blkn=2 kfed_PST.out ==> KFBTYP_PST_NONE aun=1 blkn=2   2 . Query ASM header from SQL:    
    spool asm_info.html
    set pagesize 1000
    set linesize 250
    set feedback off
    col bytes format 999,999,999,999
    col space format 999,999,999,999
    col gn format 999
    col name format a20
    col au format 99999999
    col state format a12
    col type format a12
    col total_mb format 999,999,999
    col free_mb format 999,999,999
    col od format 999
    col compatibility format a12
    col dn format 999
    col mount_status format a12
    col header_status format a12
    col mode_status format a12
    col mode format a12
    col failgroup format a20
    col label format a12
    col path format a45
    col path1 format a40
    col path2 format a40
    col path3 format a40
    col bytes_read format 999,999,999,999,999
    col bytes_written format 999,999,999,999,999
    col cold_bytes_read format 999,999,999,999,999
    col cold_bytes_written format 999,999,999,999,999
    
    alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS' ;
    
    select to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS' ) current_time from dual;
    select group_number gn, name, allocation_unit_size au, state, type, total_mb, free_mb, offline_disks od, compatibility from v$asm_diskgroup;
    select group_number gn,disk_number dn, mount_status, header_status,mode_status,state, total_mb, free_mb,name, failgroup, label, path,create_date, mount_date from v$asm_disk order by group_number, disk_number;
    
    break on g_n skip 1
    break on failgroup skip 1
    compute sum of t_mb f_mb on failgroup
    compute count of failgroup on failgroup
    
    select g.group_number g_n,g.disk_number d_n,g.name , g.path , g.total_mb t_mb,g.free_mb f_mb,g.failgroup from v$asm_disk g order by g_n, failgroup, d_n;
    SET MARKUP HTML ON
    set echo on
    select 'THIS ASM REPORT WAS GENERATED AT: ==)> ' , sysdate " " from dual;
    select 'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ' , MACHINE " " from v$session where program like '%SMON%';
    select * from v$asm_diskgroup;
    SELECT * FROM V$ASM_DISK ORDER BY GROUP_NUMBER,DISK_NUMBER;
    SELECT * FROM V$ASM_CLIENT;
    select * from V$ASM_ATTRIBUTE;
    select * from v$asm_operation;
    select * from v$version;
    show parameter
    show sga
    spool off
    exit
          AMDU result:    
    Placeholder for AMDU binaries and using with ASM 10g (Doc ID 553639.1)
    
    amdu -diskstring '/dev/asm-disk*' -dump 'MACLEAN_DG' -noimage
          4. 脚本查找LISTHEAD    
    #!/bin/bash
    # Usage: scan.sh   <path> <AU size> <disk size in AU>
    i=0
    size=0
    asize=$2
    rm list.txt
    echo AUSZIE=$asize
    while [ 1 ]
    do
    kfed read $1 ausz=$asize aunum=$i blknum=0 | grep LISTHEAD > list.txt
    size=$(stat -c %s list.txt)
    if [ $size -gt 0 ]; then
      echo LISTHEAD is found in AU=$i FILE=lhAU$i.txt
      kfed read $1 ausz=$asize aunum=$i blknum=0 text=lhAU$i.txt
    fi
    i=$[$i+1]
    if [ $i -eq $3 ]; then
      echo $3 AUs scanned
      exit 0
    fi
    done
        使用方法:   [grid@vmac1 tmp]$ ./scan.sh /dev/asm-diskb 1048576 10 AUSZIE=1048576 LISTHEAD is found in AU=2 FILE=lhAU2.txt 10 AUs scanned
  • 相关阅读:
    聊聊LiteOS事件模块的结构体、初始化及常用操作
    有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”
    开源一周岁,MindSpore新特性巨量来袭
    90后就敢当扫地僧!不服?4月24号来闯龙门阵!
    你的数仓函数结果不稳定,可能是属性指定错了
    云小课 | 不了解EIP带宽计费规则?看这里!
    腾讯 angel 3.0:高效处理模型
    深度树匹配模型(TDM)
    X-Deep Learning功能模块
    XLearning
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2968280.html
Copyright © 2011-2022 走看看