【Oracle】卸载Oralce时deinstall.bat闪退的一种解决办法 |
您所在的位置:网站首页 › 数据库卸载程序是什么 › 【Oracle】卸载Oralce时deinstall.bat闪退的一种解决办法 |
声明:本方法仅适用于操作系统环境变量 path 被清空或者设置出错导致的错误。 1. 问题现象双击或者在CMD中执行该bat文件,总是出现 Oracle卸载时 deinstall.bat窗口一闪而过Oracle卸载时 deinstall.bat闪退Oracle卸载时出现Can't open perl script "XXXXXX":No such file or directory Oracle卸载时出现 CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件 2. 解决办法操作系统的环境变量出错。在系统环境变量 path 内增加如下内容,注意是追加,不是清空原来的 内容,而是追加: ;%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem; 不知道哪个天杀的智障,把系统环境变量给删空了。 3. 原因 耗费一下午时间才找出原因。由于完全没有头绪,我便逐个打开bat文件和pl文件,进行源码级别的打桩测试。 从 deinstall.bat 到 bootstrap.bat,再到 startup.bat,还有 问题的最关键:bootstrap.pl 这个perl 脚本。 闹了半天,bootstrap.pl 脚本中的 xcopy 命令根本没有执行,导致 deinstall.pl 根本就没有复制到 %TEMP%目录里面去。而 xcopy 为啥没执行?原来 丫的 我的操作系统环境变量 里面啥也没有,连执行 CMD命令都是 “不是内部或外部命令”! 至此,我才醒悟,是我电脑环境变量的问题。果然,按步骤2的解决办法设置后,cmd,xcopy 均可正常使用。这样 deinstall.bat 才能将它依赖的 OH/deinstall 和 OH/jdk 复制到 Bootstrap 目录里面去! 4. 分析 既然阴差阳错的看了边脚本,便把 oracle deinstall.bat 的大概流程记录于此,也算是网络上的第一篇,供大家参考。 以下内容中 OH 表示 Oracle_HOME。 版本:11.2.0.1 (可能,懒得查了。各个版本有差异)/Windows Server 2008R2 目录:ORACLE_HOME\deinstall 1. deinstall.bat 在 %TEMP% 下创建新文件夹,作为 %bootstrapdir%。调用 utl/bootstrap.bat调用 %TEMP%\startup.bat
案例说明: %TEMP%:操作系统自有变量,可在CMD中使用 echo %TEMP% 查看。 %bootstrapdir% 一般是 C:\Users\Admixxxx\AppData\Local\Temp\1\OraDeinstall周一-06-22_18-42-08 。其中06-22是月日,18 42 08是时分秒。 2 .utl/bootstrap.bat 执行 bootstrap.pl 脚本将 utl\startup.bat 和 utl\cleanup_bootstrap.bat 复制到 %TEMP% 目录中。 3.bootstrap.pl 复制 OH\deinstall 和 OH\jdk 目录下的全部内容 到 %bootstrapdir% 中。验证文件权限验证所需文件齐备 4. %TEMP%\startup.bat 执行 %bootstrapdir%\deinstall.pl 进入用户交互,逐步卸载Oracle 5. 总结 最关键的卸载脚本是 Perl脚本 deinstall.pl。之所以用 perl 脚本,个人揣测是上个世纪遗留的吧,动不得,便沿用至今了。 6. 感想 因为对Oracle卸载复杂而产生逆反心理,觉得问题肯定出在Oracle的安装过程,开始猜测是安装路径有中文,但并不是。最后发现其实并不是Oracle有什么问题,是我电脑操作系统的环境变量有问题。连CMD ,XCOPY等命令都无法执行。 没有关注错误反馈,反而总是想沿着自己的(错误)想法寻找原因。本末倒置。 宛如智障。
如果你也遇到问题,欢迎留言交流。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |