[20130226]跟蹤特定IP的sql語句.txt
[20130226]跟蹤特定IP的sql語句.txt
工作需要,跟蹤特定IP地址發出的sql語句.可惜我們生產系統是10g的,如果是11G支援trcsess可以合併trc檔案,再分析.
自己做一個測試看看.
http://space.itpub.net/267265/viewspace-754003
1.建立logon觸發器:
2.以scott,system使用者為例子來說明:
SQL> show parameter iden
--bbb.txt記錄的sql語句.
工作需要,跟蹤特定IP地址發出的sql語句.可惜我們生產系統是10g的,如果是11G支援trcsess可以合併trc檔案,再分析.
自己做一個測試看看.
http://space.itpub.net/267265/viewspace-754003
1.建立logon觸發器:
CREATE OR REPLACE TRIGGER SYS.on_logon_trigger
AFTER LOGON ON DATABASE
DECLARE
v_client_info v$session.client_info%TYPE;
v_sid v$session.SID%TYPE;
BEGIN
select SYS_CONTEXT ('userenv', 'ip_address') into v_client_info from dual ;
DBMS_APPLICATION_INFO.set_client_info (v_client_info);
--增加的程式碼
dbms_session.set_identifier(v_client_info);
EXECUTE IMMEDIATE 'alter session set tracefile_identifier = ''' || replace(nvl(v_client_info,'local'),'.','_')||'''';
END;
/
2.以scott,system使用者為例子來說明:
SQL> show parameter iden
NAME TYPE VALUE
------------------------------------ -------------------------- ---------------------
tracefile_identifier string 172_16_100_6
--在回話2執行如下:
exec dbms_monitor.client_id_trace_enable(client_id=>'172.16.100.6', waits=>true, binds=>true);
以scott使用者登入執行如下:
select count(*) from dept;
select * from emp where empno=7934;
以system使用者登入執行如下:
select count(*) from dba_objects ;
--在回話2執行如下:
exec dbms_monitor.client_id_trace_disable(client_id=>'172.16.100.6');
3. 檢查檔案:
$ cd /u01/app/oracle11g/diag/rdbms/test/test/trace
$ ls -l *172_16_100_6*.trc
-rw-r----- 1 oracle11g oinstall 27632 2013-02-27 12:00:19 test_ora_16793_172_16_100_6.trc
-rw-r----- 1 oracle11g oinstall 18808 2013-02-27 12:00:30 test_ora_16855_172_16_100_6.trc
--合併檔案.
$ trcsess utput=172_16_100_6.out clientid=172.16.100.6 *172_16_100_6.trc
$ tkprof trc1.out aaa.txt record=bbb.txt
$ cat bbb.txt
SELECT USER FROM DUAL ;
BEGIN DBMS_OUTPUT.DISABLE; END;
/
SELECT ATTRIBUTE,SCOPE,NUMERIC_VALUE,CHAR_VALUE,DATE_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('SQL*Plus') LIKE UPPER(PRODUCT)) AND (UPPER(USER) LIKE USERID) ;
SELECT CHAR_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('SQL*Plus') LIKE UPPER(PRODUCT)) AND ((UPPER(USER) LIKE USERID) OR (USERID = 'PUBLIC')) AND (UPPER(ATTRIBUTE) = 'ROLES') ;
BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); END;
/
SELECT DECODE('A','A','1','2') FROM DUAL ;
BEGIN DBMS_OUTPUT.ENABLE(1000000); END;
/
BEGIN DBMS_OUTPUT.DISABLE; END;
/
select count(*) from dept ;
select * from emp where empno=7934 ;
SELECT USER FROM DUAL ;
BEGIN DBMS_OUTPUT.DISABLE; END;
/
BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:1,NULL); END;
/
SELECT DECODE('A','A','1','2') FROM DUAL ;
BEGIN DBMS_OUTPUT.ENABLE(1000000); END;
/
BEGIN DBMS_OUTPUT.DISABLE; END;
/
select count(*) from dba_objects ;
--bbb.txt記錄的sql語句.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-754842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視.txtSQL
- phalcon:跟蹤sql語句SQL
- [20150527]跟蹤單個sql語句.txtSQL
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視2.txtSQL
- sqlplus 跟蹤sql語句SQL
- [20200424]跟蹤特定sql語句以及v$open_cursor檢視(再補充).txtSQL
- [20200422]跟蹤特定sql語句以及v$open_cursor檢視(補充).txtSQL
- mysql如何跟蹤執行的sql語句MySql
- [20160704]從跟蹤檔案抽取sql語句.txtSQL
- 使用10046跟蹤sql語句SQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- SQL效能的度量 - 語句級別的SQL跟蹤autotraceSQL
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL
- 【MySQL】如何對SQL語句進行跟蹤(trace)?MySql
- 依據錯誤號來跟蹤sql語句SQL
- [20131031]從跟蹤檔案中抽取sql語句.txtSQL
- oracle 使用者跟蹤 需要的sql語句總結OracleSQL
- [20200326]dbms_monitor跟蹤與SQL語句分析.txtSQL
- 跟蹤oracle特定報錯 errorstackOracleError
- [20210112]ashtop查詢特定表的SQL語句.txtSQL
- [20210113]ashtop查詢特定表的SQL語句2.txtSQL
- 透過ORADEBUG運用10046事件跟蹤SQL語句事件SQL
- 0624使用10035事件跟蹤無法執行的sql語句事件SQL
- SQL 的跟蹤方法traceSQL
- [20131122]跟蹤sql profile的操作.txtSQL
- 跟蹤 sql 的trace檔案SQL
- 跟蹤使用者的SQLSQL
- 追蹤應用程式所執行的sql語句SQL
- [20150403]修正sql語句.txtSQL
- SQLServer進行SQL跟蹤SQLServer
- 會話級SQL跟蹤會話SQL
- 只對某個特定的SQL語句開啟10046 traceSQL
- 如何使用iPhone限制IP地址跟蹤iPhone
- [20170103]sql語句過載.txtSQL
- [20141013]奇怪的sql語句.txtSQL
- [20240320]空格與sqlpus的sql語句.txtSQL
- [20160816]使用oradebug跟蹤sql net.txtSQL
- Oracle資料庫跟蹤SQLOracle資料庫SQL