内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

oracle12c新增的診斷事件的初步嘗試-創(chuàng)新互聯(lián)

   Oracle 在11g的版本中已 經(jīng)對(duì) 可 診 斷 性功能 進(jìn) 行了大量改 進(jìn) ,而在Oracle 11g版本之前 診 斷 事件的 語(yǔ) 法的比 較 有限的,11g的版本中的內(nèi)核 調(diào)試 和 診 斷 功能已 經(jīng)讓 我 們 可以更 詳細(xì) 精確地的 查 看到跟蹤和 轉(zhuǎn)儲(chǔ) 診 斷 信息,在oracle 12c的新版本中,oracle 繼續(xù)對(duì) 診 斷 功能 進(jìn) 行 優(yōu) 化改 進(jìn) ,并且提供了更加 實(shí) 用性的功能,以更加方便我 們進(jìn) 行故障 診 斷 和 處 理。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、興縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為興縣等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

一.關(guān)于oracle 診 斷 事件的介 紹 :

在 MOS 文檔中《 Introduction to ORACLE Diagnostic EVENTS ( 文檔  ID 218105.1) 》 對(duì) oracle 診斷事件 做了一些介 紹 ,以下 僅簡(jiǎn)單進(jìn) 行介 紹 ,本文的重點(diǎn)是介 紹 oracle 12c  中新增的 診 斷 事件功能。

 

Introduction to ORACLE Diagnostic EVENTS

----------------------------------------

1. 診 斷 事件主要當(dāng)沒(méi)有足 夠 的信息來(lái)解決 某個(gè) 的 問(wèn)題 用于生成更多的 診 斷 信息。

2. 診 斷 事件也用于通 過(guò) 更改 Oracle 的行 為 或啟用某些未 記錄 的特性來(lái)解決某些 問(wèn)題。

 

Setting EVENTS

--------------

有多種方式可以 設(shè) 置事件。

設(shè) 置事件要取決于事件的性 質(zhì) 和當(dāng) 時(shí)的情況。 ORACLE 一再 強(qiáng)調(diào)設(shè) 置事件 應(yīng) 有明確的 Oracle 支持服 務(wù) 或相關(guān)文章 為 依據(jù)。切 記 生 產(chǎn) 系 統(tǒng) 中不要隨意 設(shè) 置使用。

大多數(shù)事件可以使用以下多種方法 設(shè) 置:

(1)      通 過(guò) 初始化參數(shù) :

EVENT = "<event_name><action>"

(2)      通 過(guò) 當(dāng)前會(huì) 話 :

ALTER SESSION SET EVENTS '<event_name><action>';

(3)      使用 調(diào)試 工具

o ORADEBUG

oradebug event <event_name><action>

      o ORAMBX (VMS only)

 

EVENT Categories

----------------

最常用的事件具體分 為以下 四 類(lèi) :  :

o 根據(jù)要求 轉(zhuǎn)儲(chǔ)出 信息 (Immediate Dump)

例如可以 轉(zhuǎn)儲(chǔ) 出以下相關(guān)信息: SYSTEMSTATE, ERRORSTACK, CONTROLF, FILE_HDRS and REDOHDR

發(fā)生錯(cuò)誤時(shí)轉(zhuǎn)儲(chǔ)診斷信 (On-Error Dump)

例如當(dāng)某個(gè)ora 錯(cuò)誤發(fā) 生 時(shí) dump 出 現(xiàn) 相關(guān)信息: EVENT "942 trace name ERRORSTACK level 3"

oracle 的行

常用解決某些缺陷或啟用某些 隱 藏的功能 。

o 實(shí) 例運(yùn)行 時(shí) 生成跟蹤 信息 (Trace Events)

例如 :10046

EVENT = "10046 trace name context forever, level 12"

二.oracle 12c新增的診斷事件:

以下分別 通 過(guò) 命令oradebug doc event name 可以查看查詢oracle 11g 和12c版本支持的event列表:

oracle 11g 中的部分 診 斷 事件功能:

oracle 12c 新增的診斷事件的初步嘗試

oracle 12c  中的部分 診 斷 事件功能( 紅 色框中 為 12c 新增的events):

oracle 12c 新增的診斷事件的初步嘗試

從以上所 查詢 的 結(jié) 果可以看出 oracle 12c events in library RDBMS 增加了 不了events,實(shí)際上即使是11g在日常的數(shù)據(jù)庫(kù)運(yùn)維中我們真正會(huì)使用的非常少,因此也無(wú)法都了解熟悉,我選取了部分新添加的event 進(jìn)行測(cè)試了解。

1. 診斷事件:wait_event[]

描述:event to control wait event post-wakeup actions

從關(guān)于 該 事件的解 釋 可以初步估 計(jì) 其 與數(shù)據(jù)庫(kù)中 等待事件有關(guān),看起來(lái) 是 與某些等待事件 喚 醒之后的某些 動(dòng) 作有關(guān)。

oracle 提供了 診 斷 事件的功能,但 實(shí)際 關(guān)于其的 詳細(xì) 描述的 資 料非常少,在之前 讀過(guò) 某個(gè)案例是 剛 好使用12c的 這 個(gè)新功能去 診 斷 了一個(gè)“l(fā)og file sync”的 問(wèn)題 , 該問(wèn)題 在oracle 12.1.0.1版本上,用 戶 會(huì) 話長(zhǎng)時(shí)間 的等到“l(fā)og file sync”,盡管當(dāng) 時(shí) 沒(méi)有出 現(xiàn) “l(fā)og file parallel write” 的等待 時(shí)間 異常以及在“l(fā)og buffer”也沒(méi)有明 顯 的爭(zhēng)用等。

     在 該 案例中,作者通 過(guò)該 新功能 單 獨(dú) 獲 取了log file sync等待的 調(diào) 用堆 棧 跟蹤信息去弄清楚Oracle在出 現(xiàn) 此 問(wèn)題時(shí) 運(yùn)行的函數(shù) 調(diào) 用 順 序以及調(diào)用的是否是異常函數(shù)。

如果在12c之前需要 獲 取同 樣 的信息,可能通 過(guò)像 Solaris 上 DTrace 操作系 統(tǒng) 工具可以捕 獲 ,但是如果 僅針對(duì) 某個(gè)等待事件,那是其 實(shí) 是非常 難 的事,更何況在其他操作系 統(tǒng) 平臺(tái)下。

       于此,我 們 可以 嘗試 模 擬 使用 該 診 斷 事件來(lái)跟蹤等待事件。

使用以下命令 語(yǔ) 法 進(jìn) 行跟蹤 調(diào) 用堆 棧信息 :

SQL> alter session set events 'wait_event["<wait event name>"]  trace("%s\n", shortstack())';

oracle 12c 新增的診斷事件的初步嘗試

單 獨(dú)生成log file sync出 現(xiàn) 的call stack 信息,根據(jù) 這 個(gè)信息可以知道函數(shù)是被那些函數(shù)按照什么 順 序 調(diào) 用的,以便 進(jìn) 一步分析:

oracle 12c 新增的診斷事件的初步嘗試

另外,以上可以配合開(kāi)啟SQL 跟蹤功能去來(lái)跟蹤每個(gè) “l(fā)og file sync” 的等待的 時(shí)長(zhǎng) 來(lái)配合分析。

oracle 12c 新增的診斷事件的初步嘗試

oracle 12c 新增的診斷事件的初步嘗試

這樣配合的話我們可以進(jìn)行跟蹤對(duì)比每次出現(xiàn)問(wèn)題等待事件時(shí)其執(zhí)行情況,包括時(shí)長(zhǎng)等,再查看其調(diào)用堆棧信息是否與正常時(shí)有無(wú)差別。特別是在針對(duì)單個(gè)等待事件的跟蹤,這樣是非常方便的。

 

2. 診斷事件:sql_monitor_test   

sql_monitor          event to force monitoring SQL statements

sql_monitor_test     event to test SQL monitoring

sql_monitor_test  看起像是基于sql_monitor的基礎(chǔ)再增加的功能,在原來(lái)就有的sql_monitor的作用是強(qiáng)制去監(jiān)控某些sql語(yǔ)句,而sql_monitor_test的作用是測(cè)試SQL的監(jiān)控。由于沒(méi)有其他相關(guān)的文檔說(shuō)明,這里只能進(jìn)行推算。

在此我能想到的應(yīng)該與Oracle 11G后新增SQL MONITORING功能,通過(guò)SQL MONITORING可以知道整個(gè)SQL執(zhí)行過(guò)程中消耗的哪一類(lèi)資源最多,以及一個(gè)正在執(zhí)行的SQL語(yǔ)句知當(dāng)前執(zhí)行到哪一步? 還可以輕松獲取語(yǔ)句的綁定變量、監(jiān)控索引的整個(gè)創(chuàng)建過(guò)程及創(chuàng)建完索引剩余的工作量。

查詢 sql_monitor 的用法:

SQL> oradebug doc event name  sql_monitor

sql_monitor: event to force monitoring SQL statements

Usage

-------

sql_monitor

   recursive       < false | true >,

   force           < false | true >

 

recursive :應(yīng)該是一并監(jiān)控sql的遞歸sql,force也即是強(qiáng)制的意思。

由于沒(méi)有更多詳細(xì)的文檔說(shuō)明,我只能借鑒sql_trace的用法,可以指定某個(gè)sql_id進(jìn)行設(shè)置。

sql_trace 用例語(yǔ)法:

ALTER session SET EVENTS 'sql_trace [sql: sql_id=56bs32ukywdsq] bind=true, wait=true';

sql_monitor 的借鑒語(yǔ)法

ALTER system SET EVENTS 'sql_monitor [sql:sql_id=56bs32ukywdsq] recursive = true , force = true';

oracle 12c 新增的診斷事件的初步嘗試

在數(shù)據(jù)庫(kù)中可以執(zhí)行成功,說(shuō)明語(yǔ)法應(yīng)該沒(méi)問(wèn)題,設(shè)置之后應(yīng)該就可以強(qiáng)制的針對(duì)一些sql進(jìn)行監(jiān)控了。

而在10G數(shù)據(jù)庫(kù)中執(zhí)行以上命令oracle是無(wú)法識(shí)別的應(yīng)該是不支持的。

oracle 12c 新增的診斷事件的初步嘗試

而再根據(jù)event的描述,sql_monitor_test僅僅是用于做一個(gè)SQL monitoring的測(cè)試。

sql_monitor_test 的用法:

SQL> oradebug doc event name  sql_monitor_test

 

sql_monitor_test: event to test  SQL monitoring

 

Usage

-------

sql_monitor_test

   level           <ub4>

 

按照以上,其開(kāi)啟診斷事件可以通過(guò)以下命令。

ALTER system SET EVENTS ' sql_monitor_test [sql:sql_id=f3yfg50ga0r8n]level 12';

oracle 12c 新增的診斷事件的初步嘗試

以上也是可以正常設(shè)置了,但可能受環(huán)境影響或者方式正確,沒(méi)有生成相關(guān)的信息,苦于無(wú)法找到更多的相關(guān)描述的資料,因此關(guān)于該新的功能仍需進(jìn)一步研究。

 

 

3. 診斷事件:fault

Event used to inject  fault  in  RDBMS  kernel

從描述看來(lái),是用來(lái)向RDBMS內(nèi)核注入故障,難道是通過(guò)設(shè)置事件使數(shù)據(jù)庫(kù)產(chǎn)生故障?我想可能性不大,目前看來(lái)也無(wú)法真正了解其真正的用途,再擔(dān)當(dāng)描述來(lái)看不應(yīng)該是屬于追蹤作用,也許是在某些特殊場(chǎng)景下規(guī)避某些問(wèn)題。

而其使用方法也是進(jìn)行需要設(shè)置event成 fault,我在自己的實(shí)驗(yàn)環(huán)境上進(jìn)行測(cè)試,建議千萬(wàn)不要在生成環(huán)境進(jìn)行操作。

SQL> oradebug doc event name fault

 

fault: Event used to inject fault in RDBMS kernel

 

Usage

-------

fault

 

ALTER system SET EVENTS  'fault’;

oracle 12c 新增的診斷事件的初步嘗試

執(zhí)行之后并無(wú)出現(xiàn)任何異常,沒(méi)有生成任何trace文件,alert日志也沒(méi)有告警,這更無(wú)法去探究其真正用途了。

4.        其他診斷事件

awrdiag[]     AWR Diagnostic Event

我較為感興趣的是awrdiag[],從描述來(lái)看是AWR相關(guān)的診斷事件,我猜想是否是對(duì)某些對(duì)象或操作做某些awr的診斷,但查看其使用語(yǔ)法:

SQL> oradebug doc event name awrdiag[]

Error: " awrdiag[] " not a known event/library name

Use <event_name>, <library_name> or <library_name>.<event_name>

    其參數(shù)內(nèi)容要使用<event_name>, <library_name>難道這里的event_name指的是診斷事件名,而library_name指的是其歸類(lèi)庫(kù),例如我們所看到的Events in library RDBMS,但我嘗試去使用語(yǔ)句去執(zhí)行后是錯(cuò)誤的。

oracle 12c 新增的診斷事件的初步嘗試

而報(bào)出ora-49115說(shuō)明event的目標(biāo)沒(méi)有指定,對(duì)于awrdiag[]目前還未找到的相關(guān)的其他說(shuō)明,因此就沒(méi)有繼續(xù)進(jìn)行分析。

三.小結(jié):

oracle 在12c 版本新增不上新的特性,同時(shí)也對(duì)原來(lái)的某些功能進(jìn)行改進(jìn)添加。實(shí)際上,某些oracle診斷事件的功能一般都只在某些極端的情況下才使用,oracle對(duì)此部分的功能沒(méi)有公開(kāi)更多的說(shuō)明,我們只能憑著嘗試的角度去了解它們,實(shí)際某些新增的功能具有很大的意義,從此次對(duì)oracle 12c 新增一些的診斷事件的初步了解過(guò)程中,發(fā)現(xiàn)wait_event[] 事件對(duì)我們來(lái)說(shuō)作用較大,特別是在遇到某些較為疑難的的等待事件問(wèn)題上。


網(wǎng)站標(biāo)題:oracle12c新增的診斷事件的初步嘗試-創(chuàng)新互聯(lián)
鏈接URL:http://www.rwnh.cn/article6/dosiig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站定制開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)動(dòng)態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)
乌海市| 贵港市| 德庆县| 鄂州市| 遵义市| 土默特左旗| 南靖县| 泊头市| 清新县| 大埔县| 离岛区| 唐海县| 秭归县| 崇信县| 丰宁| 开化县| 横山县| 安康市| 弋阳县| 突泉县| 永福县| 新宁县| 历史| 利辛县| 宾川县| 安阳县| 河西区| 华容县| 阜城县| 岳池县| 临江市| 梧州市| 泸州市| 弥渡县| 深圳市| 民丰县| 商水县| 荥阳市| 灵武市| 灵川县| 康马县|