杰瑞科技汇

oracle数据库卸载教程

第一部分:卸载前的准备工作(极其重要!)

在执行任何卸载操作之前,请严格按照以下步骤操作,这可以避免后续出现各种意想不到的问题。

  1. 停止所有相关服务

    • Windows:
      • 打开“服务”(Services),找到所有以 "Oracle" 开头的服务,
        • OracleOraDB19Home1TNSListener
        • OracleServiceORCL (orcl 是你的数据库名称)
        • OracleVSSWriterORCL
      • 右键点击每个服务,选择“停止”。
    • Linux:
      • root 用户或具有 sudo 权限的用户登录。
      • 使用以下命令停止监听器:
        lsnrctl stop
      • 使用以下命令停止数据库实例:
        sqlplus / as sysdba
        SQL> shutdown immediate;
        SQL> exit;
      • 停止 Oracle 相关的 HTTP 服务(如果存在):
        opmnctl stopall
  2. 记录关键信息

    • Oracle Home 路径: 这是最重要的信息,通常位于类似 C:\app\oracle\product\19.3.0\dbhome_1 (Windows) 或 /u01/app/oracle/product/19.3.0/dbhome_1 (Linux) 的路径,你可以在环境变量 ORACLE_HOME 中找到它。
    • 数据文件、控制文件、重做日志的位置: 这些文件通常不在 Oracle Home 目录下,而是在另一个你指定的目录中(C:\oradata\ORCL/u01/oradata/ORCL),卸载 Oracle 软件通常不会自动删除这些数据文件,你需要手动删除它们以彻底清除数据。
    • 监听器配置文件: 位于 $ORACLE_HOME/network/admin/ (Linux) 或 %ORACLE_HOME%\network\admin\ (Windows) 下的 listener.ora 文件。
    • 数据库配置文件: 位于 $ORACLE_HOME/dbs/ (Linux) 或 %ORACLE_HOME%\database\ (Windows) 下的 spfileORCL.orainitORCL.ora 文件。
  3. 关闭所有与 Oracle 相关的程序

    确保没有正在运行的 SQL Developer, PL/SQL Developer, Toad 等工具,也没有任何依赖于 Oracle 客户端的应用程序。

  4. 以正确的用户身份登录

    • Windows: 建议使用管理员账户登录。
    • Linux: 必须使用安装 Oracle 软件的同一个用户(通常是 oracle 用户)登录,或者使用 root 用户执行某些特定步骤。

第二部分:在 Windows 上卸载 Oracle 数据库

Windows 上的卸载相对简单,主要通过“控制面板”或 Oracle 自带的卸载工具进行。

使用“控制面板”卸载(推荐)

  1. 打开 控制面板

  2. 选择 程序和功能

  3. 在程序列表中,找到所有与 Oracle 相关的条目,卸载顺序通常是从下到上(即先安装的后卸载),这样可以避免依赖问题。

    • Oracle Database 19c XE (如果是 Express Edition)
    • Oracle Database 19c <版本号> <产品类型> ( Oracle Database 19c 19.00.00.0.0 Database)
    • Oracle Net Services XEOracle Net Services <版本号>
    • Oracle Java Development Kit (如果随数据库一同安装)
    • Oracle Home X.X.X.X (这是核心的 Oracle Home 安装目录)
    • Oracle Installation Products (Oracle Universal Installer)
    • Oracle Configuration Manager
    • Oracle XML Database
    • ...以及其他所有以 "Oracle" 开头的组件。
  4. 右键点击每个组件,选择 卸载,按照向导提示完成卸载过程,这个过程可能会比较耗时,请耐心等待。

使用 Universal Installer 卸载

如果控制面板列表不完整或卸载失败,可以尝试使用 Oracle 自带的卸载工具。

  1. 打开 命令提示符(CMD)PowerShell以管理员身份运行
  2. 导航到 Oracle Universal Installer 的目录,路径取决于你的版本,
    cd C:\app\oracle\product\19.3.0\dbhome_1\oui\bin
  3. 运行 setup.exe 并指定 deinstall 参数:
    setup.exe -deinstall -force
  4. 此时会启动一个图形化或命令行的卸载界面,它会自动检测你系统中安装的 Oracle 组件。
  5. 按照向导的提示进行操作,它会询问你是否要删除数据库实例、配置文件等,请根据你的实际情况选择。
  6. 卸载完成后,它会生成一个日志文件 deinstall<timestamp>.log,请检查日志确保没有错误。

第三部分:在 Linux 上卸载 Oracle 数据库

Linux 上的卸载主要是通过命令行执行 $ORACLE_HOME/deinstall/deinstall 脚本,这个脚本非常智能,能够自动检测并移除大部分组件。

  1. 登录系统

    • 使用安装 Oracle 数据库的同一个用户(oracle)登录到服务器。
  2. 设置环境变量

    • 加载 oracle 用户的 profile 文件,以确保 ORACLE_HOME, ORACLE_SID 等环境变量正确设置。
      . .bash_profile
    • 验证 ORACLE_HOME 是否正确:
      echo $ORACLE_HOME
      # 应该输出类似 /u01/app/oracle/product/19.3.0/dbhome_1 的路径
  3. 运行卸载脚本

    • 进入 $ORACLE_HOME/deinstall 目录并执行 deinstall 脚本:
      cd $ORACLE_HOME/deinstall
      ./deinstall
  4. 跟随交互式向导

    • 脚本启动后,首先会进行一些检查。
    • 它会显示一个配置摘要,包括它将要执行的操作,
      • 移除 Oracle Home 目录。
      • 移除 Oracle Inventory。
      • 移除用户和组(可选)。
      • 移除自动启动/停止脚本(如 /etc/init.d/oratab 相关内容)。
    • 仔细阅读摘要,确认无误后,输入 y 并按回车,开始卸载。
  5. 以 root 用户执行清理脚本

    • 卸载脚本完成后,它会提示你以 root 用户身份执行一个脚本,这个脚本的路径通常在 /tmp 目录下,
      # 切换到 root 用户
      su - root

    执行脚本

    /tmp/oracle_deconfig.sh

    
    *   这个脚本会移除一些只有 root 用户才能删除的文件和配置,如 `/etc/oratab`、`/etc/init.d` 中的服务脚本等。
  6. 验证卸载

    • 切换回 oracle 用户,检查 ORACLE_HOME 目录是否还存在。
      exit  # 退出 root 用户
      ls $ORACLE_HOME  # 如果报错 "No such file or directory",说明目录已被删除
    • 检查 /etc/oratab 文件是否已被清空或删除。

第四部分:手动清理残留文件

无论使用哪种方法,都可能会有一些残留文件需要手动清理。

  1. 删除数据文件、日志文件和临时文件

    • 这是最关键的一步,因为这些文件通常不在 Oracle Home 目录下,卸载脚本不会自动删除它们。
    • 找到你当初存放数据的位置(/u01/oradataC:\oradata),然后手动删除整个目录。
      # Linux
      sudo rm -rf /u01/oradata

    Windows (以管理员身份打开 CMD)

    rmdir /s /q C:\oradata

  2. 删除 Oracle 用户和组(Linux)

    • 如果确定不再需要 Oracle,可以删除对应的用户和组。
    • 警告: 此操作不可逆,请确保所有相关数据都已备份或删除。
      # 删除用户
      sudo userdel -r oracle
      # -r 选项会同时删除用户的家目录

    删除组

    sudo groupdel oinstall sudo groupdba dba

  3. 删除残留的目录和文件

    • Windows:
      • C:\Program Files\Oracle
      • C:\app\ (如果里面只有 Oracle 相关的内容)
      • C:\oradata
      • C:\oracle
      • 检查环境变量 PATH, ORACLE_HOME, TNS_ADMIN 等,并移除 Oracle 相关的条目。
    • Linux:
      • /u01/app/oracle (或你安装的任何 base 目录)
      • /u01/oradata
      • /tmp/OraInstall<timestamp>
      • /var/tmp/orainstall
      • 检查并编辑 /etc/oratab, /etc/sysctl.conf, /etc/security/limits.conf 等文件,移除 Oracle 相关的配置。
  4. 清理注册表(Windows)

    • Win + R,输入 regedit 打开注册表编辑器。
    • 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Oracle,删除整个 Oracle 键。
    • 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle (如果是 64 位系统),也删除整个 Oracle 键。
    • 警告: 修改注册表有风险,请务必小心。

第五部分:常见问题与解决方法

  • 问题: 卸载过程中提示“有文件正在使用”。

    • 解决: 确保所有 Oracle 服务都已停止,并且没有其他程序(如 SQL Developer)在运行,重启电脑后再次尝试卸载。
  • 问题: deinstall 脚本报错,找不到某些组件。

    • 解决: 这可能是因为你的安装不完整或之前有部分卸载,可以尝试手动删除报错提到的文件或目录,然后再次运行 deinstall 脚本,或者在脚本运行时选择忽略某些错误。
  • 问题: 卸载后,重新安装时出现“检测到旧 Oracle Home”的错误。

    • 解决: 这说明之前的卸载不彻底,请仔细检查并手动删除所有残留的 Oracle 目录、文件和环境变量,特别是 ORACLE_HOMEORACLE_SID 的设置。
  • 问题: Linux 上 deinstall 脚本执行失败。

    • 解决: 检查 oracle 用户的权限,确保对 $ORACLE_HOME 目录有读写执行权限,检查磁盘空间是否足够,查看 deinstall 生成的日志文件,根据错误信息进行排查。

卸载 Oracle 数据库是一个需要谨慎操作的过程,遵循“先停止服务,再卸载软件,最后手动清理数据”的原则,可以最大程度地保证卸载的彻底性。

备份你的数据!备份你的数据!备份你的数据! 重要的事情说三遍。

分享:
扫描分享到社交APP
上一篇
下一篇