本文共 1127 字,大约阅读时间需要 3 分钟。
当尝试删除临时表空间TEMP_B时,会话被挂起,原因可能与表空间enqueue争用有关。以下是详细的分析和解决方案:
执行以下命令时会话挂起:
drop tablespace TEMP_B including contents and datafiles;
错误信息显示ORA-1013信号,具体发生在尝试删除TEMP_B时。
ORA-1013错误信号,提示在drop tablespace操作期间发生阻塞。enq: TS - contention,表明表空间数据段存在争用。enq: TS - contention。SMON TIMER事件,表明SMON在管理表空间时遇到问题。问题与已知的Bug 13028161有关,该bug指出删除临时表空间时,由于表空间enqueue争用导致会话挂起。虽然该bug已关闭,但在特定环境下可能仍然存在。
SELECT s.username, s.sid, s.serial#, t.contents, t.sql_address, t.extents, t.last_call_et FROM v$session s, v$tempseg_usage t WHERE s.saddr = t.session_addr;
ALTER SYSTEM KILL SESSION ', ' ';
CREATE TEMPORARY TABLESPACE NEW_TEMP_B DEFAULT;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE = NEW_TEMP_B;
SELECT username, default_temp_tablespace_name FROM dba_users;
DROP TABLESPACE TEMP_B INCLUDING CONTENTS AND DATAFILES;
通过以上步骤,可以成功删除旧的临时表空间,解决会话挂起问题。
转载地址:http://xljfk.baihongyu.com/