DSI含以下课程:
DSI301:ADVANCED SERVER SUPPORT SKILLS
DSI302:DATA MANAGEMENT
DSI303:DATABASE BACKUP AND RECOVERY
DSI304:QUERY MANAGEMENT
DSI305:DATABASE TUNING
DSI306:VERY LARGE DATABASES
DSI307:DISTRIBUTION AND REPLICATION
DSI308:PARALLEL SERVER
DSI401E:ADVANCE SUPPORT SKILLS
DSI401:DUMPS CRASHES AND CORRUPTIONS
DSI402E:DATA TYPE AND BLOCK STRUCTURES
DSI402:SPACE AND TRANSACTION MANAGEMENT
DSI403E:RECOVERY ARCHITECTURE COMPONTS
DSI404E:QUERY OPTIMIZER
DSI405:INSTANCE TUNING
DSI408:REAL APPLICATION CLUSTERS INTERNALS
DSI302:DATA MANAGEMENT
DSI303:DATABASE BACKUP AND RECOVERY
DSI304:QUERY MANAGEMENT
DSI305:DATABASE TUNING
DSI306:VERY LARGE DATABASES
DSI307:DISTRIBUTION AND REPLICATION
DSI308:PARALLEL SERVER
DSI401E:ADVANCE SUPPORT SKILLS
DSI401:DUMPS CRASHES AND CORRUPTIONS
DSI402E:DATA TYPE AND BLOCK STRUCTURES
DSI402:SPACE AND TRANSACTION MANAGEMENT
DSI403E:RECOVERY ARCHITECTURE COMPONTS
DSI404E:QUERY OPTIMIZER
DSI405:INSTANCE TUNING
DSI408:REAL APPLICATION CLUSTERS INTERNALS
DSI3X 为8i
DSI4X 为9i
301笔记:
设置event的方法:
1.通过初始化参数event=" < event name > < action > [: < event name > < action > ]"
2.alter session set events ' < event name > < action > [: < event name > < action > ]'
3.alter system set events ' < event name > < action > [: < event name > < action > ]'
4.exec dbms_system.SET_EV(sid,serial#,event name,level,'action');
5.oradebug < command > ;
注:event=" < event name > < action > [: < event name > < action > ]"的说明如下:
一.event name:
(1)可以是一个event的名称,如果不是event的名称,就默认为immediate。(但是immediate关键字不能出现在初始化文件中)
(2)可以是event的数字,如10046,10053,范围是10000至10999。每个event号码的含义后续会介绍。
二.当设定了event name后,action有可能有3种取值:crash、debugger、trace,其中trace我们比较常用。这里具体说说trace的这种用法:
指定trace时,语法为:
< event name > "trace" "name" < trace name > < trace qualifier > [, < trace qualifier > ]...
这里 < trace name > 是一个内部的trace 标记,如context。
这里 < trace qualifier > 可以是forever、off、level n,一般情况下n是trace的级别,n越高级别越高;但是如果是dump数据块的时候,n指dba(data block address,数据块的地址)。
综上,可以写event="10046 trace name context forever:10053 trace name context forever,level 10"
注意,当初始化文件中有2个event="xxxxx",以后面一个为准,前面一个失效。
1.通过初始化参数event=" < event name > < action > [: < event name > < action > ]"
2.alter session set events ' < event name > < action > [: < event name > < action > ]'
3.alter system set events ' < event name > < action > [: < event name > < action > ]'
4.exec dbms_system.SET_EV(sid,serial#,event name,level,'action');
5.oradebug < command > ;
注:event=" < event name > < action > [: < event name > < action > ]"的说明如下:
一.event name:
(1)可以是一个event的名称,如果不是event的名称,就默认为immediate。(但是immediate关键字不能出现在初始化文件中)
(2)可以是event的数字,如10046,10053,范围是10000至10999。每个event号码的含义后续会介绍。
二.当设定了event name后,action有可能有3种取值:crash、debugger、trace,其中trace我们比较常用。这里具体说说trace的这种用法:
指定trace时,语法为:
< event name > "trace" "name" < trace name > < trace qualifier > [, < trace qualifier > ]...
这里 < trace name > 是一个内部的trace 标记,如context。
这里 < trace qualifier > 可以是forever、off、level n,一般情况下n是trace的级别,n越高级别越高;但是如果是dump数据块的时候,n指dba(data block address,数据块的地址)。
综上,可以写event="10046 trace name context forever:10053 trace name context forever,level 10"
注意,当初始化文件中有2个event="xxxxx",以后面一个为准,前面一个失效。
event的种类:
1.immediate dump:
alter session set events 'immediate trace name < dump > level < n > '
这里的 < dump > 可以是controlf、redohdr、file_hdrs、systemstate、processstate
如:alter session set events 'immediate trace name controlf level 10';
同理的:oradebug dump controlf 10;
同理的:exec dbms_system.set_ev(7,10,65535,10,'controlf');
上面的65535指immediate。因此:alter session set events '65535 trace name controlf level 10';也是可以的。
2.on-error dump:
event=" < errornum > trace name errorstack level < n > "
alter session set events ' < errornum > trace name errorstack level < n > ';
oradebug event < errornum > trace name errorstack level < n > ;
注意ora-3113的errornum不适用,ora-3113是"end-of-file on communication channel"
on-error dump的level 级别有3个:
1.error stack and function call stack(if implemented)
2. as 1 plus process states
3. as 2 plus context area(all cursor and current cursor highlighted)
3.change behavior:
通常用在初始化文件中。
event=" < event > trace name context forever,level < n > "
4.trace events:
event=" < event > trace name context forever,level < n > "
alter session set events ' < event > trace name context forever,level < n > ';
alter system set events ' < event > trace name context forever,level < n > ';
trace eventd level 有4个级别:
1.enable standard sql_trace functionality(默认)
4.as 1 plus trace bind values
8.as level 1 plus wait
12.as level 1 plus both bind values and wait
hang和loop的区别:
1、hang:
等待的东西never happen.
cpu使用比较低。
用v$session_wait/v$lock/v$latch/v$latchholder来诊断。
2、loop:
等待的东西not going to happen。
cpu使用常常100%,且有大量active事务。
也用v$session_wait/v$lock/v$latch/v$latchholder来诊断。
对于hang问题,用v$session_wait来诊断
alter session set events 'immediate trace name < dump > level < n > '
这里的 < dump > 可以是controlf、redohdr、file_hdrs、systemstate、processstate
如:alter session set events 'immediate trace name controlf level 10';
同理的:oradebug dump controlf 10;
同理的:exec dbms_system.set_ev(7,10,65535,10,'controlf');
上面的65535指immediate。因此:alter session set events '65535 trace name controlf level 10';也是可以的。
2.on-error dump:
event=" < errornum > trace name errorstack level < n > "
alter session set events ' < errornum > trace name errorstack level < n > ';
oradebug event < errornum > trace name errorstack level < n > ;
注意ora-3113的errornum不适用,ora-3113是"end-of-file on communication channel"
on-error dump的level 级别有3个:
1.error stack and function call stack(if implemented)
2. as 1 plus process states
3. as 2 plus context area(all cursor and current cursor highlighted)
3.change behavior:
通常用在初始化文件中。
event=" < event > trace name context forever,level < n > "
4.trace events:
event=" < event > trace name context forever,level < n > "
alter session set events ' < event > trace name context forever,level < n > ';
alter system set events ' < event > trace name context forever,level < n > ';
trace eventd level 有4个级别:
1.enable standard sql_trace functionality(默认)
4.as 1 plus trace bind values
8.as level 1 plus wait
12.as level 1 plus both bind values and wait
hang和loop的区别:
1、hang:
等待的东西never happen.
cpu使用比较低。
用v$session_wait/v$lock/v$latch/v$latchholder来诊断。
2、loop:
等待的东西not going to happen。
cpu使用常常100%,且有大量active事务。
也用v$session_wait/v$lock/v$latch/v$latchholder来诊断。
对于hang问题,用v$session_wait来诊断
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30204651/viewspace-1791830/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30204651/viewspace-1791830/