使用Strace跟踪oracle读取数据块
oracle是一个C语言程序,通过调用系统的io函数来实现io的过程,在linux下可以通过strace工具来
很方便查看进程对io函数的调用过程.
测试场景使用了rhel 5.8和oracle database 12C.
查看oracle对应的服务器进程号.
[root@o12c ~]# ps -eaf | grep beq
oracle 1611 1591 0 03:01 ? 00:00:00 oraclec12 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root 1683 1650 0 03:02 pts/5 00:00:00 grep beq
使用strace 对进程进行跟踪
[root@o12c ~]# strace -p 1611 -o test1.out
...................
mmap(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE, 7, 0x1ed000) = 0x2b5d0629f000
mmap(0x2b5d0629f000, 589824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 0) = 0x2b5d0629f000
open("/u01/app/oracle/oradata/c12/users01.dbf", O_RDWR|O_SYNC) = 12
getrlimit(RLIMIT_NOFILE, {rlim_cur=64*1024, rlim_max=64*1024}) = 0
fcntl(12, F_DUPFD, 256) = 257
close(12) = 0
fcntl(257, F_SETFD, FD_CLOEXEC) = 0
pread(257, "\6\242\0\0\263\0\200\1\344\215\35\0\0\0\1\4v\244\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 106496, 1466368) = 106496
times(NULL) = 431210068
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_NORESERVE, 7, 0x2ed000) = 0x2b5d0639f000
mmap(0x2b5d0639f000, 589824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 7, 0) = 0x2b5d0639f000
pread(257, "\6\242\0\0\301\0\200\1\347\215\35\0\0\0\2\4!H\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 1581056) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0\321\0\200\1\351\215\35\0\0\0\2\4Di\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 1712128) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0\341\0\200\1\353\215\35\0\0\0\2\4\276\361\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 1843200) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0\361\0\200\1\355\215\35\0\0\0\2\4\245\2\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 1974272) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0\1\1\200\1\357\215\35\0\0\0\2\4%\214\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 2105344) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0\21\1\200\1\361\215\35\0\0\0\2\4\243\257\0\0\1\0\0\0qg\1\0\335\215\35\0"..., 122880, 2236416) = 122880
times(NULL) = 431210068
pread(257, "\6\242\0\0!\1\200\1\363\215\35\0\0\0\