Opa : então, em 99,999% das vezes isso é Windowsize, nada a ver com o Oracle em 
si : vc já teve a experiência de fechar um arquivo no Word ou no excel ou no 
Windows Explorer, aí vc dá um comando de deleção numa outra janela/prompt de 
comando e recebe um erro de "Arquivo em uso por outro processo" ?? Eu já, 
várias vezes, e normalmente isso é por causa da maneira que o Windows 
implementa lock de arquivos, muitas só quando o processo que abriu o arquivo e 
ganhou o file handle EFETIVAMENTE é encerrado é que o file handle 
correspondente é liberado e os "locks" em cima do arquivo são removidos...
 Pois bem, a suposição Básica é justamente essa, ie, vc fez shutdown da 
instância, parou o processo oracle.exe, parou listener, etc, ** MAS ** ainda 
tem algum programinha abestado na memória marcando um ou alguns desses .DLLs 
como sendo lidos/usados, aí o Installer não os consegue sobrepor.... Pode ser 
aqueles Windows services que o Oracle cria e ativa mas a gente pouco usa 
(OracleMTSRecovery, extporc,OLAP,VSSWriter,SNMP, tem uma porção deles), pode 
ser outro produto Oracle (GRID Insfrastricture, Client Oracle, Weblogic ou 
qquer outro) usando essas DLLs, pode ser algum serviço que atende ao teu 
aplicativo (ODBC, por exemplo, é useiro e vezeiro em acessar OCI.dll), ou mesmo 
pode ser softwares adicionais, como o  Windows Management Instrumentation, o 
COM+ System, OU mesmo o Windows defender e/ou um Antivírus (já que ninguém 
mexeu na máquina, imagino que tá tudo default nesse sentido) ERRADAMENTE se 
metendo a analisar arqs que pertencem aos softwares Oracle - na verdade, um 
servidor Oracle dedicado a isso imho ** necessariamente ** tá na DMZ, sem 
acesso NENHUM á Internet (e não é acessado por NENHUMA máquina, diretamente), 
então não deveria ter software nenhum de segurança fuçando nele...
 
  Pra vc determinar QUEM está mantendo o lock nesses arquivos, vc pode ir de 
tasklist (normalmente um tasklist /m > tasks.txt te dá a lista) OU (a ** melhor 
** opção, imho) usa um software especializado como o Process manager, que 
consta no pacote System Internals : não é á toa que a m$soft comprou esse 
pacote do desenvolvedor, ele é bom demais da conta : é Obrigatório pra qquer 
DBA trabalhando sob Windows....
  
  Uma vez identificado o serviço windows e/ou o software adicional que tá 
acessando/usando (ou que acessou/usou) aí vc pára o serviço windows dele e/ou 
para o software em si/o descarrega da memória que aí sim o file lock deve ser 
liberado...
  
  []s
  
    Chiappa

Responder a