久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫中如何使用dbms

148次閱讀
沒有評論

共計 5336 個字符,預計需要花費 14 分鐘才能閱讀完成。

行業(yè)資訊    
數(shù)據(jù)庫    
關(guān)系型數(shù)據(jù)庫    
數(shù)據(jù)庫中如何使用 dbms_monitor 跟蹤多個會話,service_name,sid 等

這篇文章主要為大家展示了“數(shù)據(jù)庫中如何使用 dbms_monitor 跟蹤多個會話,service_name,sid 等”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學習一下“數(shù)據(jù)庫中如何使用 dbms_monitor 跟蹤多個會話,service_name,sid 等”這篇文章吧。

概述

具有連接池或共享服務器的多層環(huán)境中,一個會話可以跨越多個進程,甚至跨越多個實例。DBMS_MONITOR 是在 Oracle
10g 中引入的內(nèi)置的程序包,通過該程序包可以跟蹤從客戶機到中間層、再到后端數(shù)據(jù)庫的任何用戶的會話。由于每個會話都會產(chǎn)生獨立的 trace 文件,因而
可以較為容易地標識創(chuàng)建大量工作量的特定用戶。DBMS_MONITOR 取代了傳統(tǒng)的跟蹤工具,例如 DBMS_SUPPORT。需要具有 DBA 角色才可以使用 DBMS_MONITOR。
端對端的應用程序跟蹤可以基于如下:
會話(SID):基于會話 ID(SID)和序列號。
客戶端標識符 (client_identifier):允許跨越多個會話設置跟蹤?;诘卿?ID 指定終端用戶。使用 DBMS_SESSION.SET_IDENTIFIER 過程設置該值。
實例 (INST_NAME):基于實例名指定給定的實例。
服務名 (SERVICE_NAME):指定一組相關(guān)的應用程序。使用 DBMS_SERVICE.CREATE_SERVICE 過程設置該值。
模塊名 (MODULE):開發(fā)人員在其應用程序代碼中使用 DBMS_APPLICATION_INFO.SET_MODULE 過程設置該值。使用該名稱表示執(zhí)行的模塊或代碼。
操作名(ACTION):開發(fā)人員在其應用程序代碼中使用 DBMS_APPLICATION_INFO.SET_ACTION 過程設置該值。使用該名稱表示模塊執(zhí)行的操作。

也可以執(zhí)行如下 sql:
select sid,serial#,SERVICE_NAME,MODULE,ACTION,client_identifier from v$session;

最后 3 個跟蹤選項在層次上關(guān)聯(lián);不可以在沒有指定模塊名和服務名的情況下就指定操作名,但是可以只指定服務名,或者只指定服務名和模塊名。

1. 基于會話 ID 和序列號設置跟蹤 (serial# 可以加,也可以不加)
為了基于會話 ID 和序列號設置跟蹤,首先確定需要跟蹤的會話的 SID 和序列號:
SQL COL PROGRAM FOR A30
SQL COL EVENT FOR A30
SQL select sid,serial#,username,program,status,type,event,blocking_session from v$session where type= USER

  SID  SERIAL# USERNAME  PROGRAM  STATUS  TYPE  EVENT  BLOCKING_SESSION
———- ———- —————————— —————————— ——– ———- —————————— —————-
  1  5 SYS  sqlplus@wang (TNS V1-V3)  ACTIVE  USER  SQL*Net message to client
  37  123 SYS  plsqldev.exe  INACTIVE USER  SQL*Net message from client
  38  133 SYS  plsqldev.exe  INACTIVE USER  SQL*Net message from client
  39  215 SYS  plsqldev.exe  INACTIVE USER  SQL*Net message from client
  41  79 HR  sqlplus.exe  INACTIVE USER  SQL*Net message from client

為了啟用跟蹤,可執(zhí)行如下語句:
第三個參數(shù)用于等待(默認為 TRUE),第四個參數(shù)用于綁定變量(默認為 FALSE)。
SQL exec dbms_monitor.session_trace_enable(1,5,TRUE,TRUE);

PL/SQL procedure successfully completed.

SQL select sid from v$mystat where rownum=1;

  SID
———-
  1

SQL select count(*) from hr.jobs;

  COUNT(*)
———-
  19

為了關(guān)閉跟蹤,可執(zhí)行如下語句:
SQL exec dbms_monitor.session_trace_disable(1,5);

PL/SQL procedure successfully completed.

– 查詢 trace 文件位置:
select c.value || / || d.instance_name || _ora_ || a.spid || .trc trace
  FROM v$process a, v$session b, v$parameter c, v$instance d
 WHERE a.addr = b.paddr
  AND b.audsid = userenv(sessionid)
  AND c.name = user_dump_dest

執(zhí)行如下:
SQL select c.value || / || d.instance_name || _ora_ || a.spid || .trc trace
  2  FROM v$process a, v$session b, v$parameter c, v$instance d
  3  WHERE a.addr = b.paddr
  4  AND b.audsid = userenv(sessionid)
  5  AND c.name = user_dump_dest

TRACE
——————————————————————
/u01/app/oracle/diag/rdbms/dbdb/DBdb/trace/DBdb_ora_5994.trc

使用 vi 工具查看,/dbms_monitor.session_trace 按鍵 n /N

為了跟蹤當前的會話,可設置 SID 和 SERIAL# 為空:
SQL exec dbms_monitor.session_trace_enable(null,null);

2. 基于客戶端標識符設置跟蹤
為了基于表示用戶的客戶端標識符設置跟蹤,可運行如下語句:
SQL exec dbms_session.set_identifier(bryan id

或者執(zhí)行執(zhí)行如下 sql:
select sid,serial#,username,client_identifier from v$session;

為了驗證客戶端標識符,可執(zhí)行如下語句:
select sid,serial#,username,client_identifier from v$session;

  SID  SERIAL# USERNAME  CLIENT_IDENTIFIER
———- ———- —————————— —————————————————————-
  1  5 SYS  bryan id

現(xiàn)在就可以為這個客戶端標識符設置跟蹤:第二個參數(shù)用于等待(默認為 TRUE),第三個參數(shù)用于綁定變量(默認為 FALSE)。
SQL   exec dbms_monitor.client_id_trace_enable(bryan id ,true,true);

PL/SQL procedure successfully completed.

– 執(zhí)行一些操作:
SQL create table a as select * from dba_objects where rownum

Table created.

SQL insert into a select * from a;

9 rows created.

SQL commit;

Commit complete.

SQL select count(*) from a;

  COUNT(*)
———-
  18

為了禁用這個客戶端標識符跟蹤,可執(zhí)行如下語句:
SQL exec dbms_monitor.client_id_trace_disable(bryan id

PL/SQL procedure successfully completed.

– 查詢 trace 文件位置:
select c.value || / || d.instance_name || _ora_ || a.spid || .trc trace
  FROM v$process a, v$session b, v$parameter c, v$instance d
 WHERE a.addr = b.paddr
  AND b.audsid = userenv(sessionid)
  AND c.name = user_dump_dest

SQL select c.value || / || d.instance_name || _ora_ || a.spid || .trc trace
  2  FROM v$process a, v$session b, v$parameter c, v$instance d
  3  WHERE a.addr = b.paddr
  4  AND b.audsid = userenv(sessionid)
  5  AND c.name = user_dump_dest

TRACE
———————————————————————–
/u01/app/oracle/diag/rdbms/dbdb/DBdb/trace/DBdb_ora_5994.trc

3. 設置服務名 / 模塊名 / 操作名的跟蹤
為了使用操作名,必須有對應的模塊名和服務名。為了使用模塊名,必須有服務名。對全局范圍內(nèi)針對某個數(shù)據(jù)庫的服務名、模塊名和操作名的給定組合啟用跟蹤,除非為過程指定了實例名。服務名由用于連接到服務的連接字符串確定。
Oracle
數(shù)據(jù)庫表示為作為服務的客戶端;也就是說,數(shù)據(jù)庫代表客戶端執(zhí)行相應的操作。數(shù)據(jù)庫可以有一個或多個與其關(guān)聯(lián)的服務。例如,可以有一個數(shù)據(jù)庫,該數(shù)據(jù)庫帶
有兩個用于 Web 客戶端的不同服務:用于購買書籍的客戶端的 book.us.acme.com,以及用于購買軟件的客戶端的
soft.us.acme.com。在該示例中,數(shù)據(jù)庫名是 sales.acme.com,因此服務名并不基于數(shù)據(jù)庫名。服務名由初始參數(shù)文件中的
SERVICE_NAMES 參數(shù)指定。服務名默認為由數(shù)據(jù)庫名 (DB_NAME 參數(shù)) 和域名 (DB_DOMAIN 參數(shù)) 組成的全局數(shù)據(jù)庫名。

– 使用如下失去了查詢服務名 / 模塊名 / 操作名:
select sid,serial#,SERVICE_NAME,MODULE,ACTION,client_identifier from v$session;

為了啟用服務名的跟蹤,可執(zhí)行如下語句:
SQL exec dbms_monitor.serv_mod_act_trace_enable(service_name= DBdb
這將跟蹤服務名為 DBdb 的所有會話。

為了啟用服務名、模塊名和操作名組合的跟蹤,可執(zhí)行如下語句:
SQL
exec dbms_monitor.serv_mod_act_trace_enable(service_name= ebk2 ,
module_name= salary_update , action_name= insert_item

為了禁用前面代碼中的跟蹤,可使用過程 SERV_MOD_ACT_TRACE_DISABLE,如下說是:
SQL
exec dbms_monitor.serv_mod_act_trace_disable(service_name= ebk2 ,
module_name= salary_update , action_name= insert_item

為了跟蹤整個數(shù)據(jù)庫或?qū)嵗蓤?zhí)行如下語句(不推薦這樣操作):
execute DBMS_MONITOR.DATABASE_TRACE_ENABLE(waits = TRUE, binds = FALSE, instance_name = ebk1
execute DBMS_MONITOR.DATABASE_TRACE_DISABLE(instance_name = ebk1);

注意:使用 DBMS_MONITOR 時,請確保在完成操作時禁用跟蹤;否則,將會跟蹤滿足指定條件的每個會話。

以上是“數(shù)據(jù)庫中如何使用 dbms_monitor 跟蹤多個會話,service_name,sid 等”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-24發(fā)表,共計5336字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 岳普湖县| 大兴区| 沅陵县| 温宿县| 石台县| 双城市| 左云县| 通渭县| 兴义市| 虎林市| 甘洛县| 团风县| 磐安县| 雅江县| 湘西| 五华县| 武威市| 象山县| 乌鲁木齐县| 津市市| 环江| 若羌县| 镇宁| 花莲市| 石泉县| 香港| 突泉县| 凤山县| 平阴县| 安乡县| 青浦区| 阳原县| 垣曲县| 叶城县| 桂平市| 定州市| 称多县| 常熟市| 大理市| 土默特右旗| 华亭县|