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
  • 相关阅读:
    java:产生小数位数为2的随机概率,使得和为1
    大数据网络分析规划
    java碎笔
    mysql修改记录
    mysql导入导出数据
    Centos中hive/hbase/hadoop/mysql实际操作及问题总结
    linux后台运行程序
    Centos搭建mysql/Hadoop/Hive/Hbase/Sqoop/Pig
    ARM-LINUX自动采集温湿度传感器数据
    java中枚举类型的使用
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2968280.html
Copyright © 2011-2022 走看看