当前位置:首页 > Linux > 正文

如何在Linux卸载Oracle

停止Oracle所有服务和实例,删除Oracle安装目录及配置文件,移除Oracle用户及用户组,清理环境变量和残留文件确保卸载彻底

卸载前的关键准备

  1. 备份所有数据

    • 使用RMAN或数据泵导出关键数据库:
      expdp system/password FULL=Y DIRECTORY=backup_dir DUMPFILE=full_backup.dmp
    • 备份Oracle安装目录($ORACLE_HOME)、监听器配置(listener.ora)和网络配置(tnsnames.ora)。
  2. 停止所有Oracle服务

    sqlplus / as sysdba
    SQL> SHUTDOWN IMMEDIATE;  -- 关闭数据库
    SQL> EXIT;
    lsnrctl stop             -- 停止监听器
  3. 检查依赖进程
    确认无残留进程:

    ps -ef | grep -i ora_   # 检查Oracle后台进程
    ps -ef | grep -i tns    # 检查监听进程

正式卸载步骤

方法1:使用Oracle自带的卸载工具(推荐)

Oracle 12c及以上版本提供deinstall工具:

cd $ORACLE_HOME/deinstall
./deinstall
  • 交互式操作提示
    • 输入数据库SID、安装路径(如/u01/app/oracle/product/19c/dbhome_1
    • 选择移除数据库、监听器及所有文件(默认全选)
    • 自动清理注册表和目录

方法2:手动卸载(适用于无deinstall工具)

  1. 删除数据库实例

    如何在Linux卸载Oracle  第1张

    dbca -silent -deleteDatabase -sourceDB your_sid -sysDBAUserName sys -sysDBAPassword your_password
  2. 移除Oracle安装目录

    rm -rf /u01/app/oracle   # 根据实际路径调整
    rm -rf /tmp/OraInstall*
  3. 清理系统配置

    • 删除用户和组:
      userdel -r oracle       # 删除oracle用户及主目录
      groupdel oinstall
      groupdel dba
    • 清除环境变量:
      编辑/etc/profile~/.bashrc,删除ORACLE_HOMEPATH等配置。
  4. 删除残留文件

    rm -f /etc/oraInst.loc     # 清库存档位置
    rm -f /etc/oratab          # 删除数据库注册
    rm -rf /var/tmp/.oracle    # 临时文件

卸载后验证

  1. 检查进程和文件

    ps -ef | grep -i oracle    # 应无相关进程
    find / -name '*oracle*'    # 检查残留文件(忽略只读路径)
  2. 验证用户和组

    id oracle                  # 应提示"no such user"
    grep -E 'oinstall|dba' /etc/group  # 组应不存在

常见问题解决

  • 问题1: deinstall运行时提示”Database not removed”
    原因:数据库未彻底关闭。
    解决:手动执行dbca -deleteDatabase或重启后重试。

  • 问题2: 卸载后/etc/oratab仍存在
    解决:手动删除并检查/etc/init.d/下的启动脚本。

  • 问题3: 空间未释放
    解决:使用lsof | grep deleted查找被占用文件,重启系统释放锁。


安全建议

  1. 操作前快照系统:使用VM快照或LVM备份,防止误操作。
  2. 审计日志:保留$ORACLE_HOME/deinstall/deinstall.log供排查。
  3. 最小权限原则:使用root执行删除命令,避免权限不足导致残留。

彻底卸载Oracle需严格遵循步骤,备份数据是首要前提,推荐优先使用deinstall工具,若遇特殊环境再手动清理,定期系统巡检可避免无效文件堆积。

引用说明

  • Oracle官方文档 Database Deinstallation Tool (deinstall)
  • My Oracle Support (MOS) Note 1301923.1
  • Linux Filesystem Hierarchy Standard (FHS) 3.0
0