说明:本文为Linux下Oracle进程追踪调试指导手册,
标签:strace、进程追踪、进程调试、Oracle进程追踪调试
温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化
正文开始
大纲
--strace介绍
--在Oracle中的用途
--语法
--推荐网文
--命令样例
--输出日志
★ strace介绍
/////////////////////////////////////
strace命令是一个集诊断、调试、统计与一体的工具,它像是一个侦探,通过系统调用的蛛丝马迹,告诉你异常的真相。
★ 在Oracle中的用途
/////////////////////////////////////
当Oracle部分进程异常时,可以使用该命令对相关进程追踪查看并调试,从而找到并解决问题
★ 语法
/////////////////////////////////////
语法详情:一般Linux都会自带该工具,您可以使用MAN命令来获取该命令的帮助详情
常用语法:strace -o LOGFILE COMMAND(需要跟踪的命令)
常用语法:strace -o LOGFILE -p nnn(需要跟踪的进程PID)
★ 推荐网文
/////////////////////////////////////
ljy_home写的《Linux之strace简单用法》:https://blog.youkuaiyun.com/ljy_home/article/details/51941283
★ Oracle的调试命令样例
/////////////////////////////////////
strace -t -o /home/oracle/s.log sqlplus / as sysdba
★ 输出日志
/////////////////////////////////////
10:33:42 execve("/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus", ["sqlplus", "/", "as", "sysdba"], [/* 34 vars */]) = 0
10:33:42 brk(0) = 0xee8000
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe445ead000
10:33:42 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/tls/x86_64/libsqlplus.so", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 stat("/u01/app/oracle/product/11.2.0/db_1/lib/tls/x86_64", 0x7fff8345c9b0) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/tls/libsqlplus.so", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 stat("/u01/app/oracle/product/11.2.0/db_1/lib/tls", 0x7fff8345c9b0) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/x86_64/libsqlplus.so", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 stat("/u01/app/oracle/product/11.2.0/db_1/lib/x86_64", 0x7fff8345c9b0) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libsqlplus.so", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\370\1\0\0\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0644, st_size=1469542, ...}) = 0
10:33:42 mmap(NULL, 1985056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe445cc8000
10:33:42 mprotect(0x7fe445d9e000, 1048576, PROT_NONE) = 0
10:33:42 mmap(0x7fe445e9e000, 57344, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd6000) = 0x7fe445e9e000
10:33:42 mmap(0x7fe445eac000, 2592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe445eac000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\326G\0\0\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=53793730, ...}) = 0
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe445cc7000
10:33:42 mmap(NULL, 44472168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe44325d000
10:33:42 mprotect(0x7fe4458db000, 2093056, PROT_NONE) = 0
10:33:42 mmap(0x7fe445ada000, 1855488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x267d000) = 0x7fe445ada000
10:33:42 mmap(0x7fe445c9f000, 161640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe445c9f000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\326\4\0\0\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0644, st_size=7996693, ...}) = 0
10:33:42 mmap(NULL, 3983936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe442e90000
10:33:42 mprotect(0x7fe44311a000, 1044480, PROT_NONE) = 0
10:33:42 mmap(0x7fe443219000, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x289000) = 0x7fe443219000
10:33:42 mmap(0x7fe44325b000, 6720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe44325b000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/etc/ld.so.cache", O_RDONLY) = 3
10:33:42 fstat(3, {st_mode=S_IFREG|0644, st_size=116273, ...}) = 0
10:33:42 mmap(NULL, 116273, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe442e73000
10:33:42 close(3) = 0
10:33:42 open("/lib64/libdl.so.2", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r@\31:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=22536, ...}) = 0
10:33:42 mmap(0x3a19400000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3a19400000
10:33:42 mprotect(0x3a19402000, 2097152, PROT_NONE) = 0
10:33:42 mmap(0x3a19602000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3a19602000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/lib64/libm.so.6", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240>\300\31:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=598800, ...}) = 0
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442e72000
10:33:42 mmap(0x3a19c00000, 2633944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3a19c00000
10:33:42 mprotect(0x3a19c83000, 2093056, PROT_NONE) = 0
10:33:42 mmap(0x3a19e82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x82000) = 0x3a19e82000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/lib64/libpthread.so.0", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\\\0\32:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=145720, ...}) = 0
10:33:42 mmap(0x3a1a000000, 2212768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3a1a000000
10:33:42 mprotect(0x3a1a017000, 2097152, PROT_NONE) = 0
10:33:42 mmap(0x3a1a217000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x3a1a217000
10:33:42 mmap(0x3a1a219000, 13216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a1a219000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/lib64/libnsl.so.1", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p@\300*:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=116368, ...}) = 0
10:33:42 mmap(0x3a2ac00000, 2198192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3a2ac00000
10:33:42 mprotect(0x3a2ac16000, 2093056, PROT_NONE) = 0
10:33:42 mmap(0x3a2ae15000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x3a2ae15000
10:33:42 mmap(0x3a2ae17000, 6832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a2ae17000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/lib64/libc.so.6", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\201\31:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=1918016, ...}) = 0
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442e71000
10:33:42 mmap(0x3a19800000, 3741864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3a19800000
10:33:42 mprotect(0x3a19989000, 2093056, PROT_NONE) = 0
10:33:42 mmap(0x3a19b88000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x188000) = 0x3a19b88000
10:33:42 mmap(0x3a19b8d000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3a19b8d000
10:33:42 close(3) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/x86_64/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("tls/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("x86_64/libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("libaio.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
10:33:42 open("/lib64/libaio.so.1", O_RDONLY) = 3
10:33:42 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\5@\31:\0\0\0"..., 832) = 832
10:33:42 fstat(3, {st_mode=S_IFREG|0755, st_size=5624, ...}) = 0
10:33:42 mmap(0x3a19400000, 2099840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe442c70000
10:33:42 mprotect(0x7fe442c71000, 2093056, PROT_NONE) = 0
10:33:42 mmap(0x7fe442e70000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0x7fe442e70000
10:33:42 close(3) = 0
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442c6f000
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442c6e000
10:33:42 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442c6d000
10:33:42 arch_prctl(ARCH_SET_FS, 0x7fe442c6e700) = 0
10:33:42 mprotect(0x3a19b88000, 16384, PROT_READ) = 0
10:33:42 mprotect(0x3a2ae15000, 4096, PROT_READ) = 0
10:33:42 mprotect(0x3a1a217000, 4096, PROT_READ) = 0
10:33:42 mprotect(0x3a19e82000, 4096, PROT_READ) = 0
10:33:42 mprotect(0x3a19602000, 4096, PROT_READ) = 0
10:33:42 mprotect(0x3a1921f000, 4096, PROT_READ) = 0
10:33:42 munmap(0x7fe442e73000, 116273) = 0
10:33:42 set_tid_address(0x7fe442c6e9d0) = 9729
10:33:42 set_robust_list(0x7fe442c6e9e0, 0x18) = 0
10:33:42 futex(0x7fff8345d2bc, FUTEX_WAKE_PRIVATE, 1) = 0
10:33:42 futex(0x7fff8345d2bc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7fe442c6e700) = -1 EAGAIN (Resource temporarily unavailable)
10:33:42 rt_sigaction(SIGRTMIN, {0x3a1a005ae0, [], SA_RESTORER|SA_SIGINFO, 0x3a1a00f500}, NULL, 8) = 0
10:33:42 rt_sigaction(SIGRT_1, {0x3a1a005b70, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3a1a00f500}, NULL, 8) = 0
10:33:42 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
10:33:42 getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
10:33:42 brk(0) = 0xee8000
10:33:42 brk(0xf09000) = 0xf09000
10:33:42 rt_sigaction(SIGQUIT, {0x7fe445d70d14, [QUIT], SA_RESTORER|SA_RESTART, 0x3a19832920}, {SIG_DFL, [], 0}, 8) = 0
10:33:42 rt_sigaction(SIGABRT, {0x7fe445d70d14, [ABRT], SA_RESTORER|SA_RESTART, 0x3a19832920}, {SIG_DFL, [], 0}, 8) = 0
10:33:42 mmap(NULL, 143360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe442c4a000
10:33:42 futex(0x3a196030ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
10:33:42 open("/u01/app/oracle/product/11.2.0/db_1/lib/libsqlplusic.so", O_RDONLY) = -1 ENOENT (No suc

本文详细介绍如何使用strace命令对Linux下Oracle进程进行追踪调试。strace作为强大的诊断工具,能够帮助定位Oracle进程中的异常问题,文章包括strace的介绍、在Oracle中的应用、常用语法、推荐文章及调试实例。
最低0.47元/天 解锁文章
1843

被折叠的 条评论
为什么被折叠?



