Linux 完整卸载oracle和grid软件
本文主要描述如何在Linux下完全卸载oracle和grid软件。
操作环境
SuSE11
oracle用户完整删除操作步骤
1、登录oracle用户,停止Oracle数据库监听和数据库实例
oracle@Linux:~> lsnrctl stop
oracle@Linux:~> sqlplus / as sysdba
SQL> shutdown immediate;
SQL> exit
说明:可以使用ps -ef | grep 'oracle' | grep -v grep确认是否还有进程。如果有,可以直接手工kill一下。
2、获取oracle用户下的ORACLE_HOME和ORACLE_BASE路径并执行删除。原因是oracle安装目录不一定都是标准安装方式完成,如果是标准方式可直接删除/opt/oracle、/opt/oraInventory目录
Linux:~# su - oracle oracle:~$ echo $ORACLE_BASE --> /home/oracle/base oracle:~$ echo $ORACLE_HOME --> /home/oracle/product
切换到root用户,删除上述获取到的oracle用户的ORACLE_BASE和ORACLE_HOME目录。
Linux:~# rm -rf /home/oracle/base
Linux:~# rm -rf /home/oracle/product
3、删除/usr/local/bin目录下的dbhome、oraenv、coraenv文件
Linux:~# rm /usr/local/bin/dbhome
Linux:~# rm /usr/local/bin/oraenv
Linux:~# rm /usr/local/bin/coraenv
4、删除/etc目录下的oratab、oraInst.loc文件、删除/etc/oracle目录
Linux:~# rm -rf /etc/oratab
Linux:~# rm -rf /etc/oracle
Linux:~# rm -rf /etc/oraInst.loc
5、删除/tmp目录安装oracle产生的相关文件
Linux:~# rm -rf /tmp/*oracle*
Linux:~# rm -rf /tmp/Oracle*
Linux:~# rm -rf /tmp/.oracle
Linux:~# rm -rf /tmp/CUV*
Linux:~# rm -rf /tmp/OraInst*
6、删除oracle用户
Linux:~# userdel -rf oracle
7、删除dba和oinstall用户组
Linux:~# groupdel dba
Linux:~# groupdel oinstall
8、检查/dev/shm目录下是否存在用户为oracle的相关的文件或者目录,如果有则删除。
9、卸载oracle用户结束。
grid用户完整删除操作步骤
1、切换到grid用户,停止grid下的ASM实例监听和HAS服务。
grid@Linux:~> lsnrctl stop
grid@Linux:~> crsctl stop resource -all
说明:可以使用ps -ef | grep 'grid' | grep -v grep确认是否还有进程。如果有,可以直接手工kill一下。
2、获取grid用户的ORACLE_HOME和ORACLE_BASE路径并执行删除。原因是grid用户的安装目录不一定都是标准安装方式完成,如果是标准方式可直接删除/opt/oracrs、/opt/oraadm、/opt/oraInventory目录
Linux:~# su - grid
grid:~$ echo $ORACLE_BASE --> /home/grid/base
grid:~$ echo $ORACLE_HOME --> /home/grid/product
切换到root用户,删除上述获取到的grid用户的ORACLE_BASE和ORACLE_GRID目录。
Linux:~# rm -rf /home/grid/base
Linux:~# rm -rf /home/grid/product
3、删除grid用户
Linux:~# userdel -rf grid
4、清理ASM相关的DG的信息
Linux:~# cd /dev/diskgroup
Linux:~# dd if=/dev/zero of=./dg_ora bs=8k count=10240
Linux:~# dd if=/dev/zero of=./dg_data bs=8k count=10240
Linux:~# dd if=/dev/zero of=./dg_backup bs=8k count=10240
5、卸载grid用户结束。
方法二(利用find批量删除,如果看不懂下述操作命令不建议操作)
#delete oracle relation file and directory
ps -fu oracle | grep -Ev 'PID|grep' | awk '{print $2}' | xargs kill -9
find / -maxdepth 3 -path /proc -prune -o -user oracle -print0 | xargs -0 rm -rf
find / -maxdepth 3 -path /proc -prune -o -group dba -print0 | xargs -0 rm -rf
find / -maxdepth 3 -path /proc -prune -o -group oinstall -print0 | xargs -0 rm -rf
#delete grid relation file and directory
ps -fu grid | grep -Ev 'PID|grep' | awk '{print $2}' | xargs kill -9
find / -maxdepth 3 -path /proc -prune -o -user grid -type f -print0 | xargs -0 rm -rf
find / -maxdepth 3 -path /proc -prune -o -user grid -type d -print0 | xargs -0 rm -rf
说明:(1)如果数据文件管理方式为ASM管理,则同样需要执行dd命令删除磁盘组信息。
(2)必须清楚上述命令使用的影响(如非oracle/grid用户但用户组为dba/oinstall的文件或目录会被删除。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义