oracle EVENT
通过event可以开启或关闭Oracle某项特性
• 生效范围:
实例级别
会话级别
• 是否立即:
即时生效
重启生效
提示:可以在$ORACLE_HOME/rdbms/mesg/oraus.msg查看各类event的解释
10046
• 观察SQL执行时的statistics和执行计划,这可能是最为人熟知的event了:
例: ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
提示:诊断问题时建议跟踪级别为12,跟踪信息越丰富,问题可能越明显
10013
•Monitor transaction recovery during startup
例:alter system set event='10013 trace name context forever,level 10' scope=spfile;
提示:主要用于数据库启动过程中事务恢复出错时
10015
• dump undo segment headers before and after transaction recovery
例:ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';
提示:主要用于数据库无法打开获得不了UNDO段头信息时
• 提升数据库级别SCN
例:ALTER SESSION SET EVENT '10015 trace name adjust_scn level 1';
提示:主要用于数据库CURRENT SCN过小导致无法打开时
10020
• dump consistent reads
例:ALTER SESSION SET EVENTS '10200 trace name context forever, level 1';
提示:主要用于跟踪数据块一致性读或者哪个数据块损坏
10032
• dump sort statistics
例:ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
10053
• Dump Optimizer Decisions
例:ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
提示:主要用于SQL执行计划异常时
10231
• skip corrupted blocks on _table_scans_
例:ALTER SESSION SET EVENTS '10231 trace name context forever, level 10';
提示:主要用于表中有坏块导致数据无法读取时
10233
• skip corrupted blocks on index operations
例:ALTER SESSION SET EVENTS '10233 trace name context forever, level 10';
提示:主要用于索引中有坏块导致无法读取时
10246
• print trace of PMON actions to trace file
event='10246 trace name context forever,level 1'
10257
• 跟踪PMON进程动态注册服务
ps -ef|grep pmon
sqlplus as sysdba
SQL> oradebug setospid
SQL> oradebug Event 10257 trace name context forever, level 16
SQL> oradebug tracefile_name
SQL> oradebug event 10257 trace name context off;
10500
• turn on traces for SMON
例:alter system set event='10500 trace name context forever,level 1' scope=spfile;
alter system set events '12500 trace name context forever, level 10';
提示:主要用于数据库无法打开时跟踪SMON进程
10511
• 禁止SMON进程offline回滚段
例:alter system set events '10511 trace name context forever,level 1';
提示:主要用于数据库无法打开时禁止SMON进程offline回滚段
10513
• 阻止SMON在启动数据库后执行恢复
例:alter system set event='10513 trace name context forever,level 2' scope=spfile;
提示:主要用于数据库无法打开时禁止SMON进程进行事务恢复
10052
• don't clean up obj$
例:alter system set events '10052 trace name context forever, level 65535';
提示:主要用于数据库无法打开时禁止SMON进程清除obj$基表
10061
• disable SMON from cleaning temp segment
例:alter system set events '10061 trace name context forever, level 10';
提示:主要用于数据库无法打开时禁止SMON清除临时段
10269
• Don't do coalesces of free space in SMON
例:alter system set events '10269 trace name context forever, level 10';
提示:主要用于数据库无法打开时禁止SMON进程清除空闲空间
8015
• 禁止SMON清理IND$
例:alter system set events '8105 trace name context forever';
提示:主要用于数据库无法打开时禁止SMON进程清理IND$基表
10871
• dump file open/close timestamp during media recovery
例:alter system set event='10871 trace name context forever,level 1' scope=spfile;
提示:主要用于数据库物理恢复时观察归档日志应用过程
10949
• Oracle 11g关闭大表直接路径读
例:alter system set event= '10949 trace name context forever, level 1' scope=spfile;
提示:主要用于该新特性影响数据库性能时
刷新BUFFER CACHE
• 实例级别刷新BUFFER CACHE
例:alter session set events 'immediate trace name flush_cache level 1';
手动清除SMON_SCN_TIME表数据
• 设置event需要注意以下几点副作用:
SQL性能的下降,如event 10046
数据库udump目录下降
存在静态event时,动态event无法生效
其他不可预知的副作用