卸载前的准备工作
在开始卸载Oracle 11g之前,充分的准备工作是确保卸载过程顺利、避免系统残留问题的关键,建议备份重要的Oracle数据文件、配置文件以及数据库实例,以防卸载过程中意外丢失数据,可以通过expdp或exp工具导出数据库,或直接复制$ORACLE_HOME/dbs、$ORACLE_HOME/network等关键目录下的文件。

确认当前Oracle服务的运行状态,打开终端,执行ps -ef | grep oracle命令,查看是否有Oracle相关进程仍在运行,如果有,需先使用sqlplus / as sysdba连接数据库,执行SHUTDOWN IMMEDIATE命令关闭数据库实例,然后停止监听器(通过lsnrctl stop)和Oracle相关服务。
记录当前Oracle的安装路径和环境变量配置。ORACLE_HOME、ORACLE_SID、PATH等环境变量在/etc/profile或用户家目录的.bash_profile文件中定义,卸载后需手动清理这些配置,如果系统中有多个Oracle产品(如Oracle Grid Infrastructure、客户端等),需单独记录各自的安装路径,避免误卸载。
确保以具有root权限的用户身份操作,因为部分Oracle组件的卸载需要root权限删除系统级文件和配置,可以通过su - root命令切换至root用户,或使用sudo前缀执行需要root权限的命令。
使用Oracle Universal Installer(OUI)卸载
Oracle 11g的官方推荐卸载方式是通过Oracle Universal Installer(OUI)工具,该工具能自动识别已安装组件并执行完整的卸载流程,具体步骤如下:
-
启动OUI卸载界面
打开终端,切换至Oracle 11g的安装目录下的oui/bin子目录(通常为$ORACLE_HOME/oui/bin),执行runInstaller命令(若为root用户,需使用./runInstaller),若OUI未在环境变量中配置路径,可直接通过绝对路径启动,例如/u01/app/oracle/product/11.2.0/dbhome_1/oui/bin/runInstaller。 -
进入卸载向导
启动OUI后,在图形界面中选择“卸载产品”选项,点击“下一步”,此时工具会自动扫描系统中已安装的Oracle组件,并列出可卸载的产品列表,选择需要卸载的Oracle 11g数据库主目录(如“Oracle Database 11g 11.2.0.1.0”),确保勾选所有关联组件(如数据库实例、监听器、Oracle Net等)。 -
配置卸载选项
在“配置卸载选项”页面,默认会选中“移除产品软件”和“删除配置文件”两个选项,前者会删除Oracle安装目录下的所有程序文件,后者会清理/etc/oratab、/etc/init.d/oracle等配置文件,如果需要保留某些配置文件(如自定义的监听器配置),可取消对应选项的勾选,点击“下一步”确认选择。 -
执行卸载操作
确认卸载列表后,OUI将开始执行卸载任务,过程中会显示进度条和日志信息,包括删除文件、清理注册表项、停止服务等步骤,卸载时间取决于Oracle安装的大小和系统性能,通常需要10-30分钟,期间请勿中断操作或关闭终端,以免导致文件残留。
-
完成卸载并验证
卸载完成后,OUI会提示“产品卸载成功”,点击“退出”关闭工具,需手动检查$ORACLE_HOME目录是否已删除(默认为/u01/app/oracle/product/11.2.0/dbhome_1),若目录仍存在,可使用rm -rf命令强制删除(但需确保无其他程序依赖该目录)。
手动清理残留文件和配置
即使通过OUI完成了卸载,系统中仍可能存在部分残留文件和配置,需手动清理以确保彻底卸载,以下是常见的残留项及清理方法:
-
清理环境变量
编辑用户家目录下的.bash_profile或/etc/profile文件,删除与Oracle相关的环境变量,export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin
保存文件后,执行
source ~/.bash_profile或source /etc/profile使配置生效。 -
删除Oracle用户和组
如果Oracle是为专用用户安装的(如oracle用户),可使用以下命令删除用户及其主目录:userdel -r oracle # -r参数会同时删除用户主目录 groupdel dba # 删除Oracle相关的组(如dba、oper)
执行前需确认该用户无其他业务依赖,避免误删。
-
清理系统级文件和目录
- 删除Oracle安装目录:如
/u01/app/oracle(若为默认安装路径); - 删除临时文件:
/tmp目录下可能存在Oracle临时文件(如/tmp/.orapwd*); - 删除日志文件:
/var/log/oracle或用户家目录下的.oracle目录; - 清理
/etc/oratab文件:使用vi /etc/oratab删除包含Oracle实例的行; - 删除启动脚本:
/etc/init.d/或/etc/rc.d/init.d/目录下的oracle、dbstart、dbshut等脚本。
- 删除Oracle安装目录:如
-
清理内核参数和资源限制
检查/etc/sysctl.conf文件,删除Oracle相关的内核参数(如fs.file-max、shmmax等),并执行sysctl -p使配置生效,检查/etc/security/limits.conf文件,删除Oracle用户的资源限制(如nofile、nproc等)。
卸载后的验证与常见问题处理
完成上述步骤后,需通过以下方式验证Oracle 11g是否彻底卸载:
-
检查进程和服务
执行ps -ef | grep oracle和ps -ef | grep ora,确认无Oracle相关进程残留,使用service --status-all查看是否有Oracle服务仍在运行(如oracle-xe等),若有需手动停止并禁用。 -
检查端口占用
Oracle默认监听端口为1521,可通过netstat -tuln | grep 1521确认端口是否已释放,若仍被占用,说明监听器未完全停止,需使用ps -ef | grep tnslsnr查找并终止相关进程。 -
验证文件残留
使用find / -name "*oracle*" -type f 2>/dev/null命令搜索系统中是否仍存在Oracle相关文件(除保留的配置文件外),若存在可手动删除。
常见问题处理:
- 卸载失败提示“无法删除文件”:可能是因为文件被占用或权限不足,可先终止相关进程,或使用
chmod 777修改文件权限后再删除。 - OUI无法启动:检查
DISPLAY环境变量是否正确设置(可通过echo $DISPLAY查看),或安装libXp.so.6等依赖库。 - 清理残留文件时误删系统文件:建议在删除前使用
ls -l确认文件路径,避免误操作关键系统文件。
通过以上步骤,可彻底卸载Linux系统中的Oracle 11g,确保无残留文件和配置,为后续系统维护或重新安装奠定基础,卸载过程中需谨慎操作,尤其是手动删除文件时,务必确认路径正确,避免影响系统稳定性。
















