RDBMS提供了多種的診斷工具(轉)
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初始化引數指定的位置。 二、說一說設定的問題了 可以在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. |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24492954/viewspace-767908/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【轉】oracle診斷工具-RDA使用Oracle
- oracle診斷工具-RDA使用(轉)Oracle
- oracle 效能診斷工具Oracle
- ODX 診斷資料庫轉換工具 — DDC資料庫
- 網路診斷工具的使用
- linux下的一個診斷分析工具lsof(轉)Linux
- [JVM] 應用診斷工具之Fastthread(線上診斷)JVMASTthread
- oracle診斷工具-RDA使用Oracle
- 故障診斷學習工具
- oracle sqlt(sqltxplain) 診斷工具OracleSQLAI
- Oracle診斷工具RDA使用Oracle
- 選擇正確的 WebSphere 診斷工具Web
- 如何選擇java診斷工具Java
- .NET Core 服務診斷工具
- GreysJava線上問題診斷工具Java
- DB2故障診斷工具DB2
- Oracle診斷事件列表(轉)Oracle事件
- 轉:GetCodecClsid--提供多種轉換功能的GDIPLUS (轉)
- Istio的運維-診斷工具(istio 系列五)運維
- 實用的Google安全瀏覽診斷工具Go
- 使用crsctl工具診斷cluster問題
- 吃透 JVM 診斷方法與工具使用JVM
- 基於等待事件的效能診斷(轉)事件
- Xcode自帶的超好用的診斷工具XCode
- SQL SERVER 的分散式事務診斷工具DTCTesterSQLServer分散式
- .NET Core-全域性效能診斷工具
- 使用 Diagwait 作為診斷工具,獲取用於診斷 Oracle Clusterware 節點驅逐AIOracle
- 容器內的Linux診斷工具0x.toolsLinux
- 收集Oracle RAC跟蹤診斷資訊的幾個工具Oracle
- 權威支援: 選擇正確的 WebSphere 診斷工具Web
- win10系統如何禁用診斷工具Win10
- MYTFA(MYSQL 診斷資訊收集工具)介紹MySql
- 阿里內部的那個牛逼帶閃電的Java診斷工具終於開源了阿里Java
- 防火牆NAT轉換的一次診斷防火牆
- ThreadDump和Java應用診斷(轉)threadJava
- 轉_診斷latch:shared pool等待事件事件
- ORACLE 10G 等待介面診斷(轉)Oracle 10g
- JProfiler for Mac:提升效能和診斷問題的終極工具Mac