动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.分析诊断进程跟踪文件工具ASS.AW.
.Oracle数据库网络与安全之FAQ汇集.
.甲骨文公司正式推出SQL Develope.
.Oracle:PL/SQL 中如何使用Array.
.vsftpd-1.1.3配制实例之四:VIRT.
.Oracle9i数据挖掘介绍.
.oracle/sql server procedure 导.
.谨慎做数据库技术的标准化.
.Oracle数据库中为什么会产生回滚.
.获得Export/Import的trace文件.
.Fravo Oracle 1Z0-132 v2.0.
.在oracle中限制返回结果集的大小.
.[范例]怎样判断画布中有重复纪录.
.捕捉运行很久的SQL.
.移动数据库和J2ME工具构建应用程.
.ORACLE 应用经验(2).
.用SQL删除数据.
.Oracle数据库备份技巧.
.Oracle 9i定制数据库模板.
.关于Oracle中执行计划稳定性深入.

全面介绍Oracle的诊断事件

发表日期:2008-2-9 |



  Oracle为RDBMS提供了多种的诊断工具,诊断事件(Event)是其中一种常用、好用的方法,它使DBA可以方便的转储数据库各种结构及跟踪特定事件的发生。   一、Event的通常格式及分类 
 
  1、 通常格式如下:
  EVENT="<事件名称><动作><跟踪项目><范围限定>"
  
  2、 Event分类
  诊断事件大体上可以分为四类:
  a. 转储类事件:它们主要用于转储Oracle的一些结构,例如转储一下控制文件、数据文件头等内容。
  b. 捕捉类事件:它们用于捕捉一些Error事件的发生,例如捕捉一下ORA-04031发生时一些Rdbms信息,以判定是Bug还是其它原因引起的这方面的问题。
  c. 改变执行途径类事件:它们用于改主一些Oracle内部代码的执行途径,例如设置10269将会使Smon进程不去合并那些Free的空间。
  d. 跟踪类事件:这们用于获取一些跟踪信息以用于Sql调优等方面,最典型的便是10046了,将会对Sql进行跟踪。

  3、 说明:
  a. 假如immediate放在第一个说明是无条件事件,即命令发出即转储到跟踪文件。
  b. trace name位于第二、三项,除它们外的其它限定词是供Oracle内部开发组用的。
  c. level通常位于1-10之间(10046有时用到12),10意味着转储事件所有的信息。例如当转储控制文件时,level1表示转储控制文件头,而level 10表明转储控制文件全部内容。
  d. 转储所生成的trace文件在user_dump_dest初始化参数指定的位置。
跟踪类别   事件名称   动作 (Action)   Name   跟踪项目   范围限定   转储类事件 immediate Trace “name” blockdump   redohdr   file_hdrs   controlf   systemstate Level block#   Level 10   Level 10   Level 10   Level 10 捕捉类事件 Error number Trace “name” Error stack   processstate   Heapdump Foreve   Off   Level nr 改变执行途径类事件 Even code corresponding to path Trace “name” Context Forever or   Level 10 跟踪类事件 10046 Trace “name” Context Forever   Level n   off     二、说一说设置的问题了   可以在init.ora中设置所需的事件,这将对所有会话期打开的会话进行跟踪,也可以用alter session set event 等方法设置事件跟踪,这将打开正在进行会话的事件跟踪。
  
  1、 在init.ora中设置跟踪事件的方法
  a. 语法
  EVENT=”event 语法,level n:event 语法,level n…”
  b. 举例
  event=”10231 trace name context forever,level 10’
  c. 可以这样设置多个事件:
  EVENT="
  10231 trace name context forever, level 10:
  10232 trace name context forever, level 10"
  
  2、 通过Alter session/system set events这种方法
  举个例子大家就明白了
  Example:
  Alter session set events ‘immediate trace name controlf level 10’;
  Alter session set events ‘immediate trace name blockdump level 112511416’; (*)
  在oracle8x及之上的版本也有这样的语句:
  Alter system dump datafile 13 block 15;实现的功能与(*)是类似的。
  
  3、 使用DBMS_SYSTEM.SET_EV的方法
  a. 过和定义如下
  DBMS_SYSTEM.SET_EV(
  SI Binary_integer,
  SE Binary_integer,
  EV Binary_integer,
  LE Binary_integer,
  NM Binary_integer);
  
  SI: 即v$session中的sid
  SE:即v$session中的serial#
  EV:要设置的事件
  LE:要设置事件的级别
  NM:名称
  b. 举个例子,以10046为例
  SQL> EXECUTE SYS.DBMS_SYSTEM.SET_EV(sid,serial#,10046,12,'');
  
  4、 使用Oradebug来设置诊断事件的方法
  同样举个例子大家就明白了:
  a. 找到spid
  SQL>select username, sid, serial#, paddr from v$session where username='qiuyb';
  
  USERNAME SID SERIAL# PADDR
  --------------------------------------------------------
  HRB3 265 910 C000000084435AD8
  
  SQL>SELECT ADDR,PID,SPID FROM V$PROCESS WHERE ADDR= C000000084435AD8';
  ADDR PID SPID
  ------------------------------------------
  C000000084435AD8 91 4835
  
  b. 设置事件,以10046为例
  sqlplus /nolog
  SQL>connect / as sysdba;
  SQL>oradebug setospid 4835
  SQL>oradebug unlimit   --不限制转储文件的大小
  SQL> oradebug event 10046 trace name context forever,level 12 --设置事件进行sql跟踪
  
  SQL> oradebug event 10046 trace name context off --关闭跟踪
  
  注重不要用oradug去跟踪oracle的smon,pmon等几个进程,操作不当可能会杀掉这几个后台进和引起宕库。
  三、你可能的问题  

  1、 我如何知道在系统中设置了哪些event?
  回答:
  a. 假如你的事件是在init.ora中设置的可以用
  SQL>show parameter event;
  来查看
  b. Michael R.Ault给的SQL
  serveroutput on size 1000000
  declare
  event_level number;
  begin
  for i in 10000..10999 loop
  sys.dbms_system.read_ev(i,event_level);
  if (event_level > 0) then
  dbms_output.put_line('Event 'to_char(i)' set at level '
  to_char(event_level));
  end if;
  end loop;
  end;
  /
  
  2、 在oracle9i中使用spfile的那种如何设置诊断事件呢?
  回答:
  简单,Alter system命令就可以完成
  alter system set event='10046 trace name context forever, level 12' scope=spfile;
  重启一下就生效了。
  
  3、 坏了,我的9i设置完诊断事件,起不来了,报ORA-02194错怎么办?
  回答:
  那你一定是在使用Alter system时把某一项写错了,比如把context写成了conetxt了,可以做如下的解决:
  a.由spfile生成pfile
  SQL>create pfile from spfile;
  File created.
  
  b.编辑pfile以修正错误
  Change... *.event='10046 trace name conetxt forever, level 12'
  -to- *.event='10046 trace name context forever, level 12'
  c.用pfile启动
  SQL>startup pfile=/.....
  d.重新生成 SPFILE.
  SQL>create spfile from pfile;
  File created.
上一篇:如何恢复一个只有完好数据文件的数据库? 人气:358
下一篇:不安装ORACLE客户端的系统移植方法 人气:306
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵