A2oz

How to Unlock Table Locks in Oracle?

Published in Oracle Database 2 mins read

To unlock a table lock in Oracle, you need to identify the session holding the lock and then terminate it. Here's how you can do it:

Identifying the Locking Session

  1. Use V$LOCK View: This view provides information about locks in the database. You can query it to find the session holding the lock on your table.

    SELECT s.sid, s.serial#, s.machine, l.id1, l.id2, l.type
    FROM v$lock l, v$session s
    WHERE l.sid = s.sid
    AND l.type = 'TX' 
    AND l.id1 = <table_owner>
    AND l.id2 = <table_name>;

    Replace <table_owner> and <table_name> with the actual owner and name of your table.

  2. Use V$SQL View: This view shows the SQL statement associated with the session holding the lock. You can use this to identify the specific query that's causing the lock.

    SELECT sql_text
    FROM v$sql
    WHERE sql_id = '<sql_id>';

    Replace <sql_id> with the sql_id obtained from the previous query.

Terminating the Locking Session

  1. Use ALTER SYSTEM KILL SESSION: Once you have the sid and serial# of the locking session, you can use this command to terminate the session.

    ALTER SYSTEM KILL SESSION '<sid>,<serial#>';

    This will immediately terminate the session and release the lock on the table.

  2. Use ALTER SYSTEM KILL QUERY: If you want to terminate the specific query that's causing the lock without killing the entire session, you can use this command.

    ALTER SYSTEM KILL QUERY '<sql_id>';

    This will only terminate the query and release the lock, leaving the session running.

Practical Insights

  • Use with Caution: Be careful when terminating sessions. Ensure you know what you're doing, as it could potentially disrupt ongoing transactions.
  • Check for Deadlocks: Before terminating sessions, check for deadlocks. This happens when two or more sessions are waiting for each other to release locks, leading to a standstill.
  • Consider Other Options: In some cases, you might need to use other techniques like session tracing or analyzing the SQL statement to understand the locking behavior and resolve the issue.

Related Articles