目的
我们使用Oracle数据库的过程中,有时候需要删除某个测试实例,但此时正好遇到DBCA无法调用图型界面或者是没有gnome界面的情况,就需要使用命令来删除一个实例。
CentOS使用响应文件删除数据库
推荐使用此方案,就不需要再手动删除相关目录和配置。
先决条件
1、确定当前系统的响应文件位置。
[root@localhost ~]# cd /
[root@localhost /]# find -name dbca.rsp
2、编辑响应文件。
这里需要仔细核对要删除的数据库实例名。
OPERATION_TYPE = "deleteDatabase"
[DELETEDATABASE]
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
至此,实例完全删除。
CentOS使用SQL删除数据库
这里以orcl为例,没有配置主机名,默认显示为localhost。 数据库路径以正常安装为例,非正常安装的路径需要先记录数据文件和日志文件路径。
先决条件
必须使用sysdba权限来执行此语句。
数据库必须运行mount模式中,并且是独占和受限。
1、确定当前环境变量的ORACLE_SID。
这里需要仔细确定是否是需要删除的实例。
[oracle@localhost database]$ echo $ORACLE_SID
如果显示不是要删除的实例,则需要指定相应的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;
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,需要去掉该行。
至此,实例完全删除。