• 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
  • 相关阅读:
    GIT的使用及心得
    XCODE的演变及使用经验分享
    软件工程学习计划
    这只是一个测试,注意,这只是一个测试
    软工实践---个人
    调研Android开发环境的发展演变
    软件工程的实践项目的自我目标
    调研ANDRIOD平台的开发环境的发展演变
    软件工程的实践项目的自我目标
    Leetcode题库——39.组合总和
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2968280.html
Copyright © 2020-2023  润新知