利用sql_trace跟踪一个指定会话的操作

1.  sys用户给管理用户授权。
SQL> grant execute on sys.dbms_system to andy;

Grant succeeded.

2. 查询被跟踪用户的sid,serial#  
SQL> select sid,serial# from v$session where username=‘DBLINK‘;

SID    SERIAL#
---------- ----------
31    7
3.  管理用户andy开始跟踪dblink用户
SQL> exec sys.dbms_system.set_sql_trace_in_session(31,7,true);

PL/SQL procedure successfully completed.

4.  dblink被跟踪用户执行测试语句。
SQL> select * from user_tables;

5.  跟踪结束
SQL> exec sys.dbms_system.set_sql_trace_in_session(31,7,false);

PL/SQL procedure successfully completed.

6.  dblink用户查询自己当前trace文件号
SQL>  select * from v$diag_info where name like ‘Default%‘;

INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
1 Default Trace File
/home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc

7. 用tkprof工具生成查看文件
[[email protected] ~]$ tkprof /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc andy2.txt sys=no

TKPROF: Release 11.2.0.1.0 - Development on Mon Nov 17 16:48:38 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

8.  查看跟踪记录
[[email protected] ~]$ cat andy2.txt

TKPROF: Release 11.2.0.1.0 - Development on Mon Nov 17 16:48:38 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Trace file: /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc
Sort options: default

********************************************************************************
count    = number of times OCI procedure was executed
cpu      = cpu time in seconds executing 
elapsed  = elapsed time in seconds executing
disk     = number of physical reads of buffers from disk
query    = number of buffers gotten for consistent read
current  = number of buffers gotten in current mode (usually for update)
rows     = number of rows processed by the fetch or execute call
********************************************************************************

SQL ID: dtbhjabjx3v1u
Plan Hash: 4102440123
select * 
from                       <--  #刚执行sql找到
 user_tables

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.09       0.10          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.11       0.31        174       1390          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.21       0.41        174       1390          0           1
。。。。省略输出。

OK,结束。  转载请标明出处

时间: 2024-12-23 09:35:28

利用sql_trace跟踪一个指定会话的操作的相关文章

在Oracle中利用SQL_TRACE跟踪SQL的执行

当你在执行一条SQL语句非常慢的时候,你是不是想问Oracle怎么执行这条语句的呢? Oracle提供的SQL_TRACE工具可以让你知道你执行的SQL究竟做了什么.执行的过程会被 输出到trace文件中. 下面用例子来跟踪一个SQL语句的执行情况: SQL> create table t as select rownum as id,object_name from dba_objects; Table created. SQL> create index t_ind on t(id); I

如何高效利用你所“劫持”的HTTP会话?

HTTP会话劫持 HTTP是无状态的协议,为了维持和跟踪用户的状态,引入了Cookie和Session,但都是基于客户端发送cookie来对用户身份进行识别,所以说拿到了cookie,就可以获得victim的登录状态,也就达到了会话劫持的效果. 如何拿到cookie xss xss有很多的姿势可以拿到管理员的or用户的cookie. 中间人 Phisher wifi或者ARP欺骗等等中间人攻击都可以看到用户所有的明文信息. 无线网络嗅探 wlan中无论是open的wifi,还是密码已知的wpa-

oracle读写文件--利用utl_file包对磁盘文件的读写操作

摘要: 用户提出一个需求,即ORACLE中的一个表存储了照片信息,字段类型为BLOB,要求能导出成文件形式. 本想写个C#程序来做,后来想起ORACLE有很多包,功能很好很强大,于是网上参考了些文章完成了. 主要是用了ORACLE的两个包:UTL_FILE和DBMS_LOB. 实现过程: 第一步:以管理员用户登陆设置可操作目录 --CREATE DIRECTORY privilege is granted only to SYS and SYSTEM by default. create or

利用Entity Framework修改指定字段中的值

利用Entity Framework修改指定字段中的值一般我们编辑某些模型的时候会用到类似这样的代码: [HttpPost] public ActionResult Edit(Article model) { if (model.Id == 0) { return HttpNotFound(); } using (db) { db.Entry(model).State = EntityState.Modified; db.SaveChanges(); } return RedirectToAct

python基础一 ------利用生成器生成一个可迭代对象

#利用生成器生成一个可迭代对象#需求:生成可迭代对象,输出指定范围内的素数,利用生成器产生一个可迭代对象#生成器:本身是可迭代的,只是 yield 好比return返回,yield返回后函数冻结状态,当再次调用时从冻结状态开始 1 class PrintNumbers(object): 2 """docstring for PrintNumbers""" 3 def __init__(self, start,end): 4 self.start

抛开vue-cli 利用requireJS搭建一个vue项目

---恢复内容开始--- 现在学习vue都是利用脚手架vue-cli快速搭建一个项目,这是非常高效的方法,我是十分推荐的,但是有时候在没有互联网的情况,我们没办法在node环境下,敲一个nmp install XXX帮我们搭建系统.这边也遇到了这样的情况,记录一下过程,备忘. 采用的方式是利用requireJS搭建一个遵循AMD规则的vue项目.关于这一块,大家可以百度一下,查询相关资料熟悉requireJS的使用. 第一步,都是建立一个如下常规的简单的工程结构: ----lib 存放js库文件

在Linux下利用crond实现一个定时任务并完成一个守护(精灵)进程

一.利用crond实现一个定时任务       在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. crontab支持两种状态: a.直接编写计划任务: b.使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定. 为当前用户创建cron服

删除一个目录下的所有文件,但保留一个指定文件

此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

7. 反射技术:其实就是动态加载一个指定的类

反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员.简单说:反射技术可以对一个类进行解剖. 反射的好处:大大的增强了程序的扩展性. 反射的基本步骤: 1.获得Class对象,就是获取到指定的名称的字节码文件对象. 2.实例化对象,获得类的属性.方法或构造函数. 3.访问属性.调用方法.调用构造函数创建对象. 获取这个Class对象,有三种方式: 1:通过每个对象都具备的方法getClass来获取.