关闭

检查Windows下的动态链接库文件(DLL)被哪些进程占用

2269人阅读 评论(0) 收藏 举报
分类:

检查Windows下的动态链接库文件(DLL)被哪些进程占用。

注意:本文所说的DLL可以是Oracle DLL ,也可以是 System DLL

在Windows下打过Oracle bundle patch的人都有类似的经验:
Oracle开头的服务都停止了,但是patch还是打不上,提示oci.dll被占用。
出现此类原因,大多数都是没有仔细阅读随patch一起的readme.html文档造成的。
一般而言,出现DLL被占用,是由于DTC(Distributed Transaction Coordinator)服务没有关闭导致的.并且在readme.html文档中,有明确要求“要关闭Distributed Transaction Coordinator服务”

那好了,大家可能会想:对于oci.dll被占用,我从readme.html上得到经验,去关闭XXXX服务就行了。
那对于其他的DLL呢?在F:\oracle\product\10.2.0\db_1\BIN下的DLL多了去了,给出一个DLL名称,怎么去查该DLL被哪个进程锁定?
mos文章Script for Checking Services, DLL Locks, Oracle Processes Before Applying A Patch (文档 ID 454040.1)给出了一个脚本,该脚本的名称为PREPATCH.BAT,请到如下链接中下载:http://download.csdn.net/detail/msdnchina/9281087
1.下载到本地之后,解压开,放到E:\下(其他盘符或者其他目录均可),
2. cmd下进入到E:\下,运行此"PREPATCH.BAT"即可。如下是运行的日志: 

SCRIPT  : PREPATCH.BAT
PURPOSE : PRECHECK BEFORE APPLYING A PATCH


DISCLAIMER
===========
This script will check the Inventory Pointer,Services,DLL Locks,Oracle Process.


The Script Requires The following Inputs :
----------------------------------------------------
   ORACLE_SID
   ORACLE_HOME
   ORACLE_HOME_NAME

Enter The ORACLE_SID [] :FS  --->手工输入FS,注意一定要用大写!!!

Enter The ORACLE_HOME [] :F:\oracle\product\10.2.0\db_1 --->手工输入

Enter The ORACLE_HOME_NAME [] :OraDb10g_home1 --->手工输入(从C:\Program Files\Oracle\Inventory\ContentsXML\inventory.xml文件中获得ORACLE_HOME_NAME)


                     =========================================

                       ORACLE_SID Is Set As FS
                       ORACLE_HOME Is Set As F:\oracle\product\10.2.0\db_1
                       ORACLE_HOME_NAME Is As OraDb10g_home1

                     =========================================

请按任意键继续. . .

 

 MENU
 ====

   1) CHECK THE WINDOWS INVENTORY POINTER LOCATION
   2) CHECK THE ORACLE SERVICES
   3) CHECK IF ANY DLLS IN THE ORACLE_HOME IS LOCKED
   4) LIST ALL THE ORACLE PROCESS
   5) CHECK IF A PARTICULAR DLL IS LOCKED
   6) CHECK THE PROCESSOR INFORMATION
   7) CHECK FOR MONTECITO PROCESSOR
   8) EXIT

Please Select A Choice[8]: 5 ---->选择5

CHECKING IF A PARICULAR DLL IS LOCKED
-------------------------------------

Enter The DLL Name [ oci.dll ]: oraclient10.dll---->手工敲入DLL的名字

映像名称                       PID 模块
========================= ======== ============================================
TNSLSNR.EXE                   1292 oraclient10.dll
oracle.exe                    5512 oraclient10.dll


请按任意键继续. . .


 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1406865次
    • 积分:22101
    • 等级:
    • 排名:第319名
    • 原创:580篇
    • 转载:261篇
    • 译文:296篇
    • 评论:46条
    博客专栏
    文章分类
    最新评论