1-Before 11g, you can mark the tablespace read-only for the duration of the alter table
Alter Tablespace Test read only
2-in 11g you can mark table read-only :
Alter table test Read only
And You can Check Read Only Tables By :
Select table_name, read_only from dba_tablesWhere owner = ‘myowner’ and table_name = ‘mytab’;
Just To Make Sure After You Alter table to Read Only prevent Update by Create Trigger
create or replace triggertabl_read_onlybeforeinsert or update or deleteon mytabbeginraise_application_error (-999999, ‘Table Is Read Only Now’);end; /
3- You Can Check if there’s Lock on your Database :
SQL> set linesize 130SQL> set pages 100SQL> col username format a20SQL> col sess_id format a10SQL> col object format a25SQL> col mode_held format a10SQL> select oracle_username || ‘ (‘ || s.osuser || ‘)’ username, s.sid || ‘,’ || s.serial# sess_id, owner || ‘.’ || object_name object, object_type, decode( l.block, 0, ‘Not Blocking’, 1, ‘Blocking’, 2, ‘Global’) status, decode(v.locked_mode, 0, ‘None’, 1, ‘Null’, 2, ‘Row-S (SS)’, 3, ‘Row-X (SX)’, 4, ‘Share’, 5, ‘S/Row-X (SSX)’, 6, ‘Exclusive’, TO_CHAR(lmode)) mode_heldfrom v$locked_object v, dba_objects d, v$lock l, v$session swhere v.object_id = d.object_idand v.object_id = l.id1and v.session_id = s.sidorder by oracle_username, session_id/
Use
SQL> alter system kill session ‘SID,Serial# ‘;
Enjoy
OSama Mustafa