[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/ ,如需转载,请注明出处,否则将追究法律责任。