您现在的位置是:首页 >其他 >如何通过命令行删除Oracle 数据库网站首页其他

如何通过命令行删除Oracle 数据库

Lao A(zhou liang)的菜园 2024-06-17 10:24:54
简介如何通过命令行删除Oracle 数据库

Oracle提供了drop database命令用来删除数据库,代码如下所示:

SQL> startup mount                            

ORACLE instance started.                                                                   

Total System Global Area  264241152 bytes     

Fixed Size                  2095536 bytes     

Variable Size              83887696 bytes     

Database Buffers          171966464 bytes     

Redo Buffers                6291456 bytes     

Database mounted.                             

SQL> alter system enable restricted session;                                             

System altered.   

SQL> drop database;                                                

Database dropped.   

该命令会物理级别删除数据库,同时Oracle警告日志会显示如下内容:

Wed Jul 11 15:35:16 CST 2012                   

drop database                                  

Wed Jul 11 15:35:17 CST 2012                   

Deleted file /oradata/zhoul/system01.dbf       

Deleted file /oradata/zhoul/undotbs01.dbf      

Deleted file /oradata/zhoul/sysaux01.dbf       

Deleted file /oradata/zhoul/redo01.log         

Deleted file /oradata/zhoul/redo02.log         

Deleted file /oradata/zhoul/redo03.log         

Deleted file /oradata/zhoul/temp01.dbf         

Instance terminated by USER, pid = 13136       

Deleted file /oradata/zhoul/control01.ctl      

Completed: drop database                       

从以上的警告日志中,可以看到drop database命令仅仅删除了数据库,并没有删除与实例zhoul的相关配置,这会导致不能用DBCA图形化工具创建相同实例名字的数据库

以下步骤为手工彻底删除数据库的过程:

  1. 关闭实例,删除数据文件、控制文件、日志文件、闪回文件、归档文件。

select name from v$datafile;--查看数据文件位置

select name from v$controlfile;--查看控制文件位置

select name from v$archived_log;—查看归档文件位置

select name from v$flashback_database_logfile;—查看闪回文件位置

注意 在数据库open状态下删除数据文件,数据文件的句柄(handle)还会存在。

  1. 删除日志文件目录,如$ORACLE_BASE/admin/$ORACLE_SID下的所有目录。
  2. 删除$ORACLE_HOME/dbs目录下与所删除实例相关的信息,如lk$ORACLE_SID、orapw$ORACLE_SID及参数文件。
  3. 删除配置文件listener.ora、tnsnames.ora中的相关内容。
  4. 删除配置文件/var/opt/oracle/oratab或者/etc/oratab中的相关内容。
  5. 检查$ORACLE_HOME目录下与所删除实例相关的文件,确认之后删除。假如实例名为zhoul,则删除zhoul相关的文件。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。