oracle 10046事件 深入分析Oracle数据库的启动初始化过程 ---> 帮忙分析数据库启动失败的原因

产生trace文件的全部的步骤

shutdown immediate
startup nomount
oradebug setmypid
oradebug tracefile_name -- /oracle/app/oracle/diag/rdbms/xxoodb/xxoodb/trace/xxoodb_ora_18866.trc
alter session set events '10046 trace name context forever,level 12';
alter database mount; -- 能mount, 代表控制文件没有问题
alter database open;  -- 能open, 代表数据文件 重做日志文件没有问题
alter session set events '10046 trace name context off';
oradebug close_trace;


trace内容 部分记录

1.PARSING IN CURSOR #140560609199296是什么意思

在 Oracle 的跟踪文件(.trc 文件)中,"END OF STMT" 行表示 SQL 语句的执行已经结束。

当 Oracle 数据库执行一个 SQL 语句时,它会在跟踪文件中生成一系列的事件和统计信息,以记录执行过程中的各种细节。"END OF STMT" 是这些信息的结尾标识,表示当前 SQL 语句已经完成执行。

在紧随 "END OF STMT" 行之后,你可能会看到与 SQL 语句执行相关的其他信息,如 CPU 使用、I/O 操作、等待事件、执行计划等等,这些信息可以帮助你分析 SQL 的性能和执行情况。

需要注意的是,“END OF STMT” 行的出现并不意味着 SQL 的执行一定是成功的。它只表示 SQL 的执行已经到达了结束点,但实际的执行结果可能需要进一步检查。如果在跟踪文件中出现了错误信息或异常情况,通常会在 "END OF STMT" 之前打印。

总之,"END OF STMT" 行标志着 SQL 语句的执行结束,并且在跟踪文件中提供了有关 SQL 执行过程和性能的额外信息。


2.END OF STMT是什么意思

在 Oracle 的跟踪文件(.trc 文件)中,"PARSING IN CURSOR" 行提供了正在解析的 SQL 语句的有关信息,其中包括以下各个字段的含义:

#140560609199296:游标的唯一标识符,用于标识正在解析的特定游标。
len=499SQL 语句的长度,以字符为单位。
dep=1:语句的深度,表示语句是第几层次进行的解析。通常情况下,该值为 1,表示这是最外层次的语句解析。
uid=0:用户 ID,表示执行 SQL 语句的用户 ID。
oct=3:优化级别,表示 SQL 语句的优化级别。其中,0 表示基于规则的优化,1 表示基于成本的优化,2 表示基于统计信息的优化,3 表示基于自动跟踪收集的成本信息的优化。
lid=0:语言环境 ID,表示使用的语言环境 ID。
tim=1694229904793009:时间戳,表示 SQL 语句解析开始的时间(单位为毫秒)。
hv=1830981823:哈希值,指示 SQL 语句的哈希值。
ad='1267ae1a8':地址,表示 SQL 语句在共享 SQL 区存储的地址。
sqlid='6wmch15qk545z'SQL ID,表示 SQL 语句的唯一标识符。
这些信息可以帮助你更好地理解 SQL 语句在 Oracle 数据库中的解析过程和运行情况。例如,你可以使用它们来跟踪特定的游标、查看 SQL 语句的长度、了解优化级别以及找到 SQL 语句的地址和唯一标识符等。

3.BINDS #140560609172424: 是什么意思

在 Oracle 的跟踪文件(.trc 文件)中,"BINDS" 行提供了正在绑定的变量的相关信息。这些变量通常是在 SQL 语句中使用的占位符,通过变量绑定机制将其与实际的数值进行绑定。

以下是 "BINDS" 行的示例:

BINDS #140560609172424:
Bind#0
  oacdty=01 mxl=32(06) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=01 csi=123 siz=32 off=0
  kxsbbbfp=2af7d4823d10  bln=32  avl=06  flg=09
   value="John"
其中,“BINDS #140560609172424” 行指定了正在进行绑定操作的游标的唯一标识符。

以下是一些字段的意义:

Bind#0:绑定变量的编号,从 0 开始递增。
oacdty=01:数据类型代码,表示绑定变量的数据类型。
mxl=32(06):最大长度,表示变量的最大长度(字节),括号中的 06 表示 Unicode 字符的长度。
oacflg=08:标志位,表示绑定选项的标志位。
value="John":绑定变量的值。
这些信息可以帮助你了解正在绑定的变量的类型、长度和值。通过查看绑定变量的信息,你可以更好地理解 SQL 语句的执行过程,并进行性能分析和故障排查。

4.EXEC #140560603068344:c=21,e=20,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,plh=2874733959,tim=1694229904813780 是什么意思

在 Oracle 的跟踪文件(.trc 文件)中,"EXEC" 行提供了正在执行的 SQL 语句的相关统计信息。以下是该行中各个字段的含义:

#140560603068344:正在执行的 SQL 语句的游标的唯一标识符。
c=21:CPU 时间(单位为 centiseconds),表示此次执行消耗的 CPU 时间。
e=20:等待时间(单位为 centiseconds),表示此次执行的等待时间。
p=0:物理读取次数(单位为 blocks),表示此次执行进行的物理读取次数。
cr=0:逻辑读取次数(单位为 blocks),表示此次执行进行的逻辑读取次数。
cu=0:更新次数,表示此次执行进行的数据修改次数。
mis=0:缺失次数,表示此次执行查找缓存时发生的缺失次数。
r=0:行数,表示此次执行返回的行数。
dep=1:语句的深度,表示语句是第几层次进行的执行。通常情况下,该值为 1,表示这是最外层次的语句执行。
og=4:优化级别,表示 SQL 语句的优化级别。其中,4 表示基于自动跟踪收集的成本信息的优化。
plh=2874733959:保留信息,表示此次执行的保留信息标识符。
tim=1694229904813780:时间戳,表示 SQL 语句执行开始的时间(单位为毫秒)。
这些信息可以帮助你了解 SQL 语句的执行情况,包括 CPU 和等待时间、物理和逻辑读取次数、更新次数、缺失次数以及返回的行数等。通过查看这些统计信息,你可以进行性能分析和优化,定位潜在的性能问题,并做出相应的调整。

5.FETCH #140560603068344:c=3,e=2,p=0,cr=2,cu=0,mis=0,r=0,dep=1,og=4,plh=2874733959,tim=1694229904813787 呢

在 Oracle 的跟踪文件(.trc 文件)中,"FETCH" 行提供了执行 SQL 查询并获取结果的相关统计信息。以下是该行中各个字段的含义:

#140560603068344:执行 FETCH 操作的游标的唯一标识符,与 EXEC 行中的标识符相同,表示该 FETCH 操作对应的 SQL 语句。
c=3:CPU 时间(单位为 centiseconds),表示这次 FETCH 操作消耗的 CPU 时间。
e=2:等待时间(单位为 centiseconds),表示这次 FETCH 操作的等待时间。
p=0:物理读取次数(单位为 blocks),表示这次 FETCH 操作进行的物理读取次数。
cr=2:逻辑读取次数(单位为 blocks),表示这次 FETCH 操作进行的逻辑读取次数。
cu=0:更新次数,表示这次 FETCH 操作进行的数据修改次数。
mis=0:缺失次数,表示这次 FETCH 操作在查找缓存时发生的缺失次数。
r=0:行数,表示这次 FETCH 操作返回的行数。
dep=1:语句的深度,表示语句是第几层次进行的 FETCH 操作。
og=4:优化级别,表示 SQL 语句的优化级别。
plh=2874733959:保留信息,表示此次 FETCH 操作的保留信息标识符。
tim=1694229904813787:时间戳,表示 FETCH 操作开始的时间(单位为毫秒)。
这些统计信息可以帮助你了解 FETCH 操作的性能情况,包括 CPU 和等待时间、物理和逻辑读取次数、更新次数以及返回的行数等。通过查看这些信息,你可以进行性能分析和优化,判断是否存在潜在的性能问题,并做出相应的调整。


6.CLOSE #140560603068344:c=0,e=0,dep=1,type=3,tim=1694229904813794 呢

在 Oracle 的跟踪文件(.trc 文件)中,"CLOSE" 行提供了关闭游标的相关统计信息。以下是该行中各个字段的含义:

#140560603068344:要关闭的游标的唯一标识符,与 EXEC 和 FETCH 行中的标识符相同,表示该 CLOSE 操作对应的 SQL 语句或 FETCH 操作。
c=0:CPU 时间(单位为 centiseconds),表示该 CLOSE 操作消耗的 CPU 时间。
e=0:等待时间(单位为 centiseconds),表示该 CLOSE 操作的等待时间。
dep=1:语句的深度,表示语句是第几层次进行的 CLOSE 操作。
type=3:操作类型,表示该 CLOSE 操作的类型。值为 3 表示关闭游标的操作。
tim=1694229904813794:时间戳,表示 CLOSE 操作开始的时间(单位为毫秒)。
CLOSE 操作用于显式地关闭已打开的游标,从而释放与游标相关的资源。通过查看 CLOSE 行中的统计信息,你可以了解 CLOSE 操作的性能情况,包括 CPU 和等待时间等。这些信息可以帮助你分析和优化代码,确保合理地使用游标并及时释放资源,以提高系统性能和资源利用率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值