sql >> Base de Datos >  >> RDS >> Oracle

Lista de tareas

Estoy seguro de que alguien que lea esto preguntará, “¿cómo es que no sabías eso?”. Pero a veces, las cosas más simples nos llegan tarde en el juego, mientras que otros lo sabían desde el principio.

He estado parcheando Oracle en Windows desde los días de Windows NT. Todos los que parchean Oracle en Windows saben que OPatch a menudo se resiste al hecho de que algunos archivos DLL están bloqueados por otros procesos. La forma más fácil para mí de solucionar esto es cambiar el nombre de los archivos DLL que serán reemplazados por el parche. El sistema operativo no le permitirá eliminar los archivos DLL, pero puede cambiarles el nombre y luego OPatch puede continuar. En los primeros días de OPatch, ejecutaba la aplicación, escupía la DLL que estaba bloqueada. Cambiaría el nombre del archivo DLL y luego ejecutaría OPatch nuevamente para obtener el siguiente archivo DLL que estaba bloqueado. Este proceso se repetiría unas 20 veces hasta que OPatch no encontrara archivos DLL bloqueados. Al menos ahora, cuando ejecuta OPatch, le brinda una lista completa de archivos DLL que están bloqueados.

A veces quiero saber el proceso que está bloqueando el archivo DLL. En el pasado, descargaba una de esas utilidades disponibles gratuitamente para mostrarme los procesos que bloqueaban el archivo en cuestión y terminaban el proceso. Pero no me gusta que el software gratuito llene mis servidores, así que a menudo elimino la utilidad cuando termino. Hasta la próxima vez que necesite esa utilidad...

Alguien me señaló recientemente la Nota 294350.1 de Metalink que contenía una pequeña información que desconocía antes de leer este documento. Aparentemente, Windows incluye una utilidad de línea de comandos para mostrar qué procesos están bloqueando archivos DLL. Ahora puedo hacer:

tasklist /m

La salida puede ser larga, por lo que es conveniente almacenar la salida en un archivo y luego abrir el archivo en un editor de texto:

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

Entonces puedo usar la función de búsqueda del editor de texto para localizar la DLL en cuestión.

Ahora, ¿cómo es que esta pequeña utilidad ha escapado a mi atención todos estos años?