如何使用Oracle跟踪文件?
Posted diuxie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Oracle跟踪文件?相关的知识,希望对你有一定的参考价值。
为了演示跟踪文件的方便,因此我们给一个普通用户scott授予dba的角色。
1、使用管理登录,并授予scott授予dba的角色
[oracle@oracle12c ~]$ sqlplus / as sysdba
SQL> grant dba to scott;
Grant succeeded.
SQL>
2、确定Oracle SID,如下所示。这里的SID就是:orcl
SQL> select instance_name from V$instance;
INSTANCE_NAME
orcl
SQL>
3、切换到scott用户,并确定会话ID
SQL> conn scott/tiger
Connected.
SQL> select sid from v$mystat where rownum=1;
SID
70
SQL>
4、根据会话ID,确定会话的地址信息
SQL> select paddr from v$session where sid=70;
PADDR
000000006DAB6588
SQL>
5、根据会话的地址信息,确定操作系统的进程号
SQL> select spid from v$process where addr=\'000000006DAB6588\';
SPID
54685
SQL>
进入页游目录/u01/app/oracle/diag/rdbms/orcl/orcl/trace会发现,此时并不存在包含54685的跟踪文件,原因是要使用跟踪文件需要手动开启会话的跟踪。
6、开启会话的跟踪
SQL> alter session set sql_trace=true;
Session altered.
SQL>
7、执行一条简单的SQL语句,并检查www.sangpi.com/u01/app/oracle/diag/rdbms/orcl/orcl/trace目录,这时候就可以看到生成的跟踪文件。
[oracle@oracle12c trace]$ pwd
/u01/app/oracle/diag/rdbms/orcl/orcl/trace
[oracle@oracle12c trace]$ ls *54685.trc
orcl_ora_54685.trc
[oracle@oracle12c trace]$
8、执行下面的的SQL语句
select * from scott.emp where deptno=10;
select * from scott.emp where deptno=20;
select * from scott.emp where deptno=30;
9、由于前面开启了会话的跟踪,如果不再需要进行跟踪了,需要手动关闭一下。
SQL> alter session set sql_trace=false;
Session altered.
SQL>
10、使用tkprof工具格式化跟踪文件
[oracle@oracle12c trace]$ tkprof orcl_ora_54685.trc /home/oracle/a.txt sys=no sort=fchela
TKPROF: Release 12.2.0.1.0 - Development on Mon Jun 28 10:37:48 2021
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
[oracle@oracle12c trace]$
11、查看生成的a.txt页游文件,如下所示:
SQL ID: 1mvxd868z75nf Plan Hash: 3956160932
select *
from scott.emp where deptno=30
SQL ID: 2nbac4n9hnzth Plan Hash: 3956160932
select *
from scott.emp where deptno=20
SQL ID: 062r5atccuyv4 Plan Hash: 3956160932
select *
from scott.emp where deptno=10
以上是关于如何使用Oracle跟踪文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何跟踪存储在 Oracle Berkeley DB XML 中的文件的更改
如何理解 Oracle 中跟踪文件的统计信息。如CPU、经过时间、查询...等
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段