Dropando tablespace temp e ter que ficar aguardando

Não conseguindo fazer o resize do tempfile

ORA-03297: file contains used data beyond requested RESIZE value

Então uma opção rápida é recriar a temporary tablespace, e um dos passos é drop a temporary tablespace a ser trocada. Porem ao fazer o procedimento vejo que fico aguardando e há locks em minha base.

SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
--esperando--

Vejo pelo OEM nas sessões bloqueadoras:

drop temp wait01 Dropando tablespace temp e ter que ficar aguardando

My session ID = 203

No dbconsole mostra minha sessão sendo bloqueada pelo SMON, eu tenho que encontrar quem está usando algum segmento da tablespace TEMP no caso. Uma idéia é checar a GV$TEMPSEG_USAGE

SQL> select inst_id, sid,serial#, machine, program from gv$session where (inst_id, username, saddr) in (select inst_id, username, session_addr from GV$TEMPSEG_USAGE where tablespace='TEMP');

   INST_ID        SID    SERIAL# MACHINE                                                          PROGRAM
---------- ---------- ---------- ---------------------------------------------------------------- ------------------------------------------------
         1        441      57655 SERVIDOR\ABBD-INF304                                                 bi.exe
         1        469      12433 SERVIDOR\ABBD-INF303                                                 bi.exe
         1        507      56087 SERVIDOR\ABBD-CONT02                                                 bi.exe
         1        593       7171 SERVIDOR\ABBD-REPOUSO01                                              bi.exe
         1        650      32170 SERVIDOR\ABBD-PENF4-01                                               bi.exe
         1        712      35692 SERVIDOR\ABBD-ENDOSCOPIA9                                            bi.exe
         1        760      10371 SERVIDOR\SERVIDOR14                                                  bi.exe
         1        770      51333 SERVIDOR\SERVIDOR14                                                  bi.exe
         1        818      28639 SERVIDOR\ABBD-HIPO01                                                 bi.exe
         1        912       7375 SERVIDOR\SERVIDOR14                                                  bi.exe
         1        934      26633 SERVIDOR\ABBD-RECTOM01                                               bi.exe

Identificando as sessões que estão utilizando algum segmento da temp, devo solicitar aos usuários sairem da aplicação, ou então eu deva killar os usuários caso o problema for grave(depende do grau do problema).

Obs.: Sempre devo deixar outra temp intermediaria previamente criada para o usuário que estou tentando dropar a tablespace TEMP no caso.

%name Dropando tablespace temp e ter que ficar aguardando

Autor: Rafael Stoever

Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).