共计 2637 个字符,预计需要花费 7 分钟才能阅读完成。
本文主要描述如何在 Linux 下完全卸载 Oracle 和 grid 软件。
操作环境
SUSE Linux Enterprise Server 11
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 的文件或目录会被删除。)
更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
: