ITPub博客

首页 > 数据库 > Oracle > [20250118]建立完善fetch21.gdb跟踪逻辑读脚本.txt

[20250118]建立完善fetch21.gdb跟踪逻辑读脚本.txt

原创 Oracle 作者:lfree 时间:2025-01-18 20:48:40 0 删除 编辑

[20250118]建立完善fetch21.gdb跟踪逻辑读脚本.txt

--//昨天做一些改进,今天加入dba地址转换为文件号以及块号。

$ grep -v "^#" fetch21.gdb | cat -s
set pagination off
set $a=0x0
set $b=0x0
set $c=0x0
set $d=0x0

break __read_nocancel
commands
    silent
    set $a=0x0
    set $b=0x0
    set $c=0x0
    set $d=0x0
    continue
end

break kteinpscan_int1
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kteinpscan_int1 0x%x file#=%d block_no=%d\n", *($rdi+4), *($rdi+4)>>22,*($rdi+4)&0x3ffff
    continue
  end

break kdst_fetch if *($rsi+28) != 0x0
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kdst_fetch      0x%x file#=%d block_no=%d\n", *($rsi+28), *($rsi+28)>>22,*($rsi+28)&0x3ffff
    continue
  end

break kteinmap
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kteinmap        0x%x file#=%d block_no=%d\n", *($rdi+4),*($rdi+4)>>22,*($rdi+4)&0x3ffff
    continue
  end

break kdifxs0 if *($rdi+28) != $a
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kdifxs0         0x%x file#=%d block_no=%d\n",*($rdi+28),*($rdi+28)>>22, *($rdi+28)&0x3ffff
        set $a= *($rdi+28)
   continue
  end

break kdirfrs if *($rdi+28) != $c
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kdirfrs         0x%x file#=%d block_no=%d\n", *($rdi+28),*($rdi+28)>>22, *($rdi+28)&0x3ffff
        set $c= *($rdi+28)
   continue
  end

break kdifkc if *($rsi+36) != $d
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kdifkc          0x%x file#=%d block_no=%d\n", *($rsi+36), *($rsi+36)>>22, *($rsi+36)&0x3ffff
        set $d= *($rsi+36)
   continue
  end

break kdsgrp if *($rdi+28) != $b
  commands
    silent
    shell echo -n $( date +"%Y/%m/%d %T.%N : ")
    printf "kdsgrp          0x%x file#=%d block_no=%d\n", *($rdi+28), *($rdi+28)>>22, *($rdi+28)&0x3ffff
        set $b= *($rdi+28)
    continue
  end

--// 简单测试如下,:
@46on 1
select * from emp ;

(gdb) c
Continuing.
2025/01/18 10:36:02.838506605 :kteinpscan_int1 0x3000092 file#=12 block_no= 146
2025/01/18 10:36:02.843545728 :kteinmap        0x3000092 file#=12 block_no= 146
2025/01/18 10:36:02.848896431 :kdst_fetch      0x3000093 file#=12 block_no= 147
2025/01/18 10:36:02.853521374 :kdst_fetch      0x3000094 file#=12 block_no= 148
2025/01/18 10:36:02.857827948 :kdst_fetch      0x3000095 file#=12 block_no= 149
2025/01/18 10:36:02.866693424 :kdst_fetch      0x3000096 file#=12 block_no= 150
2025/01/18 10:36:02.871357813 :kdst_fetch      0x3000096 file#=12 block_no= 150
2025/01/18 10:36:02.876111216 :kdst_fetch      0x3000097 file#=12 block_no= 151



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3068160/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969647