1.描述
问题描述:删除临时表空间时,会话Hangs挂起
SQL> drop tablespace TEMP_B including contents and datafiles; 
2.故障诊断思路
2.1查看alert日志:
Sun Apr  :: 

ORA- signalled during: drop tablespace TEMP_B including contents and datafiles...

Sun Apr  :: 

drop tablespace TEMP_B including contents and datafiles
 2.2查询会话等待事件:
 
select sid,program,status,blocking_session,event from v$session where type='USER'

   SID PROGRAM                          STATUS    BLOCKING_SESSION EVENT

---- ------------- ---------- ---------------- ------------------------------------------------

    sqlplus@enmo(TNS V1-V3)  ACTIVE                                  enq: TS - contention 

   oracle@enmo ( J001)          ACTIVE                                       jobq slave wait

   oracle@enmo (J000)           ACTIVE                                       jobq slave wait

   sqlplus@enmo(TNS V1-V3)ACTIVE                                     SQL*Net message to client

SID                       会话标识符

PROGRAM           操作系统程序名称

STATUS                正在执行的SQL会话:active

BLOCKING_SESSION  阻塞会话的标识符 sid

EVENT                       等待事件类型:

TYPE                          会话类型:用户 USER

#查询:会话id=13的信息:

SQL> select sid,program,status,blocking_session,event from v$session where sid=;

SID PROGRAM                         STATUS     BLOCKING_SESSION EVENT

---- ------------- ---------- ---------------- ------------------------------

   oracle@enmo ( SMON)    ACTIVE                      smon timer

2.3本次操作,sqlplus本地登录,查询spid

#查询spid

[oracle@enmo app]$ ps -ef|grep LOCAL=YES  本地连接会话的操作系统进程号

oracle       : ?        :: oracleENMO (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

[oracle@enmo app]$ ps -ef|grep            查询父进程:为sqlplus工具 

UID      PID     PPID

oracle       : pts/    :: sqlplus   as sysdba

oracle       : ?        :: oracleENMO (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

SQL> select sid,sql_id,status,event from v$session where paddr=(select addr from v$process where spid=);

       SID SQL_ID        STATUS                 EVENT

----------------------------------------------------------------

          5y9u0m6wv4mch ACTIVE     enq: TS - contention

2,4:oradebug跟踪进程:

SQL> oradebug setospid 15576

Oracle pid: 19, Unix process pid: 15576, image: oracle@enmo (TNS V1-V3)

SQL> oradebug unlimit

Statement processed.

SQL> oradebug dump systemstate 258

Statement processed.

SQL> oradebug dump systemstate 258

Statement processed.

SQL> exit

SQL>  show parameter user_dump

/u01/app/oracle/diag/rdbms/enmo/ENMO/trace

[oracle@enmo trace]$ ls -lrt

-rw-r----- 1 oracle oinstall 2127846 Apr  1 05:41 ENMO_ora_15576.trc

sftp> get ENMO_ora_15576.trc C:\Users\Administrator\Desktop\.
2.5:trace文件查看:
[oracle@enmo trace]$ more ENMO_ora_15576.trc

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0

- 64bit Production

Instance name: ENMO

Redo thread mounted by this instance: 1

Oracle process number: 19

Unix process pid: 15576, image: oracle@enmo (TNS V1-V3)

######根据spid查询没发现什么有效信息:

/ospid: 15576 

...skipping

    (latch info) wait_event=0 bits=0x0

    Process Group: DEFAULT, pseudo proc: 0x7ed5ac30

    O/S info: user: oracle, term: UNKNOWN, ospid: 15576

    OSD pid info: Unix process pid: 15576, image: oracle@e

nmo (TNS V1-V3)

#####根据:ospid: 14800 

----------------------------------------

SO: 0x7e892b40, type: 4, owner: 0x7ecc5220, flag: INIT/-/-/0x00 if: 0x3 c: 0x3

proc=0x7ecc5220, name=session, file=ksu.h LINE:12729, pg=0

(session) sid: 1 ser: 5 trans: 0x7ccb8a68, creator: 0x7ecc5220

flags: (0x41) USR/- flags_idl: (0x1) BSY/-/-/-/-/-

flags2: (0x48009) -/DDLT2/INC

DID: , short-term DID:

txn branch: (nil)

edition#: 100 oct: 41, prv: 0, sql: 0x7f76ef79fdf0, psql: 0x78f50ad0, user: 0/SYS

ksuxds FALSE at location: 0

service name: SYS$USERS

client details:

O/S info: user: oracle, term: pts/1, ospid: 14800

machine: enmo program: sqlplus@enmo (TNS V1-V3)

application name: sqlplus@enmo (TNS V1-V3), hash value=1501019605

Current Wait Stack:

0: waiting for 'enq: TS - contention'

name|mode=0x54530006, tablespace ID=0x1c, dba=0x1

wait_id=14569 seq_num=14571 snap_id=1

wait times: snap=7 min 28 sec, exc=7 min 28 sec, total=7 min 28 sec

wait times: max=infinite, heur=7 min 28 sec

wait counts: calls=151 os=151

in_wait=1 iflags=0x15a0

#  有一个会话被阻塞

There are 1 sessions blocked by this session.

Dumping one waiter:

inst: 1, sid: 39, ser: 153         

#等待事件

wait event: 'enq: TT - contention'

#############################根据:会话ID,查询操作系统进程号####

SQL> select spid from v$process where addr=(select paddr from v$session where sid=13);

SPID

------------------------

15542

#############根据操系统进程查询:SMON进程#####################

[root@enmo ~]# ps -ef|grep 15542

oracle   15542     1  0 03:27 ?        00:00:01 ora_smon_ENMO

p1: 'name|mode'=0x54540004

p2: 'tablespace ID'=0x1a

p3: 'operation'=0x0

row_wait_obj#: 4294967295, block#: 0, row#: 0, file# 0

min_blocked_time: 232 secs, waiter_cache_ver: 2576

Wait State:

fixed_waits=0 flags=0x2b boundary=0x7e894a28/0

Session Wait History:

elapsed time of 25375533 min 56 sec since current wait

0: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14585 seq_num=14587 snap_id=1

等待时间

wait times: snap=0.042447 sec, exc=0.042447 sec, total=0.042447 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

在经过时间:s后发生

occurred after 0.000000 sec of elapsed time

等待:

1: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14584 seq_num=14586 snap_id=1

wait times: snap=0.045086 sec, exc=0.045086 sec, total=0.045086 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

2: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14583 seq_num=14585 snap_id=1

wait times: snap=0.030094 sec, exc=0.030094 sec, total=0.030094 sec

wait times: max=29.990000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

3: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14582 seq_num=14584 snap_id=1

wait times: snap=0.030958 sec, exc=0.030958 sec, total=0.030958 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

4: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14581 seq_num=14583 snap_id=1

wait times: snap=0.033920 sec, exc=0.033920 sec, total=0.033920 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

5: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14580 seq_num=14582 snap_id=1

wait times: snap=0.029040 sec, exc=0.029040 sec, total=0.029040 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

6: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14579 seq_num=14581 snap_id=1

wait times: snap=0.031045 sec, exc=0.031045 sec, total=0.031045 sec

wait times: max=29.990000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

7: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14578 seq_num=14580 snap_id=1

wait times: snap=0.027048 sec, exc=0.027048 sec, total=0.027048 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

8: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14577 seq_num=14579 snap_id=1

wait times: snap=0.029306 sec, exc=0.029306 sec, total=0.029306 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

9: waited for 'ksdxexeotherwait'

=0x0, =0x0, =0x0

wait_id=14576 seq_num=14578 snap_id=1

wait times: snap=0.031989 sec, exc=0.031989 sec, total=0.031989 sec

wait times: max=30.000000 sec

wait counts: calls=0 os=0

occurred after 0.000000 sec of elapsed time

#会话1,序列号5的采样会话历史记录

Sampled Session History of session 1 serial 5

---------------------------------------------------
匹配:
mos文章SMON Blocking Drop Temporary Tablespace (文档 ID 1500044.1)描述的现象符合
This seems to be caused by Bug 13028161:
DROP TEMP TABLESPACE HANGS DUE TO TS ENQUEUE CONTENTION which was closed as duplicate of Bug 15913577 : 
MAIN_LINUX.X64 LRG9H8 RUNS WILL BE SUSPENDED 12/02/12; TOO MANY HANGS 
#提示:是一个BUG,查询文章:SMON进程堵塞了drop tempfile的会话,会话当前等待
 
SMON Blocking Drop Temporary Tablespace (文档 ID 1500044.1)
The following steps have been performed successfully:
- Create a new temporary tablespace
- Declare as the new default temp
- Make sure that no users have the old temp as their default
 
 
#匹配
Now trying to drop the old temporary tablespace, the session hangs.

Analyzing the problem shows the following:

- Tracing the session using 10046 shows that the session is waiting for event "enq: TS - contention'"

- System state dump shows that the session is blocked by SMON

- SMON is waiting for event "SMON TIMER"

drop old temporary tablespace,session hangs故障现象符合

等待事件: TS - contention 符合

10046:跟踪,查询堵塞进程 SMON 符合
#故障解释说明
由bug13028161引起的:由于TS ENQUEUE CONTENTION 导致DROP TEMP TABLESPACE HANGS被关闭为Bug 15913577的副本:MAIN_LINUX.X64 LRG9H8 RUNS将暂停12/02/12; TOO MANY HANGS

#建议

如果可用于您的平台或使用以下解决方法,请安装修补程序15913577

#解决

检查前提条件是否满足:创建新的临时表空间,指定新临时表空间为默认值,确保没有用户分配使用旧临时表空间

EXIT 退出SQL*PLUS,重新登录执行
#涉及版本、操作系统:11.2.0.3以上,大部分操作系统都符合
Range of versions believed to be affected    Versions BELOW 12.2

Versions confirmed as being affected    

11.2.0.4

11.2.0.3

Platforms affected    Generic (all / most platforms affected)Fixed:

###建议操作

#如果有历史会话,使用旧的临时表空间,如下sql,找出会话信息,kill

-Change temporary tablespace of all the users to different temporary tablespace (If not yet done)

SQL> SELECT s.username,sid,serial#,contents,sql_address,extents,last_call_et

    FROM v$session s,v$tempseg_usage t;

WHERE s.saddr = t.session_addr;

-Kill those sessions:

alter system kill session '< sid >, < Serial# >';
#实际操作:
 
exit
[oracle@enmo ~]$ sqlplus / as sysdba
SQL> drop tablespace TEMP_B including contents and datafiles;  [OK]
 
#记录人生中遇到的第一个bug 开心

Now trying to drop the old temporary tablespace, the session hangs.的更多相关文章

  1. Oracle中的Temporary tablespace的作用

    临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.union/intersect/minus/.sort-merge及join.analyze ...

  2. [Oracle] 中的Temporary tablespace的作用

    临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.union/intersect/minus/.sort-merge及join.analyze ...

  3. ORA-25153: Temporary Tablespace is Empty

    在一测试环境做测试的时候发生以下错误: SQL> exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'TT',me ...

  4. ORA-25153: Temporary Tablespace is Empty解决方法

    SQL> @/tmp/4.txt create table huang_1 (deptno number,dname varchar2(19),loc varchar2(20)) * ERROR ...

  5. ORA-10922 Temporary tablespace group is empty错误

    错误--练习查询,发现报错: SQL>  select * from range_list_part_tab where id=100000Execution Plan------------- ...

  6. Temporary Segments: What Happens When a Sort Occurs (文档 ID 102339.1)

    APPLIES TO: Oracle Database - Enterprise Edition - Version 8.1.7.4 to 11.2.0.1 [Release 8.1.7 to 11. ...

  7. Oracle Study Note : Tablespace and Data Files

    1.how to create a tablespace that employs the most common features create tablespace tb_name #create ...

  8. Oracle 临时事务表 全局临时表_global temporary table

    所有的操作都在一个事务里,事务提交后,此表清空,特别适合做插入删除频率特别高的临时表操作,比如插入完数据就开始查询,查询完就删掉等,用完就扔! 临时表分事务级临时表和会话级临时表. 事务级临时表只对当 ...

  9. 创建表空间tablespace,删除

    在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace yuhang_temp temp ...

随机推荐

  1. oracle数据库--序列(sequence)

    一个问题: 在某张表中,存在一个id列(整数),我们希望在添加记录的时候,该列从1开始,自动的增长,怎么处理? 解决方式:oracle是利用"序列"(sequence)来完成的. ...

  2. javaScript设计模式 -- 灵活的javaScript语言

    因为好长时间的懒惰和懈怠,好久没有更新文章了,从现在开始我会按时更新一些自己总结的一些知识,和研究的东西,希望能让大家从我这里学到一点点的知识. 本文参考了张荣铭的javascript设计模式一书,算 ...

  3. 有序的map LinkedHashMap

    HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方.所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺 ...

  4. Java基础学习笔记一 Java介绍

    java语言概述 Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. Java的应用 开发QQ.迅雷程序(桌面应用软件) 淘宝.京东(互联网应用软件) 安 ...

  5. chrome浏览器访问google插件

    访问google其实很多时候都是为了搜索资料,本文分享下,chrome浏览器访问google插件 下载地址:http://www.ggfwzs.com/ 1,下载完成后,解压: 如下: 2,打开谷歌浏 ...

  6. 团队作业4——第一次项目冲刺(Alpha版本)11.18

    a. 提供当天站立式会议照片一张 举行站立式会议,讨论项目安排: 整理各自的任务汇报: 全分享遇到的困难一起讨论: 讨论接下来的计划: b. 每个人的工作 (有work item 的ID) 1.前两天 ...

  7. xcode7,ios9 部分兼容设置

    神奇的苹果公司,再一次让程序员中枪. 一.xcode7 新建的项目,Foundation下默认所有http请求都被改为https请求. HTTP+SSL/TLS+TCP = HTTPS 也就是说,服务 ...

  8. Java.nio-随机读写汉字

    笔者最近在用多线程来计算中文文本的标点符号数目,遇到了以下问题: 在Windows下,文本中汉字通常采用Unicode编码,这就导致需要随机(RandomAccessFile)读取文本时,产生乱码现象 ...

  9. 释义Oracle 11r2中并行执行相关参数

    因最近对现场某些服务器进行诊断和调整,用到了这类参数,因此对这类参数做了详尽的查阅和研究,现将该类参数释义如下,以方便同行和自己参考,禁止转载: 1.PARALLEL_ADAPTIVE_MULTI_U ...

  10. Hazelcast分布式

    一般的应用正式环境中都不止一台服务器(也就是说是集群的),那么如果只是简单的将数据预加载到内存,那么就会有数据不同步的现象. (更新了其中一台JVM,另一台JVM并不会收到通知从而保持数据同步). 这 ...