Oracle19c数据库的卸载

前言

Oracle数据库的卸载相对其他应用来说较为繁琐,虽然官方有提供卸载脚本,但是要想做到完全卸载还是要自己额外删除一些数据才行。正如按照oracle时我们同样做了类似创建用户组等非常规的操作,这些都是要自己手动移除的。话不多说,开始介绍

oracle的卸载大致可以分为4个步骤:
1.关闭进程
2.执行oracle应用自带的卸载脚本
3.手动清除应用残留
4.重启服务器

(一)关闭进程

需要关闭的进程主要是lsnrctl服务和oracle服务。

1. 关闭oracle 进程
# 登录服务器后切换到oracle账号
su - oracle

# 以sysdba用户连接数据库
sqlplus /nolog
conn /as sysdba

# 关闭oracle进程
shutdown immediate;
2. 关闭lsnrctl监听器服务
# 登录服务器后切换到
su - oracle
lsnrctl stop

(二)执行oracle应用自带的卸载脚本

# 找到卸载脚本的位置,一般来说卸载脚本在oracle安装目录的deinstall目录下
cd $ORACLE_HOME/deinstall
./deinstall

deinstall脚本执行过程中,会删除数据库软件文件、配置文件以及日志等文件。需要注意的是脚本在删除的过程中会有交互式的询问,用户需要根据实际需要输入指令,来完成软件的卸载。
(这里笔者忘记截图了,大致的流程就是根据脚本中的交互式问题,输入"y"等文本,完成卸载。)

(三)手动清除应用和服务器配置残留

1. 清除应用残留
# 删除安装目录
# $ORACLE_BASE 指的是ORACLE的安装路径,一般是$ORACLE_HOME的父目录
# 需要注意的是,如果原先$ORACLE_BASE安装在用户目录下面,那么此处的操作要慎重,用户目录下一般会有很多其他数据,建议不要直接删除用户目录,自己可以切换到这个目录下面手动删除不需要备份的文件
rm -rf $ORACLE_BASE

# 删除配置文件
rm -rf /etc/oratab
rm -rf /etc/oraInst.loc
rm -rf /opt/ORCLfmap
2. 删除用户组和用户(若要重新安装,可以不删除)

一般来说,我们安装oracle应用时新增的用户主要就是oracle,新增的用户组主要是oinstalldbaoper,所以想要完全卸载的话,把相关的用户和用户组删除就行。

sudo userdel -r oracle
sudo groupdel oinstall
sudo groupdel dba
sudo groupdel oper
3. 清理环境变量

编辑/etc/profile~/.bash_profile文件,删除与Oracle相关的环境变量设置。
一般来说,我们如果上面的步骤已经删除了oracle用户的话,那么大概率~/.bash_profile文件也是不需要清理了,因为我们不太会在root用户的这个文件下面进行oracle应用的相关配置。

  • 对于/etc/profile,我们需要清理的主要内容为oracle相关环境变量和ulimit配置:
# Add History command timestamp
export ORACLE_BASE=/home/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=/home/oracle/product/19.3/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH


if [ \$USER = "oracle" ]; then  
    if [ \$SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi
  • 对于~/.bash_profile
    检查有没有oracle相关的配置,一般来说除了oracle用户外,其他用户不太会配置相关的oracle参数在这个文件上
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

如果卸载完成后,后续还需要重新安装数据库的话,那么强烈建议在卸载之前,先把关键的配置文件备注一下,方便后面创建数据库的时候可以参考。

4. 移除oracle服务(非必要)

注意,不是所有项目的服务器都有将oracle设置为系统服务的,可能只是单纯把数据库应用启动起来手动维护而已,所以有可能服务器上面压根就没有相关的service服务,想要保险期间的话,也可以一并执行下面的语句。

sudo systemctl disable oracledb_ORCLCDB-19c
sudo rm -f /etc/systemd/system/oracledb_ORCLCDB-19c.service
5. 清理包管理器中的安装包(非必要)

注意,笔者接触到的大部分数据库应用都不是通过包管理器下载安装的,很多都是去官网下载相关资源的。所以如果你之前不是通过yum等包安装工具安装的数据库软件,可以跳过这里的步骤。

sudo yum remove -y oracle-database-preinstall-19c
sudo rpm -e --nodeps oracle-database-ee-19c
6. 移除用户的限制文件

使用命令vi etc/security/limits.conf编辑limits.conf文件,删除如下内容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024 
oracle hard nofile 65536 
oracle soft stack 10240 

(四)重启服务器

使用reboot重启服务器,使新的配置完全生效

reboot

(五)需要留意的细节

① 卸载数据库是一件很有风险的事情,操作前请务必确保数据库是否确实不再需要保留,以及有价值的数据是否有进行留档备份。
② 如果有打算进行数据库的重装操作,那么在删除oracle用户目录的时候,下面几个文件需要格外注意先别删除,后面重新安装的时候可以拿来参考

  • 数据库静默安装响应文件(备份的前提是原先Oracle数据库是通过静默方式安装的)
    • $ORACLE_HOME/install/response/db_install.rsp
  • 监听器静默安装响应文件(备份的前提是原先监听器是通过静默方式安装的)
    • $ORACLE_HOME/assistants/netca/netca.rsp
  • 数据库配置助手响应文件(用于自动化创建和配置Oracle数据库实例)
    • $ORACLE_HOME/assistants/dbca/dbca.rsp
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。