Oracle
 sql >> Database >  >> RDS >> Oracle

Elenco delle attività

Sono sicuro che qualcuno leggendo questo articolo chiederà "come fai a non saperlo?". Ma a volte le cose più semplici ci vengono in mente alla fine del gioco, mentre altri lo sapevano all'inizio.

Ho applicato patch a Oracle su Windows dai tempi di Windows NT. Tutti coloro che patchano Oracle su Windows sanno che OPatch spesso si oppone al fatto che alcuni file DLL sono bloccati da altri processi. Il modo più semplice per aggirare questo problema è semplicemente rinominare i file DLL che verranno sostituiti dalla patch. Il sistema operativo non ti consentirà di eliminare i file DLL, ma puoi rinominarli e quindi OPatch può procedere. Nei primi giorni di OPatch, eseguivo l'applicazione, sputava la DLL bloccata. Rinominerei il file DLL e quindi eseguirò nuovamente OPatch per ottenere il file DLL successivo bloccato. Questo processo si ripeterà circa 20 volte fino a quando OPatch non ha trovato file DLL bloccati. Almeno ora, quando esegui OPatch, ti dà un elenco completo di file DLL che sono bloccati.

A volte voglio conoscere il processo che sta bloccando il file DLL. In passato, scaricavo una di quelle utilità disponibili gratuitamente per mostrarmi i processi che bloccano il file in questione e terminare il processo. Ma non mi piace il freeware che gonfia i miei server, quindi spesso rimuovo l'utilità quando ho finito. Alla prossima volta che avrò bisogno di quell'utilità...

Qualcuno di recente mi ha indicato Metalink Note 294350.1 che conteneva una piccola pepita di cui non ero a conoscenza prima di leggere questo documento. Apparentemente, Windows include un'utilità della riga di comando per mostrare quali processi stanno bloccando i file DLL. Ora posso fare:

tasklist /m

L'output può essere lungo, quindi è utile archiviare l'output in un file e quindi aprire il file in un editor di testo:

tasklist /m > c:\oracle\task_list.txt
notepad c:\oracle\task_list.txt

Posso quindi utilizzare la funzione di ricerca dell'editor di testo per individuare la DLL in questione.

Com'è possibile che questa piccola utility sia sfuggita alla mia attenzione in tutti questi anni?