oracle_systemstate dump分析
Oracle的重要诊断工具events_如10046事件来进行SQL跟踪
Oracle的重要诊断工具events海量oracle资料下载,请收藏2011-1-4摘要:我们经常在论坛上看到用10046事件来进行SQL跟踪,那么到底是什么回事呢?这篇文章就可以很好的从零开始,告诉你是什么和怎样用。
这篇文章由【数据库吧】原创,如果转载请注明出处。
/【数据库吧】很多时候,对数据库进行性能诊断可以使用SQL跟踪的方法,把一些信息记录在trace 文件里以后分析。
一般情况下我们可以通过初始化参数SQL_TRACE=TRUE来设置SQL跟踪。
我们也可以通过设置10046事件来进行SQL跟踪,并且可以设置不同的跟踪级别,比使用SQL_TRACE获得更多的信息。
Level 0 停用SQL跟踪,相当于SQL_TRACE=FALSELevel 1 标准SQL跟踪,相当于SQL_TRACE=TRUELevel 4 在level 1的基础上增加绑定变量的信息level 8 在level 1的基础上增加等待事件的信息Level 12 在level 1的基础上增加绑定变量和等待事件的信息10046事件不但可以跟踪用户会话(trace文件位于USER_DUMP_DEST),也可以跟踪background进程(trace文件位于BACKGROUND_DUMP_DEST)。
trace文件的大小决定于4个因素:跟踪级别,跟踪时长,会话的活动级别和MAX_DUMP_FILE_SIZE参数让我们从头说起:一、Oracle跟踪文件Oracle跟踪文件分为三种类型:一种是后台报警日志文件:记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。
在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。
后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG。
另一种类型是DBWR、LGWR、SMON等后台进程创建的后台跟踪文件:后台跟踪文件根据后台进程运行情况产生,后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为siddbwr.trc、sidsmon.trc等。
oracle性能分析报告
Oracle性能分析报告1. 引言Oracle是一种高效的关系数据库管理系统,但在使用过程中可能会遇到性能问题。
本文将介绍如何通过分析Oracle性能来识别并解决潜在的问题。
2. 数据收集要进行性能分析,首先需要收集相关数据。
以下是一些常用的数据收集方法:- 监视系统参数:使用Oracle自带的工具,如AWR报告和ASH报告,可以监视系统参数的变化和性能指标。
- 分析SQL语句:通过跟踪和分析执行时间较长的SQL 语句,可以找到性能瓶颈所在。
- 监视数据库等待事件:通过查看等待事件的情况,可以了解系统的瓶颈。
- 监视资源利用率:监视CPU、内存和磁盘等资源的利用率,以了解系统的健康状况。
3. 数据分析收集到数据后,需要对数据进行分析以识别性能问题。
以下是一些常用的数据分析方法: - 比较不同时间段的性能指标:通过比较不同时间段的性能指标,可以发现系统的变化和趋势。
- 查找长时间运行的SQL语句:通过识别执行时间较长的SQL语句,可以找到潜在的性能问题。
- 分析等待事件:通过查看数据库等待事件的情况,可以确定系统的瓶颈所在。
- 分析资源利用率:通过监视资源利用率,可以确定系统是否存在资源瓶颈。
4. 性能优化通过数据分析,可以确定性能问题的原因。
以下是一些常用的性能优化方法:- 优化SQL查询:对执行时间较长的SQL语句进行优化,如增加索引、重写查询等。
- 调整系统参数:根据系统的需求,调整相关的系统参数,如缓冲区大小、并发连接数等。
- 优化存储结构:对表的存储结构进行优化,如分区、索引等。
- 调整硬件配置:根据系统的需求,调整硬件配置,如增加CPU、内存等。
5. 总结通过以上的步骤,可以对Oracle数据库的性能进行分析和优化。
收集相关数据、分析数据、识别问题、优化性能是一个迭代的过程,需要不断调整和优化。
只有对Oracle性能进行持续监测和优化,才能确保系统的高效运行。
以上是关于Oracle性能分析报告的步骤和方法的介绍。
oracle数据库hang分析(HanganAnalyze)
HANGANALYZE EventHANGANALYZE事件在分析系统挂住的时候很有用,尤其是会话(session)因为锁的原因挂住的时候。
用法:SQL>alter session set events 'immediate trace name HANGANALYZE level 4';Trace File:Trace file位于udump目录下,文件名可根据文件的生成时间来确定,或者用下面的脚本。
SQL>select spid from v$processwhere addr=(select paddr from v$sessionwhere sid=(select sid from v$mystatwhere rownum<2));比如例子中的文件ut12sup1_ora_14862.trc,其中14682就是spid的值。
分析:Dump file /u40/UT12SUP1/db/tech_st/10.2.0/admin/UT12SUP1_uhddb01/udump/ut12sup1_ora_14862. trcOracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsORACLE_HOME = /u40/UT12SUP1/db/tech_st/10.2.0System name: SunOSNode name: uhddb01Release: 5.10Version: Generic_118833-23Machine: sun4uInstance name: UT12SUP1Redo thread mounted by this instance: 1Oracle process number: 23Unix process pid: 14862, image: oracle@uhddb01 (TNS V1-V3)*** SERVICE NAME:(SYS$USERS) 2009-06-03 10:05:18.102*** SESSION ID:(373.3606) 2009-06-03 10:05:18.102*** 2009-06-03 10:05:18.102==============HANG ANALYSIS:==============Open chains found:会话SID=1185在等待1188Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :<0/1188/1236/0xe100f590/14813/SQL*Net message from client>-- <0/1185/1177/0xe10134d0/14825/enq: TX - row lock contention>Other chains found:Chain 2 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :<0/336/4555/0x620134d0/14955/read by other session>Chain 3 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :<0/341/3637/0x62013cb8/14961/read by other session>……验证:SQL> select sid,username, status,event from v$session where sid in (1188,1185);SID USERNAME STATUS EVENT---------- ------------------------------ -------- ---------------------------------------------------------------- 1185 SYSTEM ACTIVE enq: TX - row lock contention1188 SYSTEM INACTIVE SQL*Net message from client关于HANGANALYZE Event:The level determines which processes are asked to dump an errorstack. The main levels are:10 => Dump all processes (voluminous data output, not a good idea)5 => Dump all processes involved in wait chains (can still produce a lot of output)4 => Dump leaf nodes in wait chains3 => Dump only processes thought to be in a hang situation2 => Minimal output1 => Very minimal output如果选择的level越高,除了更多的进程会包括近来外,trace的信息也会更多。
oracle rac日记
RAC的主要性能指标经常有人问老白,一套RAc系统,如何评价CACHE FUSION方面有没有问题呢?这个问题确实有点麻烦,任何一套系统的健康性分析都是很复杂的,因为每个系统都是不一样的,都有独立的特性。
不过作为技术分析手段,还是有很多指标可以反映出系统的状况。
本节将介绍主要的GCS/GES相关性能指标的情况。
这些性能指标可以从AWR报告或者STATSPACK报告中获取,也可以从VSGES STATISTICS中读取。
总体负载与命中率指标本节里的部分指标是Oracle l0g才有的,0racle 10g AwR报告在指标分析方面有了较大的改DBA遥过这些指标可以更容易地进行性能分析。
以下是0racle l09的一个例子:第一部分是LOAD PROFILE(负载情况),从负载情况我们可以判断这个系统中GES/GCS 的总体负载,由于每个系统都是个性化的,因此我们不能简单地通过这些指标来判断这个系统是否存在问题。
不过我们可以进行横向的比较,在系统中采集性能基线,通过性能基线的分析确定这些指标的正常范围和平均值,通过这些基线指标来判断当前的指标是否处于正常范围。
第二部分Global Cached Efficiency Percentages是一个我们了解RAC中CACHE共享情况的重要指标。
如上面数据,这个系统中99.54%的数据是从本地CACHE中获取,0.14%是从远程CACHE中获取,0.32%是从本地磁盘获取。
这是一个做了应用分区的系统,两个实例的应用之间互相共享的数据十分少。
而一个具有较为严重冲突的系统可能是这详的:其中有差不多6%是从远程CACHE中获取的,这种情况下,CACHE FUSION可能带来较为严重的冲突。
从以下指标也可以看出流控的比例十分高:在Oracle 9i中,可以从Statspack报告中看到类似的指标,彳i过没有109AWR报告那么清晰:其中的Global cache hit rati0是通过CACHE FUSION来访问的CACHE的百分比。
Oracle数据库常见异常的诊断方法
Oracle数据库常见异常的诊断方法对于系统级异常,可以采取以下诊断方法:1. 检查日志文件:Oracle数据库记录了大量的日志信息,包括错误日志(alert log)、故障诊断日志(trace files)等。
通过查看这些日志文件,可以了解系统执行过程中的异常情况,定位问题发生的时间和位置。
2. 查看系统表和视图:Oracle数据库提供了一系列用于监控系统的表和视图,包括v$session、v$session_event、v$session_wait等。
通过查询这些系统表和视图,可以获取当前会话的状态和等待事件,从而确定系统出现异常的原因。
3. 检查系统资源使用情况:Oracle数据库提供了一系列用于监控系统资源使用情况的视图,包括v$sysstat、v$sesstat、v$system_event 等。
通过查询这些视图,可以了解数据库的活动会话数、CPU利用率、I/O等待等情况,从而评估系统资源的使用情况。
对于SQL级异常,可以采取以下诊断方法:1. 分析执行计划:Oracle数据库可以生成SQL执行计划,用于指导优化器选择最优的执行方案。
通过分析执行计划,可以了解SQL查询的执行顺序、操作方式和数据访问路径等信息,进而确定是否存在性能问题。
2. 使用SQL Trace:Oracle数据库提供了SQL Trace功能,可以详细记录SQL语句的执行过程,包括SQL的执行时间、CPU消耗、I/O操作等。
通过分析SQL Trace文件,可以找到SQL执行过程中的异常情况,如高CPU使用率、大量的物理读写等。
3. 检查索引使用情况:索引是提高SQL查询性能的重要手段,但是过多或者过少的索引都可能引起性能问题。
通过查询v$segment_statistics视图,可以了解各个表和索引的物理I/O操作次数和等待次数,从而判断是否存在索引使用不当的问题。
4. 检查锁定和等待:Oracle数据库提供了一系列用于监控数据库锁定和等待的视图,包括v$lock、v$lock_wait、v$session等。
oracle自动表分析报告
Oracle自动表分析报告1. 简介Oracle自动表分析是一项用于提高数据库性能的功能。
通过对表的统计信息进行分析,自动表分析可以提供有关表的索引、分区、压缩和统计信息的建议,以优化数据库查询性能。
2. 使用方法在Oracle数据库中,使用自动表分析功能非常简单。
只需要执行以下步骤即可:步骤1:收集统计信息在使用自动表分析之前,需要确保收集了表的统计信息。
可以使用Oracle提供的统计信息收集工具,如DBMS_STATS包中的相关过程。
步骤2:运行自动表分析运行自动表分析可以通过两种方式实现:1.使用DBMS_AUTO_TASK_ADMIN包中的相关过程手动运行表分析任务。
2.在Oracle数据库中启用自动任务调度器,然后自动定期运行表分析任务。
无论使用哪种方式,都需要在执行表分析之前设置好相关参数,如分析的目标表、分析级别和报告类型等。
步骤3:查看分析报告执行自动表分析任务后,可以通过查询相关视图来查看分析报告。
常用的视图包括:•DBA_AUTO_INDEX_ANALYSIS_REPORT:提供有关索引分析的报告。
•DBA_AUTO_PART_TABLE_REPORT:提供有关分区表分析的报告。
•DBA_AUTO_COMPRESS_TABLE_REPORT:提供有关表压缩分析的报告。
•DBA_AUTO_STAT_EXTENSIONS_REPORT:提供有关统计分析的报告。
3. 分析报告内容自动表分析报告提供了丰富的信息,以帮助数据库管理员优化表的性能。
以下是一些常见的分析报告内容:索引分析报告索引分析报告提供了有关表的索引的建议,以优化查询性能。
报告中包括以下内容:•索引建议:哪些索引可能对查询性能有所改善。
•索引状态:当前索引的状态,如是否损坏或无效。
•索引使用情况:索引的使用频率和效果统计。
•索引空间占用情况:索引占用的存储空间和碎片化情况。
分区表分析报告分区表分析报告提供了有关表分区策略的建议,以优化数据的存储和查询效率。
Oracle错误一览表3
ORA-09751: pw_attachPorts: 服务器调用pws_attach 失败ORA-09752: pw_attachPorts: port_allocate 失败ORA-09753: spwat: 无效的进程号ORA-09754: sppst: 传送给sppst 的进程号无效ORA-09755: osngpn: 端口配置失败ORA-09756: osnpns: 名服务器中没有端口ORA-09757: osnipn: 端口配置失败ORA-09758: osnipn: 无法检查名服务器中的端口ORA-09759: osnsbt: 收到的信息错误ORA-09760: osnpui: 无法发送中断信息ORA-09761: pw_destroyPorts: 服务器调用pws_stop_instance 失败ORA-09762: sNeXT_instanceName: 转换错误ORA-09763: osnmpx: 交换Mach 端口时出现发送/接收错误ORA-09764: osnmop: oracle 可执行(代码)访问错误ORA-09765: osnmop: 分叉失败ORA-09766: osnmop: 缓冲区分配失败ORA-09767: osnmfs: msg_send 的返回代码错误ORA-09768: osnmgetmsg: 无法读信息ORA-09769: osnmbr: 无法发送中断信息ORA-09770: pws_look_up: 转换失败ORA-09771: osnmwrtbrkmsg: msg_send 的返回代码错误ORA-09772: osnpmetbrkmsg: 来自主机的信息类型错误ORA-09773: osnmgetdatmsg: 来自主机的信息类型错误ORA-09774: osnmui: 无法发送中断信息ORA-09775: osnmrs: 重置协议错误ORA-09776: pws_look_up: (Oracle 帮助程序) 可执行(代码) 访问错误ORA-09777: osnpbr: 无法发送中断信息ORA-09778: snynfyport: 无法配置通知端口ORA-09779: snyGetPort: 无法分配端口ORA-09786: sllfop: 打开错误,无法打开文件ORA-09787: sllfop: 不可识别的处理选项,格式错误ORA-09788: sllfrb: 无法读文件ORA-09789: sllfsk: 无法读文件ORA-09790: sllfcf: 无法关闭文件ORA-09791: slembdf: 转换错误,无法转换错误文件名ORA-09792: sllfop: 无法分配读缓冲区ORA-09793: szguns: 用户名的长度大于缓冲区的长度ORA-09794: szrbuild: 角色名的长度大于缓冲区的长度ORA-09795: szrbuild: 无法malloc 角色结构ORA-09796: szrbuild: 无法malloc 角色名ORA-09797: 无法获得O/S MAC 权限ORA-09798: 标记比较失败ORA-09799: 文件标记检索失败ORA-09800: 进程阅读权限标记检索失败。
Oracle__DUMP函数说开去
从DUMP函数说开去因为最近研究字符集,所以对于Oracle内部的一些存储模式产生了一些兴趣,据说DUMP这个函数的功能非常强大,所以专门研究了一下。
当然研究的都比较初级,只是了解一下。
具体哪里可以用到暂时还不知道 -_-||| ,另外对字符集的转换等一些函数也了解一下:一、函数用法函数的标准格式是:DUMP(expr[,return_fmt[,start_position][,length]])基本参数时4个,最少可以填的参数时0个,当完全没有参数时,直接返回null。
另外3个参数也都有各自的默认值,一个一个来看:expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值)return_fmt:指返回参数的格式,这个参数有5种用法1) 8:以8进制返回结果的值2) 10:以10进制返回结果的值(默认)3) 16:以16进制返回结果的值4) 17:以单字符的形式返回结果的值5) 1000:以上4种加上1000,表示在返回值中加上当前字符集start_position:开始进行返回的字符位置length:需要返回的字符长度举几个例子:SQL> SELECT DUMP('abc') FROM DUAL;DUMP('ABC')----------------------Typ=96 Len=3: 97,98,99SQL> SELECT DUMP('abc',16) FROM DUAL;DUMP('ABC',16)----------------------Typ=96 Len=3: 61,62,63SQL> SELECT DUMP('abc',1016) FROM DUAL;DUMP('ABC',1016)----------------------------------------Typ=96 Len=3 CharacterSet=UTF8: 61,62,63SQL> SELECT DUMP('abc',17,2,2) FROM DUAL;DUMP('ABC',17,2,2)------------------Typ=96 Len=3: b,c二、结果分析结果的格式一般都是类似: typ=96 Len=3 [CharacterSet=UTF8]: 61,62,63 1、type其中typ表示了当前的expr值的类型,例如2表示NUMBER,96表示CHAR等等。
修复联机日志文件
最近一直在弄RMAN的东西,因此最近的分享也以这方面为主。
今天讨论下联机日志的事。
联机日志一般来说是非常坚固的一个东西(我没说,ORACLE说的),但一旦断电,或者正在运行的服务器中了病毒破坏了这些文件,或者干脆被地震火灾炸弹给炸了呢?这时,我们需要不同情况不同处理,而对于联机日志损坏要根据日志状态进行分析。
我们知道,联机日志一般会有Current、Active和Inactive三种状态。
Inactive状态的日志不会造成数据丢失,因为已写入磁盘。
而Active和Current状态的日志一般会造成数据丢失。
下面分别用两个例子演示。
这都是最常见的2种联机日志被损坏会的恢复手段。
文章是张晓明写的,刚才又找出来,很经典实用的一篇,COPY之后直接分享给大家,以后遇到联机日志坏了之后,不需要再重建实例,直接恢复却可。
实例1:Inactive状态的联机日志损坏。
本实例的场景描述如下:∙两个节点的RAC环境;∙实例1正常工作,实例2启动失败;∙检查后发现是联机日志丢失,并且丢失的日志状态时Inactive的。
如果联机日志的状态是Inactive的,说明这个日志包含的数据修改都已经同步到数据文件中了,这个日志内容在Instance Recovery过程中不需要,直接drop就可以了。
因为每个thread至少要有两个日志组,如果删除后少于两组,则需要先创建一组然后再删除。
(1)模拟灾难场景。
首先关闭所有实例,因为要在ASM上删除文件,如果文件正在被使用,ASM不会允许删除,所以要关闭数据库。
启动实例1到MOUNT状态,查看日志分布:SQL> select thread#,group#,status from v$log;THREAD# GROUP# STATUS---------- ---------- ----------------1 1 INACTIVE1 2 CURRENT2 3 INACTIVE2 4 CURRENT当前操作的是实例1,所以删除实例1的日志组1,这个日志组的状态是Inactive的。
如何看懂Oracle数据AWR报告
如何看懂Oracle数据AWR报告Oracle 数据库性能分析非常重要,是确保数据库正常运行和提高数据库性能的关键。
AWR 报告(Automatic Workload Repository)对于数据库性能分析非常有用,它提供了数据库性能和负载的详细信息,以及发现和解决性能问题的线索。
下面是如何读懂 Oracle 数据库的 AWR 报告的一些建议。
1.理解AWR报告的用途和内容:2.确定报告时间范围:AWR报告通常包含一个时间段内的数据库活动和性能数据。
报告时间范围由两个快照之间的时间差来决定,可以根据需要调整时间范围。
3.研究数据库摘要:数据库摘要提供了数据库的概述信息,包括数据库名称,数据库ID,时间范围,平均每分钟的活动数,CPU使用率,等待事件,和数据库活动分布图。
研究数据库摘要可提供关于数据库的整体性能趋势和问题的指导。
4. 分析系统统计信息(systemstat):负载文件(systemstat)提供了关于数据库资源使用率和等待事件的详细信息。
通过分析不同的统计信息,可以确定资源利用率和潜在的瓶颈问题。
时间模型统计信息提供了数据库活动的详细信息,包括CPU使用率、等待事件、用户调度和I/O活动。
这些信息有助于确定数据库活动的性能瓶颈和优化机会。
6. 调查 Active Session History(ASH):Active Session History(ASH)提供了活动会话的详细信息,包括等待事件,会话维度的统计信息和 SQL 维度的统计信息。
通过分析活动会话的等待事件和 SQL 统计信息,可以确定性能问题的根本原因。
7.关注SQL维度的统计信息:SQL维度的统计信息提供了关于SQL语句的性能和运行统计信息。
通过分析SQL的执行计划,CPU和I/O的使用情况,以及等待事件,可以确定SQL语句的性能问题和优化机会。
8.使用性能诊断工具:Oracle 提供了一些性能诊断工具,如 SQL Tuning Advisor 和Automatic Database Diagnostic Monitor(ADDM),可以根据 AWR 报告提供的信息提供专业的性能分析和优化建议。
Oracle实验报告
Oracle数据库实验报告实验一:Oracle 10g安装卸载及相关工具配置一、实验目标:安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。
二、实验学时数2学时三、实验步骤和内容:1、安装Oracle10g(默认安装数据库)双击,选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。
进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。
直到安装成功。
2、登陆和了解OEM主要是已网页的形式来对数据库进行管理。
- OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->……4、通过DBCA安装数据库xscj程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->……5、sqldeveloper连接数据库打开sqldeveloper,新建连接连接名:system_ora用户名:system口令:bhbh主机名:本机计算机名SID:xscj测试,显示成功,连接,保存。
6、卸载oracle 10gWindows下1>停止所有Oracle服务,点Universal Installer卸载2>删除注册表中的所有关于Oracle项在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录3>删除硬盘上所有Oracle文件。
(1)Oracle安装文件(2)系统目录下,在Program files文件夹中的Oracle文件四、上机作业根据实验步骤完成逐个实验目标中的任务。
五、心得体会通过这次的实验,我了解了oracle数据库的情况。
oracle几个特殊函数dump...
一、DUMP()函数DUMP(w[,x[,y[,z]]])【功能】返回数据类型、字节长度和在内部的存储位置.【参数】w为各种类型的字符串(如字符型、数值型、日期型……)x为返回位置用什么方式表达,可为:8,10,16或17,分别表示:8/10/16进制和字符型,默认为10。
y和z决定了内部参数位置【返回】类型<[长度]>,符号/指数位[数字1,数字2,数字3,......,数字20]如:Typ=2 Len=7: 60,89,67,45,23,11,102SELECT DUMP('ABC',1016) FROM dual; 返回结果为:Typ=96 Len=3 CharacterSet=ZHS16GBK: 41,42,43 代码数据类型 0 对应VARCHAR2 1 对应NUMBER 8 对应LONG 12 对应DATE 23 对应RAW 24 对应LONG RAW 69 对应ROWID 96 对应CHAR 106 对应MSSLABEL各位的含义如下:1.类型: Number型,Type=2 (类型代码可以从Oracle的文档上查到)2.长度:指存储的字节数3.符号/指数位在存储上,Oracle对正数和负数分别进行存储转换:正数:加1存储(为了避免Null)负数:被101减,如果总长度小于21个字节,最后加一个102(是为了排序的需要)指数位换算:正数:指数=符号/指数位- 193 (最高位为1是代表正数)负数:指数=62 - 第一字节4.从<数字1>开始是有效的数据位从<数字1>开始是最高有效位,所存储的数值计算方法为:将下面计算的结果加起来:每个<数字位>乘以100^(指数-N) (N是有效位数的顺序位,第一个有效位的N=0)5、举例说明SQL> select dump(123456.789) from dual;返回:Typ=2 Len=6: 195,13,35,57,79,91<指数>: 195 - 193 = 2<数字1> 13 - 1 = 12 *100^(2-0) 120000<数字2> 35 - 1 = 34 *100^(2-1) 3400<数字3> 57 - 1 = 56 *100^(2-2) 56<数字4> 79 - 1 = 78 *100^(2-3) .78<数字5> 91 - 1 = 90 *100^(2-4) .009 123456.789SQL> select dump(-123456.789) from dual;返回:Typ=2 Len=7: 60,89,67,45,23,11,102算法:<指数> 62 - 60 = 2(最高位是0,代表为负数)<数字1> 101 - 89 = 12 *100^(2-0) 120000<数字2> 101 - 67 = 34 *100^(2-1) 3400<数字3> 101 - 45 = 56 *100^(2-2) 56<数字4> 101 - 23 = 78 *100^(2-3) .78<数字5> 101 - 11 = 90 *100^(2-4) .009 123456.789(-)现在再考虑一下为什么在最后加102是为了排序的需要,-123456.789在数据库中实际存储为60,89,67,45,23,11而-123456.78901在数据库中实际存储为60,89,67,45,23,11,91可见,如果不在最后加上102,在排序时会出现-123456.789<-123456.78901的情况。
处理因ASM实例异常导致RAC第一节点实例异常终止故障(精)
处理因ASM实例异常导致RAC第一节点实例异常终止故障遭遇RAC第一节点实例由于ASM实例异常导致数据库实例非正常停止,记录在此。
1.故障现象两节点RAC第一节点实例停止,经检查ASM实例亦异常终止。
2.故障分析检查数据库实例及ASM实例的的alert寻找处理思路。
1)alert日志内容Sun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_asmb_21478.trc: ORA-15064: communication failure with ASM instanceORA-03113: end-of-file on communication channelSun May 8 06:59:06 2011ASMB: terminating instance due to error 15064Sun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_lms1_21275.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_lgwr_21283.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_lms0_21271.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_lmon_21267.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_lmd0_21269.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:06 2011System state dump is made for local instanceSystem State dumped to trace file/oracle/app/oracle/admin/racdb/bdump/racdb1_diag_21263.trcSun May 8 06:59:06 2011Errors in file /oracle/app/oracle/admin/racdb/bdump/racdb1_mman_21279.trc: ORA-15064: communication failure with ASM instanceSun May 8 06:59:07 2011Shutting down instance (abortLicense high water mark = 7Sun May 8 06:59:07 2011Trace dumping is performing id=[cdmp_20110508065906]Sun May 8 06:59:11 2011Instance terminated by ASMB, pid = 21478Sun May 8 06:59:12 2011Instance terminated by USER, pid = 4110Mon May 9 13:44:05 20112)trace文件中截取到如下故障内容kjctseventdump-end tail 14 heads 0 @ 0 14 @ -1115894656DEFER MSG QUEUE ON LMS1 IS EMPTYSEQUENCES:0:0.0 1:2933.0error 15064 detected in background processORA-15064: communication failure with ASM instance3)ASM日志中记录了如下内容Thu Feb 10 19:17:58 2011NOTE: cache recovered group 1 to fcn 0.20162635Thu Feb 10 19:17:58 2011NOTE: opening chunk 1 at fcn 0.20162635 ABANOTE: seq=79 blk=1597Thu Feb 10 19:17:58 2011NOTE: cache mounting group 1/0xBA97DAE1 (ORADATA succeeded SUCCESS: diskgroup ORADATA was mountedThu Feb 10 19:18:01 2011NOTE: recovering COD for group 1/0xba97dae1 (ORADATA SUCCESS: completed COD recovery for group 1/0xba97dae1 (ORADATA Thu Feb 10 19:18:01 2011Starting background process ASMBASMB started with pid=17, OS id=7767Thu Feb 10 19:21:06 2011NOTE: ASMB process exiting due to lack of ASM file activitySun May 8 06:48:33 2011Shutting down instance (abortLicense high water mark = 6Instance terminated by USER, pid = 20819初步判断是由于ASM出现异常导致的此次故障。
dumpsys activity 解读
dumpsys activity 解读一、概述dumpsys命令的作用和用途dumpsys命令是Android系统中一个非常实用的诊断工具,它可以用来获取设备的系统信息、应用程序状态、进程状态、服务状态等详细信息。
通过分析这些信息,可以帮助我们更好地了解设备的运行状况,进而诊断和解决可能出现的问题。
二、解析dumpsys activity命令的输出结果1.设备信息运行dumpsys命令后,首先看到的是设备的基本信息,包括设备型号、Android版本、SDK版本、Build.prop中的配置等。
2.应用程序信息接下来是应用程序信息,包括已安装的应用数量、当前运行的应用、最近安装的应用等。
可以从中了解到设备的应用状况,是否有异常应用占用大量内存或CPU资源。
3.进程信息进程信息包括当前运行的进程数量、各进程的状态、占用内存大小等。
通过分析进程信息,可以发现是否有恶意进程占用大量资源,或者发现内存泄漏等问题。
4.服务信息服务信息展示了设备上正在运行的服务及其状态。
可以从中找到可能存在的异常服务,如自启动服务、耗电服务等。
5.系统资源使用情况最后是系统资源使用情况,包括内存使用情况、CPU使用情况、磁盘使用情况等。
可以从中了解到设备的资源使用状况,以便进一步诊断问题。
三、如何利用dumpsys命令诊断问题当遇到设备运行缓慢、耗电量大、内存不足等问题时,可以通过运行dumpsys命令获取相关信息,进行分析。
以下是一个简单的例子:- 设备运行缓慢:可以通过查看进程信息,找到占用CPU和内存较高的进程,进一步分析是哪个应用导致的。
- 内存不足:查看内存使用情况,找到内存泄漏的进程,结合日志分析泄漏原因。
- 耗电量大:查看电池相关信息,找到耗电量较大的应用或服务,进行优化。
四、注意事项和技巧1.运行dumpsys命令需要在设备上具有相应的权限,否则可能无法获取完整的信息。
2.分析dumpsys输出结果时,需要熟悉Android系统结构和相关代码,以便更好地理解各项指标的含义。
Oracle-Dump-Redo-Log-File--说明
/tianlesoftware/article/details/6529346
根据DBA进行dump,主要是根据file和block 号来进行dump。 这个的block 是一个范围值。
11g命令格式如下:
4.To dump records based on time
5.To dump records based on layer and opcode
6.Dump the file header information
7.Dump an entire log file:
二. 具体使用示例2.1 To dump records based on DBA (Data Block Address)关于DBA的说明,参考:
prevresetlogs terminal rcv count: 0x0 scn: 0x0000.00000000
Lowscn: 0x0000.006ab1bc (6992316) 07/30/2011 05:39:17
Nextscn: 0x0000.006e0c84 (7212164) 08/03/2011 14:14:34
SCN: 0x0000.006ac8a9 SUBSCN: 1 07/30/2011 08:28:08
*** 2011-08-08 22:10:37.053
*** ACTION NAME:() 2011-08-08 22:10:37.052
*** MODULE NAME:(sqlplus@rac1 (TNS V1-V3))2011-08-08 22:10:37.052
*** SERVICE NAME:(SYS$USERS) 2011-08-0822:10:37.052
dump 一览表
ALTER SESSION SET EVENTS 'immediate trace name events level n';
1 session
2 process
3 system
15).Locks
ALTER SESSION SET EVENTS 'immediate trace name locks level n';
DBA MAX FileNumber . BlockNumber
RBA MIN LogFileSequenceNumber . BlockNumber
RBA MAX LogFileSequenceNumber . BlockNumber;
其中time = (((((yyyy - 1988)) * 12 + mm - 1) * 31 + dd - 1) * 24 + hh) * 60 + mi) * 60 + ss;
ALTER SYSTEM DUMP LOGFILE 'FileName'
SCN MIN MinimumSCN
SCN MAX MaximumSCN
TIME MIN MinimumTime
TIME MAX MaximumTime
LAYER Layer
OPCODE Opcode
DBA MIN FileNumber . BlockNumber
10).Error State
ALTER SESSION SET EVENTS 'immediate trace name errorstack level n';
0 Error stack
dump文件分析
dump文件分析Dump文件是一种记录电脑系统状态的文件,通常被用于分析系统崩溃或错误的原因。
通过分析dump文件,可以帮助我们确定问题的根源,并采取相应的措施来解决它们。
在本文中,我将详细介绍如何进行dump文件分析,包括导出和读取dump文件中的信息,以及如何利用这些信息诊断和解决问题。
首先,我们需要了解如何导出一个dump文件。
当系统遇到错误或崩溃时,会自动生成一个dump文件,通常位于Windows系统的Minidump文件夹中。
要导出dump文件,可以按照以下步骤进行操作:1. 打开“控制面板”,选择“系统和安全”。
2. 选择“系统”,然后点击“高级系统设置”。
3. 在“高级”选项卡下,点击“设置”。
4. 在“启动和故障恢复”部分,点击“设置”按钮。
5. 在“系统故障”部分,将“写入调试信息”设置为“小型内存转储”。
6. 点击“确定”来保存更改。
一旦dump文件生成,我们可以使用调试工具来读取和分析它。
Windows操作系统提供了一个名为WinDbg的调试工具,可以用来分析和调试dump文件。
以下是一些基本的WinDbg命令,帮助我们读取和分析dump文件中的信息:1. 打开WinDbg工具,选择“文件”->“打开转储文件”。
2. 导航到dump文件的位置,选择并打开它。
3. 使用“!analyze -v”命令来执行自动分析。
这将提供有关崩溃的基本信息,如错误代码和崩溃地址。
4. 使用其他命令如“!thread”,“!process”,“!stacks”等来获取更详细的信息,如线程、进程和堆栈信息。
通过分析dump文件中的信息,我们可以确定崩溃的原因。
常见的dump文件分析包括以下几个方面:1. 异常信息分析:通过查看异常代码和异常地址,我们可以了解到底发生了什么类型的异常,以及它是在哪个模块中发生的。
这可以帮助我们锁定问题的范围,并有针对性地解决。
2. 线程堆栈分析:通过查看线程的堆栈信息,我们可以定位到代码中引起问题的具体位置。
Oracle数据库教程 ——oradebug命令详解
Oracle数据库教程——orad ebug命令详解oradebug它可以启动跟踪任何会话,dump SGA和其它内存结构,唤醒ORACLE进程,如SMON、PMON进程,也可以通过进程号使进程挂起和恢复等,还有很多功能,实际上这些功能都不常用,但是我们在看别人做问题诊断时,常看到别人在使用oradebug命令,其实我感觉最好用的就是他可以直接通过命令输出生成trace文件的名称(带路径的哦),省去不少麻烦,系统HANG住用它做分析也比较好用,和大家分享一下它最常用的方法!以sysdba登陆后SQL> oradebug helpHELP [command] Describe one or all commandsSETMYPID Debug current processSETOSPID <ospid> Set OS pid of process to debugSETORAPID <orapid> ['force'] Set Oracle pid of process to debug SETORAPNAME <orapname> Set Oracle process name to debugSHORT_STACK Get abridged OS stack--查找系统内存堆栈CURRENT_SQL Get current SQLDUMP <dump_name> <lvl> [addr] Invoke named dumpDUMPSGA [bytes] Dump fixed SGADUMPLIST Print a list of available dumpsEVENT <text> Set trace event in processSESSION_EVENT <text> Set trace event in sessionDUMPVAR <p|s|uga> <name> [level] Print/dump a fixed PGA/SGA/UGA variable DUMPTYPE <address> <type> <count> Print/dump an address with type infoSETVAR <p|s|uga> <name> <value> Modify a fixed PGA/SGA/UGA variablePEEK <addr> <len> [level] Print/Dump memoryPOKE <addr> <len> <value> Modify memoryWAKEUP <orapid> Wake up Oracle processSUSPEND Suspend executionRESUME Resume executionFLUSH Flush pending writes to trace fileCLOSE_TRACE Close trace fileTRACEFILE_NAME Get name of trace fileLKDEBUG Invoke global enqueue service debuggerNSDBX Invoke CGS name-service debugger-G <Inst-List | def | all> Parallel oradebug command prefix-R <Inst-List | def | all> Parallel oradebug prefix (return outputSETINST <instance# .. | all> Set instance list in double quotesSGATOFILE <SGA dump dir> Dump SGA to file; dirname in double quotes DMPCOWSGA <SGA dump dir> Dump & map SGA as COW; dirname in double quotes MAPCOWSGA <SGA dump dir> Map SGA as COW; dirname in double quotes HANGANALYZE [level] [syslevel] Analyze system hangFFBEGIN Flash Freeze the InstanceFFDEREGISTER FF deregister instance from clusterFFTERMINST Call exit and terminate instanceFFRESUMEINST Resume the flash frozen instanceFFSTATUS Flash freeze status of instanceSKDSTTPCS <ifname> <ofname> Helps translate PCs to namesWATCH <address> <len> <self|exist|all|target> Watch a region of memoryDELETE <local|global|target> watchpoint <id> Delete a watchpointSHOW <local|global|target> watchpoints Show watchpointsDIRECT_ACCESS <set/enable/disable command | select query> Fixed table accessCORE Dump core without crashing processIPC Dump ipc informationUNLIMIT Unlimit the size of the trace filePROCSTAT Dump process statisticsCALL [-t count] <func> [arg1]...[argn] Invoke function with arguments上面试oradebug的命令参数,可以实现我们不同的跟踪方式,功能还是比较强大的,我们先测试一个用oradebug做oracle process级10046SQL> select distinct sid from v$mystat;SID----------96SQL> select spid,pid from v$Process where addr=(select paddr from v$session where sid=96);SPID PID------------------------ ----------2556166 19SQL> !ps -ef | grep LOCALoracle 3670242 10485930 0 11:25:50 - 0:00 oraclexupeng11g(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))oracle 2556166 2031934 0 11:13:54 - 0:00 oraclexupeng11g(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))oracle 10617238 2031934 0 11:34:30 pts/0 0:00 grep LOCAL对SPID系统进程进行追踪SQL> oradebug setorapid 19Oracle pid: 19, Unix process pid: 2556166, image: oracle@cecgt (TNS V1-V3)SQL> oradebug event 10046 trace name context forever,level 28;Statement processed.SQL> oradebug tracefile_name/u01/app/oracle/diag/rdbms/xupeng11g/xupeng11g/trace/xupeng11g_ora_2556166.trcSQL> !more /u01/app/oracle/diag/rdbms/xupeng11g/xupeng11g/trace/xupeng11g_ora_2556166.trc 我们这里查看完整的一段就行了,看用oradebug trace 10046事件的内容。
systemc dump 波形
一、概述SystemC是一种建模语言,用于系统级仿真和验证。
在SystemC中,可以使用仿真波形来验证和调试设计。
波形是仿真过程中的重要工具,可以展示信号的变化和时序关系,对于分析和调试设计非常有帮助。
本文将介绍SystemC中的波形dump功能,包括如何使用和相关注意事项。
二、SystemC波形dump概述1. SystemC波形dump是指将仿真过程中的信号值保存到文件中,通常是VCD(Value Change Dump)格式或者FSDB(Fast Signal Database)格式。
2. 波形dump可以记录信号的变化,包括时钟周期、信号的高低电平等信息,以便后续分析和调试。
3. 波形dump可以用于验证设计的正确性、性能分析、电路时序分析等方面。
三、SystemC波形dump的使用1. 在SystemC中,可以使用SystemC-AMS、TLM或者RTL级别的仿真模型进行波形dump。
通常在仿真过程中,会通过仿真器或者触发器来控制波形dump的开启和关闭。
2. 波形dump的指令通常会在仿真代码中进行设置,例如在SystemC 的仿真模块中添加波形dump的启动指令。
3. 在进行波形dump之前,需要先确定需要记录的信号,然后使用相应的功能接口调用来进行记录。
四、SystemC波形dump的注意事项1. 波形dump会增加仿真的运行时间和内存占用,因此在进行波形dump时需要注意对系统资源的使用。
2. 由于波形dump文件可能会很大,因此需要合理地设置波形dump 的采样率和记录范围,以免占用过多的存储空间。
3. 对于大型系统级设计,波形dump可能会产生较大的文件,需要进行压缩和归档处理,以便后续的分析和共享。
4. 在进行波形dump时,需要考虑到波形记录的时序关系和同步性,以便后续的波形分析和调试。
五、结论SystemC波形dump是SystemC仿真和调试过程中的重要工具,能够帮助工程师们对设计进行验证和调试。
DUMP系统状态使用步骤
DUMP系统状态(systemstate)使用步骤概述:转储system state产生的跟踪文件是从 dump那一刻开始到dump任务完成之间一段事件内的系统内所有进程的信息。
Dump systemstate产生的跟踪文件包含了系统中所有进程的进程状态信息。
每个进程对应跟踪文件中的一段内容,反映该进程的状态信息,包括进行信息,会话信息,en queue信息(主要是lock的信息),缓冲区的信息和该进程在SGA中持有(held)对象的状态等信息。
使用说明:1)使用system state事件的几种情况 .数据库hang住了.数据库很慢.进程正在 hang.数据库出现某些错误.资源争用2)Dump systemstate 的语法alter system set events ‘ imam e diai tee systemstate level 8'也可以使用 ORADEBUG 功能(sqlplus下使用 oradebug help查看用法): ORADEBUG DUMP SYSTEMSTATE 103)如果希望在数据库发生某种错误是触发SYSTEMSTATE事件,可以在参数文件中设置event参数:Event = ” 60 trace name systemstate level 10”4)要查看当前数据库设置的event level,可以使用DBMS_SYSTEM.READ_EV 过程获取oradebug hanganalyzeORADEBUG setmypidORADEBUG setinst all ORADEBUG hanganalyze ---显示产生的跟踪文件名称 oradebug tracefile_name <level>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oradebug unlimit;
oradebug dump systemstate 10
1.2 WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!案例
在一次客户现场培训中,客户提出一个系统正遇到问题,请求我协助诊断解决,理论联系实践,这是我在培训中极力主张的,我们的案例式培训业正好遇到了实践现场。
*** MODULE NAME:(SQL*Plus) 2010-03-27 06:54:00.106
*** SERVICE NAME:(EDW) 2010-03-27 06:54:00.106
*** SESSION ID:(120.46138) 2010-03-27 06:54:00.106
是用于存储表列定义、权限等相关信息的。
注意以上信息中的重要内容包括:
1. 超时告警的时间是06:54: 2010-03-27 06:54:00.106
2. 出现等待超时的数据库进程号是29:Oracle process number: 29
3. 等待超时的29号进程的OS进程号为8317:Unix process pid: 8371
(post info) last post received: 109 0 4
last post received-location: kslpsr
last process to post me: 6c1002800 1 6
last post sent: 0 0 24
With the Partitioning, OLAP and Data Mining options
Node name: SF2900 Release: 5.9 Version: Generic_118558-33 Machine: sun4u
介入问题诊断首先需要收集数据,我最关注两方面的信息:
O/S info: user: Administrator, term: HOST03, ospid: 37692:38132, machine:
program: sqlplus.exe
application name: SQL*Plus, hash value=3669949024
1. 告警日志文件,检查是否出现过异常
2. 生成AWR报告,检查数据库内部的运行状况
通常有了这两部信息,我们就可以做出初步判断了。
检查数据库的告警日志文件,我们发现其中出现过一个如下错误:
>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! <<<
接下来的信息显示,进程一直在等待,等待事件为'ksdxexeotherwait':
last wait for 'ksdxexeotherwait' blocking sess=0x0 seq=36112 wait_time=5 seconds since wait started=3
1.1 状态转储的常用命令
当数据库出现一些挂起状态时,往往会严重影响到数据库使用,进程级的问题影响范围较小,而系统级的问题则会影响全局。
在出现数据库系统或进程失去响应时,如果SQL*Plus工具仍然可以连接,可能视图查询没有相应,但是可以通过oradebug工具来进行进程及系统状态信息的转储,
7. 队列锁的请求模式为共享(S):mode: N, request: S
有了这些重要的信息,我们就可以开始一些基本的分析。
ቤተ መጻሕፍቲ ባይዱ
首先可以在跟踪文件中找到29号进程,查看其中的相关信息。经过检查可以发现这些内容与跟踪文件完全相符合:
PROCESS 29:
----------------------------------------
=0, =0, =0
Dumping Session Wait History
for 'ksdxexeotherwait' count=1 wait_time=5
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=5
O/S info: user: oracle, term: UNKNOWN, ospid: 8371
OSD pid info: Unix process pid: 8371, image: oracleEDW@SF2900
进一步的向下检查可以找到SO对象6c10508e8,这里显示该进程确实由客户端的SQL*Plus发起,并且客户端的主机名称及进程的OSPID都记录在案:
SO: 6c1006740 --state object, type: 2, owner: 0, flag: INIT/-/-/0x00
(process) Oracle pid=29, calls cur/top: 6c1097430/6c1096bf0, flag: (0) -
int error: 0, call error: 0, sess error: 0, txn error 0
4. 进程时通过SQL*Plus调度执行的:MODULE NAME:(SQL*Plus)
5. 会话的ID、Serial#信息为120.46138:SESSION ID:(120.46138)
6. 进程的State Object为6c10508e8:row cache enqueue: session: 6c10508e8 什么是进程的state object???--DSI 401中对state object中有提到,但是没有完全了解
在Oracle数据库的运行过程中,可能会因为一些异常遇到数据库挂起失去响应的状况,在这种状况下,我们可以通过对系统状态进行转储,获得跟踪文件
进行数据库问题分析;很多时候数据库也会自动转储出现问题的进程或系统信息;这些转储信息成为我们分析故障、排查问题的重要依据。
本章通过实际案例的详细分析,讲解如何逐层入手、层层剖析的分析数据库故障。
从而可以进行Hang分析。
DUMP进程状态可以使用:
alter sessions set events 'immediate trace name processstate level <level>';
或者使用:
oradebug setmypid
>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! <<<
row cache enqueue: session: 6c10508e8, mode: N, request: S
ROW CACHE队列锁无法获得,表明数据库在SQL解析时,遇到问题,DC层面出现竞争,导致超时。Row Cache位于Shared Pool中的Data Dictionary Cache,
问题是这样的:
此前一个Job任务可以在秒级完成,而现在运行了数小时也无法结束,一直挂起在数据库中,杀掉进程重新手工执行,尝试多次,同样无法完成。
客户的数据库环境为:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=4
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=4
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=3
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=5
last post sent-location: ksasnd
last process posted by me: 6c1002800 1 6
(latch info) wait_event=0 bits=0
Process Group: DEFAULT, pseudo proc: 4f818c298
这个错误提示出现在7点左右,正是JOB的调度时间附近,显然这是一个高度相关的可能原因。
1.3DUMP转储文件分析定位问题
这个异常生成了转储的DUMP文件,获得该文件进行进一步的详细分析。
该文件得头部信息如下:
Redo thread mounted by this instance: 1
SQL> oradebug dump systemstate 10
另外如果系统挂起,无法用SQL*Plus连接,从Oracle 10g开始,可以使用sqlplus -prelim选项强制登录,然后即可进行系统状态信息转储:
sqlplus -prelim '/ as sysdba'
oradebug setmypid
oradebug ulimit
oradebug dump processstate<level>
当诊断数据库挂起时,可以使用DUMP命令转储整个系统状态:
alter sessions set events 'immediate trace name systemstate level <level>';
=0, =0, =0
for 'ksdxexeotherwait' count=1 wait_time=4