目的

我们使用Oracle数据库的过程中,有时候需要删除某个测试实例,但此时正好遇到DBCA无法调用图型界面或者是没有gnome界面的情况,就需要使用命令来删除一个实例。

CentOS使用响应文件删除数据库

推荐使用此方案,就不需要再手动删除相关目录和配置。

先决条件

使用同版本的dbca.rsp文件来进行删除。

1、确定当前系统的响应文件位置。

[root@localhost ~]# cd /
[root@localhost /]# find -name dbca.rsp

2、编辑响应文件。

这里需要仔细核对要删除的数据库实例名。

  1. OPERATION_TYPE = "deleteDatabase"
  2. [DELETEDATABASE]
  3. SOURCEDB = "orcl"

只需要配置这三个参数,:wq保存退出即可。
文件参数注解

  • OPERATION_TYPE 操作类型。
  • [DELETEDATABASE] 类似于分组一样,表示下面的参数都是deleteDatabase操作的参数,直至找到下一个中括号。
  • SOURCEDB 数据库名,这里指定的是实例名。

    3、切换至oracle用户,删除实例。

    [root@localhost /]# su - oracle
    [oracle@localhost ~]$ dbca -silent -deleteDatabase -responseFile /home/database/database/response/dbca.rsp
    image.png
    至此,实例完全删除。

CentOS使用SQL删除数据库

这里以orcl为例,没有配置主机名,默认显示为localhost。 数据库路径以正常安装为例,非正常安装的路径需要先记录数据文件和日志文件路径。

先决条件

必须使用sysdba权限来执行此语句。
数据库必须运行mount模式中,并且是独占和受限。

1、确定当前环境变量的ORACLE_SID。

这里需要仔细确定是否是需要删除的实例。

[oracle@localhost database]$ echo $ORACLE_SID
image.png
如果显示不是要删除的实例,则需要指定相应的ORACLE_SID。

这里的ORACLE_SID,必须是大写,等号后面跟实例名。

[oracle@localhost database]$ export ORACLE_SID=orcl

2、将数据库启动到独占受限模式。

[oracle@localhost database]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> startup mount exclusive restrict;
SQL> drop database;
image.png

3、删除数据文件实例名目录。

[oracle@localhost ~]$ rm -rf $ORACLE_BASE/oradata/orcl

4、删除跟踪文件实例名目录。

[oracle@localhost ~]$ rm -rf $ORACLE_BASE/diag/rdbms/orcl

5、删除oratab配置文件中的信息。

[oracle@localhost ~]$ vim /etc/oratab

该行主要是显示orcl实例的ORACLE_HOME,需要去掉该行。

image.png
至此,实例完全删除。