日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

layer opcode oracle,ORACLE 事件追踪

發布時間:2023/12/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 layer opcode oracle,ORACLE 事件追踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ORACLE 事件跟蹤

跟蹤文件

Oracle跟蹤文件分為三種類型:

1:警告日志文件。記錄了數據庫啟動、運行、關閉時的活動情況。當數據庫出現問題時,首先要查看該文件,文件名為alert_sid.log

2:后臺跟蹤文件。記錄了oracle后臺進程的運行狀況,名稱為sid_processname_processid.trc,存儲目錄為BACKGROUND_dump_dest

3:用戶跟蹤文件。記錄了連接到數據庫的用戶進程的運行信息,名稱為SID_ORA_PROCESSID.TRC,存儲目錄為USER_DUMP_DEST.

在oracle11g中,這三種文件位于同一目錄下:

跟蹤事件

設置跟蹤事件,會導致oracle將與該事件有關的信息轉儲到跟蹤文件中。依據設置事件的方式,可以將跟蹤事件分為2類:PROCESS-EVENT(通過初始化參數文件設置的事件)、SESSION-EVENT(通過alter session set events或者alter system set events設置的時間)。要使PROCESS-EVENT事件生效,必須重新啟動數據庫實例,PROCESS-EVENT事件會影響連接到數據庫的每一個用戶進程。在參數文件中設置多個事件可以采用“:”分隔符,如event="event1:event2:event3"。也可以依次設置多個event,如:

event="event1"

event="event2" (注意,在event1和event2之間不要存在其他參數,否則只有最后的event即event2生效)。

對不同的跟蹤事件,oracle會產生不同的行為,根據行為的不同,我們大致可以將跟蹤事件分為4類:

1.轉儲oracle中的某部分內容,如數據塊、控制文件內容等。轉儲活動會在收到跟蹤事件命令的同時執行。這類事件不可以通過參數文件進行設置。

2.跟蹤錯誤信息。設置這類事件,oracle會將特定錯誤的堆棧信息轉儲到跟蹤文件中。

3.更改oracle的執行路徑。這類事件會影響oracle代碼段的執行路徑,例如10269事件,會促使smon進程停止對free-space的合并操作。

4.跟蹤進程的相關信息。例如10046事件和10053事件。該類事件會將進程上下文中的特定信息轉儲到跟蹤文件中。

語法格式

altersystem|sessionsetevents?‘[eventnumber|immediate]trace?name?eventname[forever][,level?levelnumber]:??…….’

通過:符號,可以連續設置多個事件,也可以通過連續使用alter session set events來設置多個事件。

格式說明:eventnumber指觸發dump的事件號,事件號可以是Oracle錯誤號或oralce內部事件號,內部事件號在10000到10999之間,不能與immediate關鍵字同用;immediate關鍵字表示命令發出后,立即將指定的結構dump到跟蹤文件中,這個關鍵字只用在alter

session語句中,并且不能與eventnumber、forever關鍵字同用。trace name是關鍵字。eventname指事件名稱(見后面),即要進行dump的實際結構名。若eventname為context,則指根據內部事件號進行跟蹤。forever關鍵字表示事件在實例或會話的周期內保持有效狀態,不能與immediate同用。level為事件級別關鍵字。但在dump錯誤棧(errorstack)時不存在級別。levelnumber表示事件級別號,一般從1到10,1表示只dump結構頭部信息,10表示dump結構的所有信息。

對于alter session設置的事件,僅僅只對當前session有效。對于alter system 設置的事件,除對當前session有效外,對新登錄的session同樣有效,但是對于alter system命令執行之前打開的session是無效的。

IMMEDIATE相關的事件

一.Memory?Dumps

1).Global?Area

Alter?SESSION?SET?EVENTS?'immediate?trace?name?global_area?level?n';

1?包含PGA

2?包含SGA

4?包含UGA

8?包含indrect?memory

2).Library?Cache

Alter?SESSION?SET?EVENTS?'immediate?trace?name?library_cache?level?n';

1?library?cache統計信息

2?包含hash?table?histogram

3?包含object?handle

4?包含object結構(Heap?0)

3).Row?Cache

Alter?SESSION?SET?EVENTS?'immediate?trace?name?row_cache?level?n';

1?row?cache統計信息

2?包含hash?table?histogram

8?包含object結構

4).Buffers

Alter?SESSION?SET?EVENTS?'immediate?trace?name?buffers?level?n';

1?buffer?header

2?level?1?+?block?header

3?level?2?+?block?contents

4?level?1?+?hash?chain

5?level?2?+?hash?chain

6?level?3?+?hash?chain

8?level?4?+?users/waiters

9?level?5?+?users/waiters

10?level?6?+?users/waiters

5).Buffer

Alter?SESSION?SET?EVENTS?'immediate?trace?name?buffer?level?n';

n為某個指定block的rdba,該命令可以轉儲某個block在buffer中的所有版本。

6).Heap

Alter?SESSION?SET?EVENTS?'immediate?trace?name?heapdump?level?level';

1?PGA摘要

2?SGA摘要

4?UGA摘要

8?Current?call(CGA)摘要

16?User?call(CGA)摘要

32?Large?call(LGA)摘要

1025?PGA內容

2050?SGA內容

4100?UGA內容

8200?Current?call內容

16400?User?call內容

32800?Large?call內容

7).Sub?Heap

oracle?9.0.1版本之前

Alter?SESSION?SET?EVENTS?'immediate?trace?name?heapdump_addr?level?n';

若n為subheap的地址,轉儲的是subheap的摘要信息

若n為subheap的地址+1,轉儲的則是subheap的內容

oracle?9.2.0版本之后

Alter?SESSION?SET?EVENTS?'immediate?trace?name?heapdump_addr?level?n,?addr?m';

其中m為subheap的地址

n為1轉儲subheap的摘要,n為2轉儲subheap的內容

8).Process?State

Alter?SESSION?SET?EVENTS?'immediate?trace?name?processstate?level?n';

9).System?State

Alter?SESSION?SET?EVENTS?'immediate?trace?name?systemstate?level?n';

10).Error?State

Alter?SESSION?SET?EVENTS?'immediate?trace?name?errorstack?level?n';

0?Error?stack

1?level?0?+?function?call?stack

2?level?1?+?process?state

3?level?2?+?context?area

11).Hang?Analysis

Alter?SESSION?SET?EVENTS?'immediate?trace?name?hanganalyze?level?n';

12).Work?Area

Alter?SESSION?SET?EVENTS?'immediate?trace?name?workareatab_dump?level?n';

1?SGA信息

2?Workarea?Table摘要信息

3?Workarea?Table詳細信息

13).Latches

Alter?SESSION?SET?EVENTS?'immediate?trace?name?latches?level?n';

1?latch信息

2?統計信息

14).Events

Alter?SESSION?SET?EVENTS?'immediate?trace?name?events?level?n';

1?session

2?process

3?system

15).Locks

Alter?SESSION?SET?EVENTS?'immediate?trace?name?locks?level?n';

16).Shared?Server?Process

Alter?SESSION?SET?EVENTS?'immediate?trace?name?shared_server_state?level?n';

n取值為1~14

17).Background?Messages

Alter?SESSION?SET?EVENTS?'immediate?trace?name?bg_messages?level?n';

n為pid+1

二.File?Dumps

1).Block

oracle?7之前

Alter?SESSION?SET?EVENTS?'immediate?trace?name?blockdump?level?n';

n為block的rdba

oracle8以后

Alter?SYSTEM?DUMP?DATAFILE?file#?BLOCK?block#;

Alter?SYSTEM?DUMP?DATAFILE?file#

BLOCK?MIN?minimum_block#

BLOCK?MAX?maximum_block#

2).Tree?Dump???查看索引的結構

Alter?SESSION?SET?EVENTS?'immediate?trace?name?treedump?level?n';

n為object_id

object_id可以從select?object_id?from?user_objects?where?object_name?=?'索引的名字'得到。

3).Undo?Segment?Header??查看回滾段頭部信息

Alter?SYSTEM?DUMP?UNDO_HEADER?'segment_name';

4).Undo?for?a?Transaction

Alter?SYSTEM?DUMP?UNDO?BLOCK?'segment_name'?XID?xidusn?xidslot?xidsqn;

5).File?Header

Alter?SESSION?SET?EVENTS?'immediate?trace?name?file_hdrs?level?n';

1 控制文件中的文件頭信息

2?level?1?+ 通用文件頭信息

3?level?2?+?數據完整文件頭信息

10?level?3

6).Control?file

Alter?SESSION?SET?EVENTS?'immediate?trace?name?controlf?level?n';

1??控制文件中的文件頭信息

2?level?1?+?數據庫信息+檢查點信息

3?level?2?+?可重用節信息

10?level?3

7).Redo?log?Header

Alter?SESSION?SET?EVENTS?'immediate?trace?name?redohdr?level?n';

1?控制文件中的redo?log信息

2?level?1?+ 通用文件頭信息

3?level?2?+ 完整日志文件頭信息

10?level?3

8).Redo?log

Alter?SYSTEM?DUMP?LOGFILE?'FileName';

Alter?SYSTEM?DUMP?LOGFILE?'FileName'

SCN?MIN?MinimumSCN

SCN?MAX?MaximumSCN

TIME?MIN?MinimumTime

TIME?MAX?MaximumTime

LAYER?Layer

OPCODE?Opcode

DBA?MIN?FileNumber?.?BlockNumber

DBA?MAX?FileNumber?.?BlockNumber

RBA?MIN?LogFileSequenceNumber?.?BlockNumber

RBA?MAX?LogFileSequenceNumber?.?BlockNumber;

其中time?=?(((((yyyy?-?1988))?*?12?+?mm?-?1)?*?31?+?dd?-?1)?*?24?+?hh)?*?60?+?mi)?*?60?+?ss;

詳細內容請看:http://blog.csdn.net/yidian815/article/details/12568027

9).Loghist

Alter?SESSION?SET?EVENTS?'immediate?trace?name?loghist?level?n';

n=1?dump控制文件中最早和最遲的日志歷史項

n>1 dump 2^n個日志歷史項

獲取診斷事件號

大部分的診斷事件的數值都是在10000至10999范圍內,使用如下的腳本可以查看到所有的診斷事件:

SET SERVEROUTPUT ON

DECLARE

err_msg VARCHAR2(120);

BEGIN

dbms_output.enable (1000000);

FOR err_num IN 10000..10999

LOOP

err_msg := SQLERRM (-err_num);

IF err_msg NOT LIKE '%Message '||err_num||' not found%' THEN

dbms_output.put_line (err_msg);

END IF;

END LOOP;

END;

相關的PLSQL包

DBMS_MONITOR包

Subprogram

Description

CLIENT_ID_STAT_DISABLE

Procedure

Disables statistic gathering previously enabled for a given Client Identifier

CLIENT_ID_STAT_ENABLE

Procedure

Enables statistic gathering for a given Client Identifier

CLIENT_ID_TRACE_DISABLE

Procedure

Disables the trace previously enabled for a given Client Identifier globally for the database

CLIENT_ID_TRACE_ENABLE

Procedure

Enables the trace for a given Client Identifier globally for the database

DATABASE_TRACE_DISABLE

Procedure

Disables SQL trace for the whole database or a specific instance

DATABASE_TRACE_ENABLE

Procedure

Enables SQL trace for the whole database or a specific instance

SERV_MOD_ACT_STAT_DISABLE

Procedure

Disables statistic gathering enabled for a given combination of Service Name,?MODULE?and?ACTION

SERV_MOD_ACT_STAT_ENABLE

Procedure

Enables statistic gathering for a given combination of Service Name,?MODULE?and?ACTION

SERV_MOD_ACT_TRACE_DISABLE

Procedure

Disables the trace for ALL enabled instances for a or a given combination of Service Name,?MODULEand?ACTION?name globally

SERV_MOD_ACT_TRACE_ENABLE

Procedure

Enables SQL tracing for a given combination of Service Name,?MODULE?and?ACTION?globally unless aninstance_name?is specified

SESSION_TRACE_DISABLE

Procedure

Disables the previously enabled trace for a given database session identifier (SID) on the local instance

SESSION_TRACE_ENABLE Procedure

Enables the trace for a given database session identifier (SID) on the local instance

與該包相關的還包括幾個視圖:v$client_stats\V$SERV_MOD_ACT_STATS。

client_id 可以通過DBMS_SESSION.SET_IDENTIFIER來設置。

DBMS_SYSTEM包

關于該包的詳細信息,請參照:http://blog.csdn.net/yidian815/article/details/12580659

另外,我們還可以使用ORADEBUG工具。

總結

以上是生活随笔為你收集整理的layer opcode oracle,ORACLE 事件追踪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。