[20210507]如何实现.txt
--//前面的测试,链接:http://blog.itpub.net/267265/viewspace-2771267/ =>[20210507]dump library_cache.txt
--//如何写简单脚本实现1个Bucket下,有2行^ LibraryHandle:的输出呢? 把转储文件拷贝出来,在家里做一个尝试.
C:\other> grep -E "^Bucket:|^ LibraryHandle:|^$" book_ora_12044_0003.trc >aa.txt
--//真心话,写了一个多小时,代码如下:
C:\other>cat a1.awk
BEGIN {
line = 0
bucket = ""
library = ""
}
/^Bucket:/,/^$/ {
if ($0 ~ /^Bucket:/) {
line=0
bucket=$0
}
if ($0 ~ /^ LibraryHandle:/ && line == 0 ) {
line=NR
library=$0
}
if ($0 ~ /^ LibraryHandle:/ && line != 0 ) {
if ( line+1 == NR ) {
printf "%s\n" ,bucket
printf "%s\n" ,library
printf "%s\n\n" ,$0
line = 0
bucket = ""
library = ""
}
}
}
C:\other>awk -f a1.awk aa.txt | head -20
Bucket: #=2722 Mutex=0x80a8b8a8(0, 72, 0, 6)
LibraryHandle: Address=0x7d6449f8 Hash=ae0e0aa2 LockMode=0 PinMode=0 LoadLockMode=0 Status=VALD
LibraryHandle: Address=0x7c991c18 Hash=a8240aa2 LockMode=0 PinMode=0 LoadLockMode=0 Status=VALD
Bucket: #=3845 Mutex=0x80a96820(0, 71, 0, 6)
LibraryHandle: Address=0x7e252928 Hash=27660f05 LockMode=0 PinMode=0 LoadLockMode=0 Status=0
LibraryHandle: Address=0x7e04d730 Hash=a2e00f05 LockMode=0 PinMode=0 LoadLockMode=0 Status=VALD
Bucket: #=4143 Mutex=0x80a996b0(0, 59, 0, 6)
LibraryHandle: Address=0x7c9bc308 Hash=f0f0102f LockMode=0 PinMode=0 LoadLockMode=0 Status=0
LibraryHandle: Address=0x7bd3ca68 Hash=5b5e102f LockMode=0 PinMode=0 LoadLockMode=0 Status=0
Bucket: #=7663 Mutex=0x80abbcb0(0, 59, 0, 6)
LibraryHandle: Address=0x7d6aea60 Hash=61ae1def LockMode=0 PinMode=0 LoadLockMode=0 Status=VALD
LibraryHandle: Address=0x7c516960 Hash=eb7e1def LockMode=0 PinMode=0 LoadLockMode=0 Status=0
Bucket: #=8108 Mutex=0x80ac0238(0, 70, 0, 6)
LibraryHandle: Address=0x7bf0d468 Hash=c21a1fac LockMode=0 PinMode=0 LoadLockMode=0 Status=0
LibraryHandle: Address=0x7c11b0c8 Hash=aadc1fac LockMode=0 PinMode=0 LoadLockMode=0 Status=VALD
awk: a1.awk:22: (FILENAME=aa.txt FNR=5998) fatal: printf to "standard output" failed (Invalid argument)
C:\other>awk -f a1.awk aa.txt | grep "Bucket" |wc
57 342 2691
--//与转储的下划线看到的库缓存对象数量一致.
Library Cache Dump
SGA:0x80a6fea8 Flags=ac3
DebugContext: DebugNameSpace=0 DebugType=0 DebugLevel=0x0
LIBRARY CACHE HASH TABLE: size=131072 count=3764
Buckets with more than 20 objects:
NONE
Hash Chain Size Number of Buckets
--------------- -----------------
0 127365
1 3650
2 57
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
20 0
>20 0
--//如果要写脚本实现1个Bucket下,有3行^ LibraryHandle:的输出,代码还给重新写.放弃,不擅长awk的脚本语言.
--//那位知道更好的写法..
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2771270/ ,如需转载,请注明出处,否则将追究法律责任。