• strace 使用


    使用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

    首先调用open函数,读取表空间的数据文件返回句柄12,然后使用fcntl进行文件句柄复制和其他操作,原来的文件句柄12被关闭.
    接下来使用pread函数来读取文件.附带也证明了一点就是oracle服务器进程负责去读取数据文件,而写数据文件是通过后台进程dbwr
    来完成的.

    接下来我们打开sql trace,通过sql trace文件和strace文件对应,过程更加直观.
    [root@o12c ~]# ps -eaf | grep beq
    oracle    1916  1915  0 03:16 ?        00:00:00 oraclec12 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    SQL>  alter session set events '10046 trace name context forever,level 8';
    Session altered.

    [root@o12c ~]# strace -p 1916 -e write=all -e all -o test2.out

     RAC strace使用

    http://www.htz.pw/2014/05/11/solaris-rac%E5%B9%B3%E5%8F%B0%E6%A8%A1%E6%8B%9F%E8%8A%82%E7%82%B9crash%E8%8A%82%E7%82%B9%E7%9A%84%E5%BC%BA%E5%88%B6%E5%88%A0%E9%99%A4%E4%B8%8E%E5%A2%9E%E5%8A%A0.html

  • 相关阅读:
    赤羽西二丁目14号
    080520 雨 大风
    游泳的梦
    poj1088 滑雪 解题报告
    sgu 183. Painting the balls 动态规划 难度:3
    POJ 1947 Rebuilding Roads 树形dp 难度:2
    POJ 2566 Bound Found 尺取 难度:1
    hdu4800 Josephina and RPG 解题报告
    POJ 2057 The Lost Home 树形dp 难度:2
    HDU 4791 Alice's Print Service 思路,dp 难度:2
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/12094516.html
Copyright © 2020-2023  润新知