前提: 

   安装 oracle 11g 在win7 professional 版本上,安装大题成功,但oem相关配置出现问题,经过手动调试oem之后,oem 配置重新成功。但由于各种原因,希望进行干净卸载之后,在进行重新安装,以确定没有错误出现,避免由于安装出错的原因导致的调试花费;

动作:

        根据常用软件的方式,删除卸载进入控制面板--〉程序里面进行卸载就好,但并没有在程序中看到 oracle 安装条目。利用360等第三方软件进行强力卸载,同样没有找到对应的安装条目。得出的结论就是,oracle 在安装完之后并没有将卸载快捷方式注入到程序列表中;

        进入开始-〉所有程序,在 oracle 的启动文件列表中,也同样没有明显标志卸载的快捷方式;只有一个 Universal Installer 应该是与安装卸载有关系的;

       a. 停止所有关于Oracle 的服务,主要包括listener, agent等等

完全删除 oracle 11g

    b.  用管理员权限运行 Oracle Universal Installer

完全删除 oracle 11g

  c, 进入 installed products, 可以查看,安装的所有产品

完全删除 oracle 11g

 d. 选中一个一个产品,点击 Remove , 页面提示如何去卸载单个的产品

 e. 进入提示中所提到的deinstall文件夹,可以看到如下的文件结构:

完全删除 oracle 11g

f. 在这里,基本上思路就有了,卸载文件以batch 和 perl 脚本来编写的,xml 是相关参数配置文件。Universal Installer 应该就是这些文件的界面展示层了

 g. 运行deinstall.bat, 进入卸载程序:

完全删除 oracle 11g

h. 漫长的等待......需要提醒的时,windows 下这个batch 文件并不好用,有可能经历几次卸载失败。最好运行的方式时,重启电脑后,直接进入文件夹,然后点击bat 文件,然后关闭explorer,不然删除文件的时候会告诉你文件正在使用无法删除;

 i,大约10分钟之后,删除完成,检查文件夹是空的,开始菜单中的相关组件都不存在;

 j. 进入注册表,删除HKLM\SOFTWARE\ORACLE键值;删除HKLM\SYSTEM\CURRENTCONTROLSET\Services  中的相关 oracle 键值;删除 HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\Application 中相关 oracle 键值;

总结:

    网上也有一些相关的文章提到如何完全删除,但里面提到的很多步骤,其实都是在执行 deinstall 删除时没有完全成功的结果,特别是对于开始菜单中的相关 oracle 残留项,任何一个好一点的产品在进行卸载后,都会清除开始菜单中的快捷方式,所以oracle 自然会做。对于oracle 与其他程序所公用的一些库文件,比如c++ 等动态库文件,手动删除是有很大的风险的,oracle 自身编写卸载程序时肯定有所考虑,故此还是以官方的卸载程序为依据的好!