Wikipedia

Search results

Tuesday 14 October 2014

How to find table DML locks and remove those locks

SQL> set linesize 1500
SQL> set pagesize 500
SQL> select * from dba_dml_locks;

SESSION_ID OWNER                          NAME                           MODE_HELD     MODE_REQUESTE LAST_CONVERT BLOCKING_OTHERS
---------- ------------------------------ ------------------------------ ------------- ------------- ------------ ----------------------------------------
        40 APPLSYS                        FND_CONCURRENT_REQUESTS        Row-X (SX)    None                    45 Not Blocking
       558 AP                             AP_INVOICES_ALL                Row-X (SX)    None                    29 Not Blocking
       676 APPS                           XXICAR_EMP_QUAL_STG            Row-X (SX)    None                   712 Not Blocking
       989 APPLSYS                        AQ$_WF_JAVA_DEFERRED_T         Row-X (SX)    None                   186 Not Blocking
       989 APPLSYS                        AQ$_WF_JAVA_DEFERRED_H         Row-X (SX)    None                   186 Not Blocking
       989 APPLSYS                        AQ$_WF_JAVA_DEFERRED_I         Row-X (SX)    None                   186 Not Blocking
       989 APPLSYS                        WF_JAVA_DEFERRED               Row-X (SX)    None                   186 Not Blocking
      1211 APPLSYS                        FND_CONCURRENT_QUEUES          Row-X (SX)    None                    18 Not Blocking

8 rows selected.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
       558      64621
       676       5315
       989       8413
      1211      30149

SQL> alter system kill session '558,64621';

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
        40         55
       676       5315
       989       8413
      1211      30149

SQL>  alter system kill session '40,55' immediate;

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
       319      63245
       676       5315
       989       8413
      1211      30149

SQL> alter system kill session '319,63245';

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
       676       5315
       989       8413
      1211      30149

SQL> alter system kill session '676,5315' immediate;

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
       989       8413
      1211      30149

SQL> alter system kill session '989,8413' immediate;

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
      1211      30149

SQL> alter system kill session '1211,30149' immediate;

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
        40         63

SQL> alter system kill session '40,63';

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

       SID    SERIAL#
---------- ----------
       554      17471

SQL> alter system kill session '554,17471' immediate;

System altered.

SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SESSION_ID FROM DBA_DML_LOCKS);

no rows selected

Finally we have removed all those DML locks successfully... :)



No comments:

Post a Comment