ITPub博客

首页 > 数据库 > Oracle > [20260703]完善跟踪library cache lock library cache pin使用bpftrace.txt

[20260703]完善跟踪library cache lock library cache pin使用bpftrace.txt

原创 Oracle 作者:lfree 时间:2026-07-09 21:00:08 0 删除 编辑

[20260703]完善跟踪library cache lock library cache pin使用bpftrace.txt

#!/usr/bin/env bpftrace
uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kgllkal
/ $1 == 0 || pid == $1 /
{
    @lk++;
    printf("kgllkal count %02d -- handle address: %016lx, mode: %d ", @lk, arg2, arg3);
//  printf("spid %d ",pid);
    printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}

uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kglpnal
/ $1 == 0 || pid == $1 /
{
    @pn++;
    printf("kglpnal count %02d -- handle address: %016lx, mode: %d ", @pn, arg2, arg3);
//  printf("spid %d ",pid);
    printf("kglnaobj address: %s\n", str(arg2 + 0x1c8, 256));
}

--//修改完善如下:
#!/usr/bin/env bpftrace

BEGIN
{
    printf("Tracing Oracle kgllkal/kglpnal... Target PID: %d\n", $1);
    printf("Hit Ctrl-C to stop.\n\n");
}

uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kgllkal
/ $1 == 0 || pid == $1 /
{
    @lk++;
    printf("[%s] kgllkal #%02d pid=%d handle=%016lx mode=%d obj=%s\n",
        strftime("%H:%M:%S", nsecs),
        @lk, pid, arg2, arg3,
        str(arg2 + 0x1c8, 256));
}

uprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/oracle:kglpnal
/ $1 == 0 || pid == $1 /
{
    @pn++;
    printf("[%s] kglpnal #%02d pid=%d handle=%016lx mode=%d obj=%s\n",
        strftime("%H:%M:%S", nsecs),
        @pn, pid, arg2, arg3,
        str(arg2 + 0x1c8, 256));
}

END
{
    printf("\nTotal kgllkal: %d, Total kglpnal: %d\n", @lk, @pn);
}

--//简单测试,具体步骤略:

SCOTT@book01p> @ver2
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

# bpftrace lkpn21x.bt 3156
Attached 4 probes
Tracing Oracle kgllkal/kglpnal... Target PID: 3156
Hit Ctrl-C to stop.

[09:04:33] kgllkal #01 pid=3156 handle=0000000067b85a60 mode=1 obj=select * from dept where deptno=20
[09:04:33] kglpnal #01 pid=3156 handle=0000000067b85a60 mode=2 obj=select * from dept where deptno=20
[09:04:33] kgllkal #02 pid=3156 handle=0000000072b8d4a0 mode=2 obj=bookSYSCDB$ROOT
[09:04:33] kgllkal #03 pid=3156 handle=000000006ddc26b0 mode=2 obj=1847639831SYSCDB$ROOT
[09:04:33] kgllkal #04 pid=3156 handle=0000000067b84530 mode=2 obj=e8ec445edab00042802d511305ab90fa$BUILD$BOOK01P
[09:04:33] kgllkal #05 pid=3156 handle=0000000067b84300 mode=1 obj=
[09:04:33] kglpnal #02 pid=3156 handle=0000000067b84300 mode=3 obj=
[09:04:33] kgllkal #06 pid=3156 handle=0000000072b8d4a0 mode=2 obj=bookSYSCDB$ROOT
[09:04:33] kgllkal #07 pid=3156 handle=000000006ddc26b0 mode=2 obj=1847639831SYSCDB$ROOT
[09:04:33] kgllkal #08 pid=3156 handle=0000000067b82ed0 mode=1 obj=e8ec445edab00042802d511305ab90faChild:0BOOK01P
[09:04:33] kglpnal #03 pid=3156 handle=0000000067b82ed0 mode=3 obj=e8ec445edab00042802d511305ab90faChild:0BOOK01P
[09:04:33] kgllkal #09 pid=3156 handle=0000000067dae088 mode=1 obj=SCOTTBOOK01P
[09:04:33] kgllkal #10 pid=3156 handle=0000000072b8d4a0 mode=2 obj=bookSYSCDB$ROOT
[09:04:33] kgllkal #11 pid=3156 handle=000000006ddc26b0 mode=2 obj=1847639831SYSCDB$ROOT
[09:04:33] kgllkal #12 pid=3156 handle=0000000067ba39d0 mode=2 obj=DEPTSCOTTBOOK01PZg
[09:04:33] kglpnal #04 pid=3156 handle=0000000067ba39d0 mode=2 obj=DEPTSCOTTBOOK01PZg
[09:04:33] kgllkal #13 pid=3156 handle=0000000067b98620 mode=2 obj=356430430180546253BOOK01P
[09:04:33] kglpnal #05 pid=3156 handle=0000000067b98620 mode=2 obj=356430430180546253BOOK01P
[09:04:33] kgllkal #14 pid=3156 handle=0000000067b91840 mode=2 obj=7574277674127661070BOOK01P
[09:04:33] kglpnal #06 pid=3156 handle=0000000067b91840 mode=2 obj=7574277674127661070BOOK01P
[09:04:33] kgllkal #15 pid=3156 handle=0000000067b893e0 mode=2 obj=4204170303842060717BOOK01P
[09:04:33] kglpnal #07 pid=3156 handle=0000000067b893e0 mode=2 obj=4204170303842060717BOOK01P
[09:04:33] kgllkal #16 pid=3156 handle=0000000067b87fb0 mode=2 obj=5467474030038125289BOOK01P
[09:04:33] kglpnal #08 pid=3156 handle=0000000067b87fb0 mode=2 obj=5467474030038125289BOOK01P
[09:04:33] kgllkal #17 pid=3156 handle=0000000067b91840 mode=2 obj=7574277674127661070BOOK01P
[09:04:33] kglpnal #09 pid=3156 handle=0000000067b91840 mode=2 obj=7574277674127661070BOOK01P

[09:04:34] kgllkal #18 pid=3156 handle=0000000067b85a60 mode=1 obj=select * from dept where deptno=20
[09:04:34] kgllkal #19 pid=3156 handle=0000000067b84300 mode=1 obj=
[09:04:34] kgllkal #20 pid=3156 handle=0000000067ba39d0 mode=2 obj=DEPTSCOTTBOOK01PZg
[09:04:34] kglpnal #10 pid=3156 handle=0000000067ba39d0 mode=2 obj=DEPTSCOTTBOOK01PZg

[09:04:43] kgllkal #21 pid=3156 handle=0000000067b85a60 mode=1 obj=select * from dept where deptno=20
[09:04:43] kgllkal #22 pid=3156 handle=0000000067b84300 mode=1 obj=
Total kgllkal: 22, Total kglpnal: 10

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

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

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969275