Oracle11g 在十六进制转储中搜索字符串

Oracle11g 在十六进制转储中搜索字符串,oracle11g,full-text-search,hexdump,Oracle11g,Full Text Search,Hexdump,Oracle的JDBC驱动程序在11.2中有一个新功能,它可以记录所有网络数据包,但在日志文件中,每个数据包都显示为单独的十六进制转储,格式如下: Oct 23, 2013 9:14:46 AM oracle.net.ns.Packet receive TRACE_20: 11EEA7F0 Debug: type=6, length=1410, flags=0 65 20 43 6F 72 70 6F 72 |e.Corpor| 6F 6E 2E 20 43 6F 70 79

Oracle的JDBC驱动程序在11.2中有一个新功能,它可以记录所有网络数据包,但在日志文件中,每个数据包都显示为单独的十六进制转储,格式如下:

 Oct 23, 2013 9:14:46 AM oracle.net.ns.Packet receive
 TRACE_20: 11EEA7F0 Debug: type=6, length=1410, flags=0
 65 20 43 6F 72 70 6F 72     |e.Corpor|
 6F 6E 2E 20 43 6F 70 79     |on..Copy|
 72 69 67 68 74 20 32 30     |right.20|
 30 33 20 4F 72 61 63 6C     |03.Oracl|
 01 00 01 03                 |....    |
如何在日志文件中搜索字符串,因为它们可能跨越日志文件中的多行

sed -e :a -e '$!N;s/\n [0-9A-F][0-9A-F] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ] [0-9A-F ][0-9A-F ]     |\([^|]\+\)|/\1/;ta' -e 'P;D' logfile
在Linux上,将
日志文件中的十六进制转储转换为字符串(控制字符和空格保留为句点),其他行保持不变。因此,您可以将其重定向到一个文件或将其导入您最喜爱的寻呼机,例如less。您可能需要考虑这样一个事实,即在搜索多个字符串时,控制字符和空格显示为句点


如果未使用GNU,则可能需要将
\+
更改为
*

,然后再进入这个兔子洞,检查您的应用程序是否正在运行,或者是否有其他人连接到数据库,同时对数据进行更改!这就是我的情况。