Segue uma dica para momentos dificeis como os lock por ddl :Eliminar sessoes maleficas :select 'alter system kill session ''' || ddl.session_id || ',' || ses.serial# || ''' immediate;'from dba_ddl_locks ddl, v$session seswhere owner like '%userid%'and ddl.session_id = ses.sidRode o resultado da query .Identificar o lock por ddl :select decode(lob.kglobtyp, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER', 4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE', 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE', 11, 'PACKAGE BODY', 12, 'TRIGGER', 13, 'TYPE', 14, 'TYPE BODY', 19, 'TABLE PARTITION', 20, 'INDEX PARTITION', 21, 'LOB', 22, 'LIBRARY', 23, 'DIRECTORY', 24, 'QUEUE', 28, 'JAVA SOURCE', 29, 'JAVA CLASS', 30, 'JAVA RESOURCE', 32, 'INDEXTYPE', 33, 'OPERATOR', 34, 'TABLE SUBPARTITION', 35, 'INDEX SUBPARTITION', 40, 'LOB PARTITION', 41, 'LOB SUBPARTITION', 42, 'MATERIALIZED VIEW', 43, 'DIMENSION', 44, 'CONTEXT', 46, 'RULE SET', 47, 'RESOURCE PLAN', 48, 'CONSUMER GROUP', 51, 'SUBSCRIPTION', 52, 'LOCATION', 55, 'XML SCHEMA', 56, 'JAVA DATA', 57, 'SECURITY PROFILE', 59, 'RULE', 62, 'EVALUATION CONTEXT','UNDEFINED' ) object_type, lob.kglnaobj object_name, pn.kglpnmod lock_mode_held, pn.kglpnreq lock_mode_requested, ses.sid, ses.serial#, ses.usernamefrom v$session_wait vsw, x$kglob lob, x$kglpn pn, v$session seswhere vsw.event = 'library cache lock'and vsw.p1raw = lob.kglhdadrand lob.kglhdadr = pn.kglpnhdland pn.kglpnmod != 0and pn.kglpnuse = ses.saddr Pessoal.Segue um link onde de forma unificada a Oracle informa o Criticals Paths de seu produtos (incluindo os databases) :http://www.oracle.com/technetwork/topics/security/alerts-086861.html#CriticalPatchUpdatesFica a Dica. Segue uma dica que me ajudou hoje .==> Habilitando na sua instancia o modo Archive log do oracle via comando.SQL> select log_mode from gv$database;SQL> shutdown immediate;SQL> startup mount exclusive;SQL> alter database archivelog;SQL> alter database open;SQL> select log_mode from gv$database;==> Desabilitando modo Archive Log.SQL> startup mountSQL> alter database noarchivelog;SQL> alter database open;O que e o modo Arquive Log ?Archivelog e gerado pelo banco de dados em todas as operacoes de transacoes no banco de dados como: INSERT, DROP, ALTER, ETC. No Oracle versao 9i para frente a Oracle recomenda o uso do Backup com RMAN, isto implica dizer que voce precisa do seu banco em modo de Archive.mais informacoes em :http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12007.htm http://docs.oracle.com/cd/B28359_01/server.111/b28310/archredo002.htm Esta imagem fornecida pela Oracle mostra o caminho seguro a ser seguindo no caso de upgrade para a versao 11.2 do oracle 11g.Fica a Dica. Seu SGDB cresceu e voce nao entende o porque ? Procure o Schema que esta ocupando mais espaco nas tablespaces do seu SGDB.select obj.owner as "Schema", obj_cnt as "Qtd_Objects", decode(seg_size, NULL, 0, seg_size) "size MB"from (select owner, count(*) obj_cnt from dba_objects group by owner) obj, (select owner, ceil(sum(bytes)/1024/1024) seg_size from dba_segments group by owner ) segwhere obj.owner = seg.owner(+) Pessoal.Segue uma dica para analise de fragmentacao dos indices .(1) -- CRIAR A TABELA ONDE ARMAZENAMENTOS AS INFORMACOES CREATE TABLE SGDB_INDICE_STATUS (INDEX_NAME VARCHAR(100),PCT_DELETED NUMBER,PCT_USED NUMBER,BLOCK NUMBER,DTEXECUAO DATE DEFAULT SYSDATE) ; ALTER TABLE SGDB_INDICE_STATUS ADD CONSTRAINT PK_MMED_IND_STATUS PRIMARY KEY (INDEX_NAME,DTEXECUAO) ; (2) -- RODAR A QUERY ABAIXO E PEGAR O RESULTADO DELA PARA EXECUAR SELECT COMM FROM( SELECT 1 AS ID, ROWNUM AS ID2, 'ANALYZE INDEX ' ||INDEX_NAME || ' VALIDATE STRUCTURE ; ' AS COMM FROM DBA_INDEXES WHERE OWNER = 'DBA_CLINICA' UNION ALL SELECT 2 AS ID, ROWNUM ID2, 'INSERT INTO SGDB_INDICE_STATUS SELECT NAME,TRUNC(100*(NVL(DEL_LF_ROWS,1)/NVL(LF_ROWS,1))) PCT_DELETED, PCT_USED ,BLOCKS ,SYSDATE FROM INDEX_STATS ;' AS COMM FROM DBA_INDEXES