oracle 11g卸载详细步骤,Oracle 11g 完全卸载步骤

题图来自Unsplash,基于CC0协议
导读
Oracle 11g 完全卸载详细步骤指南
卸载 Oracle 11g 数据库并非总是一键完成的过程,需要一系列谨慎的操作来确保彻底移除所有相关组件、服务、配置文件和残留数据。以下是针对 Windows 和 Linux 平台的详细卸载步骤,旨在实现“彻底卸载”。
重要前提:
- 备份: 在进行任何删除操作之前,务必备份重要的数据库数据、配置文件(如
listener.ora,tnsnames.ora,sqlnet.ora),以及任何自定义的脚本或应用程序依赖 Oracle 软件。虽然卸载焦点在于移除 Oracle,但备份总是一个好习惯。 - 停止服务: 确保所有 Oracle 相关服务都已停止。
- 了解系统: 确认您的系统上是否存在多个 Oracle 实例,仅卸载您需要的那个。使用 Oracle Universal Installer (Universal Installer) 或相关工具可能可以查看已安装的实例。
- 管理员权限: 执行部分卸载操作需要管理员(Windows)或 root(Linux)权限。
- 可能的数据丢失: 卸载过程会删除 Oracle 软件和相关的数据文件(除非备份)。确认您不再需要数据库中的任何信息。
卸载步骤详解
通用准备步骤(适用于 Windows 和 Linux)
- 停止所有 Oracle 服务:
- Windows: 打开“服务”管理器(
services.msc),查找所有以Oracle**或OraDb11g_homeX**等类似前缀命名的服务(具体名称依赖于安装时的选择,常见有:Oracle Database XX Listener, OracleServiceXXX等),手动停止它们。特别注意停止 Oracle 数据库实例本身(例如DBConsole或实例名服务)。 - Linux:
- 停止监听器:
[oracle@hostname ~]$ lsnrctl stop - 停止数据库实例: 进入 SQL*Plus (
sqlplus / as sysdba),然后执行shutdown immediate。
- 停止监听器:
- Windows: 打开“服务”管理器(
平台特定卸载步骤
Windows 平台卸载步骤:
-
使用控制面板卸载程序:
- 打开“控制面板” -> “程序” -> “程序和功能”(或“卸载程序”)。
- 在列表中找到 Oracle 安装的相关条目,常见的有:
- Oracle Database 11g XX to X.X.XXXX Release 安装程序
- Oracle *数据库 产品**名 (例如:Oracle Database 11g X - Client)
- Oracle *数据库 Middleware**名
- 装载库 Oracle于...
- 由于 Oracle 产品庞大,通常会安装多个组件。目标是彻底,所以需要仔细识别并尽量卸载掉与本次安装(数据库服务器本身)紧密相关的版本。 检查每个即将卸载项目的详细信息,确保它确实是您现在要移除的那个 11g 数据库实例或客户端(如果不是,不要卸载)。请优先考虑使用 Oracle Universal Installer (OUI) 来执行“Deinstall”操作,这通常比仅仅使用控制面板卸载更彻底(见后续步骤)。
- 如果确认某个安装单元可以卸载(例如,只卸载数据库服务器模块),则右键点击并选择“卸载”。系统会弹出一个“Add/Remove Products”窗口,需要输入数据库管理员用户名和口令进行身份验证后继续卸载,这个过程可能需要较长时间。
- 对于完全移除,强烈建议使用 OUI Deinstall 工具。
-
使用 Oracle Universal Installer (OUI) Deinstall 工具卸载(推荐方法):
- 这是 Oracle 提供的官方卸载工具,通常已经随安装介质或软件包一同安装。查找名为
deinstall或oui的可执行文件(通常位于 Oracle 安装顶级目录下的oraInventory下的BIN目录,例如C:oracleora11goraInventoryBIN)。OUI 能查找核心 Oracle 组件、数据库以及相关的 Oracle Homes 和 Inventory。 - 双击
deinstall或通过命令行运行java -jar(可能需要 java) 执行oui。启动图形界面或命令行后,仔细阅读提示。 - 选择“Deinstall a Product”或类似选项。
- 在“Discover”或“Select Operations”步骤,勾选您要卸载的 Oracle 产品(通常是“Oracle Database 11g”。如果系统中只有一个 11g,则只有一个选项)。OUI 会扫描并列出受影响的 Oracle Homes 和 Inventory。
- OUI 最终会提供一个
deinstall脚本/选项,让您确认操作,并执行实际的文件和注册表项删除。务必仔细阅读每一步,可以点击“Summary”或类似按钮查看最终要删除的内容,确认齐全后继续执行。 - 完成后,OUI 会提示哪些目录可以手动删除,并可能自动将其移出环境路径(如
PATH环境变量)。手动检查systemconfigsystemprofileAppDataLocalMicrosoftWindowsINetCache...oci*目录下是否真的不再包含任何与 Oracle 11g 相关的内容。
- 这是 Oracle 提供的官方卸载工具,通常已经随安装介质或软件包一同安装。查找名为
-
手动删除残留文件和目录(如果 OUI 或控制面板未完全移除):
- 删除安装目录: 找到 Oracle 软件的安装根目录(例如
C:oracleora11g或Oracle文件夹下的product11.1.0dbhome_1类似内容),将其删除。 - 删除数据文件目录: 查找并且删除与该数据库实例关联的数据文件存放目录(通常在
C:app用户账户目录下对应实例名的db_files或oradata子文件夹内)。 - 删除日志和归档文件: 如果还有数据库相关的日志和归档副本,也应一同删除(或确保它们已被备份并已备份完毕)。
- 检查用户主目录: 查看所有可能运行过 Oracle 服务的用户主目录下是否存在
.ora*相关配置文件或隐藏文件夹(如Oracle),根据情况决定是否删除(除非它们对其他 Oracle 实例或故障排查所需则保留)。 - 检查临时文件夹: 查看
C:Temp或用户AppDataLocalTemp 下是否有以.ora或 Oracle 相关名称创建的文件夹或临时文件,可选择删除。
- 删除安装目录: 找到 Oracle 软件的安装根目录(例如
-
清理注册表键值(谨慎操作!):
- 按
Win + R输入regedit打开注册表编辑器。 - 在注册表编辑器中,安全且通常的做法是搜索与
Oracle,Oracle**,Ora**,11g等相关的字符串。 - 删除以下键值:
HKEY_LOCAL_MACHINESOFTWAREOracle(通常包含主要的 Oracle 产品键值)HKEY_LOCAL_MACHINESOFTWAREWow6432nodeOracle(64位系统上的 32位 Oracle 软件,如果适用)HKEY_CURRENT_USERSOFTWAREOracle(可能存在)- 在
SOFTWAREOracle键下,找到并删除对应的 Oracle 11g 版本目录和产品键值。截断SOFTWAREOracle键本身(而不是删除,但确保下级键完全删除)可能会使后续安装变得复杂,不推荐。 - 到
SOFTWAREORACLE(注意大小写或区分)。 SOFTWAREODBC下也可能包含 Oracle 驱动程序的配置,如果不再使用 Oracle ODBC 可能需要手动编辑或删除对应的 DSN 键值。
- 删除注册表项前,再次确认是否确实不再需要! 对此操作不确定时,可以只选择删除卸载时 OUI 认为与该产品关联的注册表项。
- 删除后,重启计算机使部分更改生效。
- 按
-
检查环境变量:
- 右键单击“此电脑”或“我的电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
- 在“系统变量”和“用户变量”中,删除或修改路径,移除指向 Oracle 安装目录(如
C:oracleora11gin,C:oracleora11gproduct11.1.0dbhome_1in)的内容。 - 检查
PATH,TNS_ADMIN,ORACLE_HOME,ORACLE_BASE(如果设置)等变量,确保它们与 Oracle 11g 无关。 CLASSPATH如果包含 Oracle 11g 的classes12.jar等也可能需要调整或删除。- 删除后,命令行窗口需要关闭并重新打开才能使环境变量变化生效。
-
检查 Windows 服务再次确认:
- 打开“服务”管理器,再次确认检查
Oracle**或OraDb**开头的任何服务以及监听器服务 (OracleListener**) 是否 完全消失。确认可以正常启动和重启其他服务。
- 打开“服务”管理器,再次确认检查
-
删除 Oracle 用户(可选但推荐):
- Oracle 安装通常会为特定实例创建了 Windows 用户或使用了系统账户。如果您不再需要该实例,考虑在“管理工具”->“计算机管理”->“本地用户和组”->“用户”中安全删除该专用用户(确保它的服务已不再运行),但请注意这并非必须的卸载步骤,因为 Oracle 文件已经删除。
Linux 平台卸载步骤:
-
切换到 Oracle 用户(或拥有安装带有权限的用户):
su - oracle或sudo -u oracle -i
-
停止所有相关进程和服务:
- 停止监听器:
[oracle@hostname ~]$ lsnrctl stop - 停止数据库实例:
[oracle@hostname ~]$ sqlplus / as sysdba- SQL>
shutdown immediate(如果连接时提示输入用户名/口令,应为sys as sysdba) - SQL>
exit
- SQL>
- 停止监听器:
-
确定安装的 Oracle 版本和安装路径:
- 查询安装日志,例如
/u01/oracle/ora11g/installActions2023xx.log文件,里面会记录安装文件存放路径/u01/oracle/ora11g/product/11.1.0/dbhome_1或/u02/oracle/11g等。 - 检查用户的主目录,通常有一个
ora_目录下的inventory,可以使用source /u0*/oracle/11g/oraEnv.sh显示ORACLE_HOME路径。检查/u0*/app/oracle/oraInventory目录,这是 Oracle Inventory 的根。 - 使用
rpm -qa | grep oracle命令(如果.rpm包安装的)或find / -name "oracle"等命令查找所有 Oracle 文件位置。
- 查询安装日志,例如
-
使用 RPM 包管理器卸载(如果是通过 RPM 安装的):
[root@hostname ~]# rpm -e oracle-XX-XXXX-X.XX.XXXX-release[root@hostname ~]# rpm -e oracle-database-server-X.XX-release[root@hostname ~]# rpm -e oracle-instantclientXXXX- 强烈建议先使用
rpm -qa | grep oracle列出所有 Oracle 相关 RPM 包,然后确定并逐个卸载。 卸载后,可能需要清除一些配置文件,手动删除ORACLE_HOME和oraInventory目录。
-
使用 Oracle Universal Installer (OUI) Deinstall 工具:
- 与 Windows 类似,OUI 是最推荐的方法,因为它能处理平台差异。位于
/u0*/oracle/11g/oraInventory/Inventory等路径下的 OUI 可执行文件。 [oracle@hostname ~]$ cd /u0*/oracle/11g/oraInventory[oracle@hostname ~]$ java -jar ouijar(或当前目录下的orainstRoot.sh可执行文件来运行 deinstall 工具)。- 交互式图形界面或命令行交互,选择 Deinstall Option。
- 如果遇到找不到 OUI 的情况,可以在 SQL*Plus (
sqlplus / as sysdba) 中执行@?/help/dbhome_1/deinstall/deinstall.sql来触发 OUI Deinstall 脚本(路径可能需要根据实际ORACLE_HOME调整),但确认了,找到位置后直接运行效果最好。 - 注意: 在运行 Deinstall 脚本或 OUI 时,可能需要输入用户名和密码 (Sys 和 System 用户) 来验证 Java 设备。
- 与 Windows 类似,OUI 是最推荐的方法,因为它能处理平台差异。位于
-
手动删除核心 Oracle 文件和目录:
- 删除 Oracle Homes: 删除软件目录 (例如
/u01/app/oracle/product/11.1.0/dbhome_1) 和对应的Classic文件夹(如果创建)。 - 删除数据文件和日志文件: 删除与要卸载数据库 完全关联 的数据文件目录(通常位于
/u0*/app/oracle/oradata/里对应实例名的文件夹),以及初始化参数文件(spfile)、密码文件、重做日志文件、控制文件(这些控制文件通常在或不在ORADATA目录下,有时在/u0*/app/oracle/dbs也可能有*.ctl,*.dbf,*.log)。*通常这些独立运行的 Oracle 操作系统文件(如 `.dbf,.log,.ctl,.ora,.bak` 等)需要您知道它们的具体位置并手动删除**。 - 删除监听器配置: 删除
listener.ora和tnsnames.ora文件(通常位于$ORACLE_HOME/network/admin目录,或者配置在$ORACLE_HOME/bin/oraenv等脚本里)。停止lsnrctl后,其运行目录下的文件通常只保留重启时用,可以清理。 - 检查用户的起始菜单/桌面图标和快捷方式: 删除任何 Oracle 11g 的快捷方式或自启动项目。
- 删除 Oracle Homes: 删除软件目录 (例如
-
移除用户和服务(仅限 Linux 根用户):
- 删除用户:
[root@hostname ~]# userdel -r <username>(如果该用户仅用于 Oracle,则删除它,确保已确认不再需要,且其家目录下可能还有额外文件,可在这里统一删)。 - 删除组 (可选):
[root@hostname ~]# groupdel <groupname> - 删除 Oracle 用户的 Oratab 文件(如果存在且不被其他 Oracle 实例共享):
/etc/oratab或$ORACLE_HOME/dbs/oratab文件记录了 Oracle 实例配置。删除 与刚才版本匹配 的那一行。如果此实例是唯一实例,则改成(string) :(操作系统范围查看所有实例最好) 或不受影响。
- 删除用户:
-
清理环境变量(只能由 root 用户操作):
- 编辑受影响用户的 shell 配置文件,如
/etc/profile,~/.bash_profile,~/.bashrc,/root/.bash_profile等,在这些文件中,删除或注释掉所有与 Oracle 11g 相关的路径设置(PATH,LD_LIBRARY_PATH,TNS_ADMIN,ORACLE_HOME,ORACLE_BASE即可)。 - 删除 Oracle 的企业级管理员用户及其权限。
- 运行
source /etc/profile或重新登录使环境变量变化生效。
- 编辑受影响用户的 shell 配置文件,如
-
检查防火墙规则(如果监听器端口被占用):
- 卸载后,确保防火墙(如
firewalld或iptables)中不再阻止 Oracle 监听器(默认 1521 端口)的访问(如果监听器未被重新安装)。但通常卸载后不再需要监听器,是否需要放行取决于环境。
- 卸载后,确保防火墙(如
-
确认卸载效果(仅 root):
[root@hostname ~]# ps -ef | grep pmon(应无 Oracle 实例进程)[root@hostname ~]# ls -l /u0*/app/oracle/oraInventory/*(应不再显示对应版本的详细信息)[root@hostname ~]# env | grep -i oracle(已清除环境变量)[root@hostname ~]# netstat -tulnp | grep <Oracle_Port>(应无对应监听端口,除非仍有关联进程,但 Linux 卸载或手动删除文件后,仅强就检查强)。
完全卸载完成后的注意事项
- 环境清理: 确保所有用户(特别是 root)的环境变量不再指向 Oracle 11g。手动检查用户的
.bash_profile或.bashrc。 - 路径检查: 打开新的命令行窗口,输入
which oracle或which sqlplus或whereis oracle,应该没有任何 Oracle 命令的路径。 - 服务检查: 确保系统服务列表、系统启动项中不再有 Oracle 服务。
- Oracle 用户账户: 如果未完全删除 Oracle 用户,请确保其权限和资源占用正常。
彻底卸载 Oracle 11g 需要耐心和细致,上述步骤虽然全面,但具体情况可能因安装过程、系统配置、操作系统差异而有所不同。安全操作和充分备份是关键。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com