作者:Digital Observer(施嘉伟) Oracle ACE Pro: Database PostgreSQL ACE Partner 11年数据库行业经验,现主要从事数据库服务工作 拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证 ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师 公众号/墨天轮:Digital Observer;CSDN/PGfans:施嘉伟;ITPUB:sjw1933
前言
在 Oracle 数据库的日常运维过程中,我们可能会遇到数据库迁移、升级或环境重建的需求。在这些情况下,彻底清理旧的 Oracle 安装环境是确保新环境顺利部署的重要步骤。特别是在 RAC(Real Application Clusters)环境 中,由于涉及多个节点和集群服务,清理工作更加复杂。
本指南详细介绍了 单机数据库 和 RAC 集群 的手动清理步骤,包括 停止服务、删除相关目录、清理配置文件、移除用户和组,以及检查残留进程,确保 Oracle 数据库及其相关组件被完整移除,为后续安装或环境调整提供一个干净的系统基础。
一 单机手工清理
-
停止监听
[oracle@orcl ~]$ lsnrctl stop [oracle@orcl ~]$ lsnrctl status
-
停止数据库
[oracle@orcl~]$ sqlplus / as sysdba SQL> shutdown immediate
-
删除oracle的inventory 目录 [root@orcl app]# rm -rf /u01/app/oraInventory/
-
删除Oracle的base目录下所有的目录 [root@orcl oracle]# rm -rf /u01/app/oracle/*
-
删除临时目录/tmp [root@orcl oracle]#cd /tmp [root@orcl tmp]#rm -rf CVU* [root@orcl tmp]#rm -rf OraInstall*
-
删除Oracle的配置文件 [root@orcl tmp]# rm -f /etc/ora*
-
删除oracle产生命令 [root@orcl tmp]# rm -f /usr/local/bin/*
-
其他的文件 [root@orcl .oracle]# rm -rf /usr/tmp/.oracle/
-
删除用户和组 [root@orcl tmp]# userdel -r oracle [root@orcl tmp]# groupdel dba [root@orcl tmp]# groupdel oinstall
-
撤销oracle的资源限制文件 [root@orcl tmp]# vi /etc/security/limits.conf
-
内核参数 [root@orcl tmp]# vi /etc/sysctl.conf [root@orcl tmp]# sysctl -p
-
删除oracle base [root@orcl ~]# rm -rf /u01
二 RAC手工清理
以下操作都在双节点进行
1 关库,关集群 [oracle@orcl1~]# srvctl stop database -d orcl (一个节点执行即可) [root@orcl1~]# $GRID_HOME/bin/crsctl stop crs
2 删除oracle用户的oracle_home和oracle_base
3 删除/usr/local/bin/下的文件 [root@orcl1 ~]# rm -f /usr/local/bin/dbhome [root@orcl1 ~]# rm -f /usr/local/bin/oraenv [root@orcl1 ~]# rm -f /usr/local/bin/coraenv
4 将/etc下的文件删除 [root@orcl1 ~]# rm -f /etc/oratab [root@orcl1 ~]# rm -f /etc/oraInst.loc [root@orcl1 ~]# rm -rf /etc/oracle
5 删除oracle用户 [root@orcl1 ~]# userdel -r oracle
6 删除grid用户的oracle_home和oracle_base
7 删除/etc下的配置文件 [root@orcl1 ~]# cd /etc/ [root@orcl1 etc]# rm -rf ora*
[root@orcl1 ~]# cd /etc/init [root@orcl1 init]# rm -rf oracle*
[root@orcl1 ~]# cd /etc/init.d/ [root@orcl1 init.d]# rm -f init.ohasd [root@orcl1 init.d]# rm -f ohasd [root@orcl1 init.d]# rm -f init.tfa
8.删除/var/tmp/.oracle 集群注册信息 [root@orcl1 ~]# rm -f /var/tmp/.oracle
9 删除/tmp下安装临时信息 [root@orcl1 ~]# cd /tmp [root@orcl1 tmp]#rm -rf CVU* [root@orcl1 tmp]#rm -rf OraInstall*
10 格式化ASM磁盘组 [root@orcl1 ~]# dd if=/dev/zero of=/dev/asm-diskb bs=1024 count=1000 [root@orcl1 ~]# dd if=/dev/zero of=/dev/asm-diskc bs=1024 count=1000 [root@orcl1 ~]# dd if=/dev/zero of=/dev/asm-diskd bs=1024 count=1000 [root@orcl1 ~]# dd if=/dev/zero of=/dev/asm-diske bs=1024 count=1000 [root@orcl1 ~]# dd if=/dev/zero of=/dev/asm-diskf bs=1024 count=1000
11 删除grid用户和属组 [root@orcl1 ~]# userdel -r grid [root@orcl1 ~]# groupdel dba [root@orcl1 ~]# groupdel oinstall
12.排查是否有残余进程 杀进程 [root@orcl1 ~]# ps -ef | grep crs [root@orcl1 ~]# ps -ef | grep ora [root@orcl1 ~]# ps -ef | grep grid [root@orcl1 ~]# kill -9 PID
附录: 参考文献
http://m.blog.itpub.net/31060020/viewspace-2644550/ https://www.cnblogs.com/wcwen1990/p/6661592.html https://www.cnblogs.com/jyzhao/p/7305195.html http://m.blog.itpub.net/25116248/viewspace-1158440/ How to completely remove 11.2 and 12.1 Grid Infrastructure, CRS and/or Oracle Restart - IBM: Linux on System z (Doc ID 1413787.1)

