Home > lock, oracle > 查找holder的操作

查找holder的操作

工作中经常遇到锁的问题,但是具体holder到底做了那些操作比较困难,这里给出一个使用logmnr查找holder操作的过程
查找holder做过那些操作
SELECT decode(request,0,’holder:’,'waiter:’)||sid sid,id1,id2,lmode,request,type

FROM v$lock

WHERE (id1,id2,type) IN

(SELECT id1,id2,type

FROM v$lock

WHERE request>0)

ORDER BY id1,request;
SID ID1 ID2 LMODE REQUEST TYPE

holder:143 65542 1645 6 0 TX

waiter:139 65542 1645 0 6 TX

waiter:142 65542 1645 0 6 TX

waiter:144 65542 1645 0 6 TX
假设出现了上述锁,针对这种情况,做下列操作
SQL> select group#,thread#,status from v$Log;
GROUP# THREAD# STATUS

———- ———- —————-

1 1 CURRENT

2 1 INACTIVE

3 1 ACTIVE

SQL> alter system switch logfile;

SQL> select group#,thread#,status from v$Log;
GROUP# THREAD# STATUS

———- ———- —————-

1 1 ACTIVE

2 1 CURRENT

3 1 INACTIVE
SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination c:archstdchicago

Oldest online log sequence 318

Next log sequence to archive 320

Current log sequence 320

 

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => ‘C:archchicagoARC00319_0664534646.001′,OPTIONS => dbms_logmnr.NEW);

execute DBMS_LOGMNR.START_LOGMNR(options =>dbms_logmnr.dict_from_online_catalog);

create table system.test_logmnr as select * from v$logmnr_contents;

execute DBMS_LOGMNR.END_LOGMNR;
select * from system.test_logmnr t where t.session# =143;

SCN CSCN TIMESTAMP COMMIT_TIMESTAMP THREAD# LOG_ID XIDUSN XIDSLT XIDSQN PXIDUSN PXIDSLT PXIDSQN RBASQN RBABLK RBABYTE UBAFIL UBABLK UBAREC UBASQN ABS_FILE# REL_FILE# DATA_BLK# DATA_OBJ# DATA_OBJD# SEG_OWNER SEG_NAME TABLE_NAME SEG_TYPE SEG_TYPE_NAME TABLE_SPACE ROW_ID SESSION# SERIAL# USERNAME SESSION_INFO TX_NAME ROLLBACK OPERATION OPERATION_CODE SQL_REDO SQL_UNDO RS_ID SEQUENCE# SSN CSF INFO STATUS REDO_VALUE UNDO_VALUE SQL_COLUMN_TYPE SQL_COLUMN_NAME REDO_LENGTH REDO_OFFSET UNDO_LENGTH UNDO_OFFSET DATA_OBJV# SAFE_RESUME_SCN XID PXID AUDIT_SESSIONID

4198405 2009-1-7 17:33:52 1 319 1 6 1645 1 6 1645 319 1569 16 2 0 0 0 0 0 0 0 0 0 AAAAAAAAAAAAAAAAAA 143 55 TEST login_username=TEST client_info= OS_username=pepeli-cnpepeli Machine_name=CN-ORACLEpepeli-cn OS_terminal=pepeli-cn OS_process_id=4324:3100 OS_program_name=plsqldev.exe 0 START 6 set transaction read write; 0x00013f.00000621.0010 1 0 0 0 4396 4397 0 0 0 0 0 010006006D060000 010006006D060000 461199

4198405 2009-1-7 17:33:52 1 319 1 6 1645 1 6 1645 319 1569 16 2 0 0 0 2 4 20 52197 52197 TEST PERSON PERSON 2 TABLE USERS AAAMvlAAEAAAAAUAAA 143 55 TEST login_username=TEST client_info= OS_username=pepeli-cnpepeli Machine_name=CN-ORACLEpepeli-cn OS_terminal=pepeli-cn OS_process_id=4324:3100 OS_program_name=plsqldev.exe 0 UPDATE 3 update “TEST”.”PERSON” set “ID” = ’201′ where “ID” = ’1′ and “NAME” = ‘aa’ and ROWID = ‘AAAMvlAAEAAAAAUAAA’; update “TEST”.”PERSON” set “ID” = ’1′ where “ID” = ’201′ and “NAME” = ‘aa’ and ROWID = ‘AAAMvlAAEAAAAAUAAA’; 0x00013f.00000621.0010 1 0 0 0 4398 4399 0 0 0 0 1 010006006D060000 010006006D060000 461199

Categories: lock, oracle Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin