天天看点

ORACLE手工删除数据库

Step 1: .获得控制文件、数据文件,日志文件等相关信息

获取这些信息,一方面是为了后面的建库做参考,另外一个是为了验证后面一些操作,如果这些都没有必要,其实是可以可以跳过这一步的。

Step 2: 停止监听服务和OEM

Step 3: 关闭数据库实例

Step 4:启动到数据库实例到mount状态

使用exclusive restart或普通模式都可以

Step 5: 修改参数为允许受限的会话模式

这一步骤是必须的,否则在drop database时会报ORA-01586: database must be mounted EXCLUSIVE and not open for this operation

Step 6:使用drop database命令来清除数据库

SQL> drop database;

drop database 命令会删除控制文件和在控制文件中所列的数据文件,如果数据库正在使用spfile文件,则一并删除。

备份文件和归档日志文件不会被删除,我们可以之后通过RMAN进行删除。

如果数据库是建立在裸设备上,那么这个命令不会删除指定裸设备上的文件。

# deletes all database files, both ASM and non-ASM When you issue this statement, Oracle Database drops the database and deletes all control files and datafiles listed in the control file. If the database used a server parameter file (spfile), it is also deleted. Archived logs and backups are not removed, but you can use Recovery Manager (RMAN) to remove them. If the database is on raw disks, this statement does not delete the actual raw disk special files. DROP DATABASE The DROP DATABASE command deletes these files from operating system. * Datafiles * Online Redo Log Files * Controlfiles * SPFILE (if it exists) The DROP DATABASE command does not delete the following files: * init.ora (text version of the Oracle initialization file) * password file * entries in listener files * entries in oratab file

其实最好是在执行drop database命令时,查看alert_$ORACLE_SID的输出内容,即可有个大概的了解。在metlink上看到一个手工删除数据文件、联机重做日志、控制文件的脚本,如下所示,这个也可以作为一个参考。

执行上面脚本就能得到类似下面输出的内容。当然,这个脚本必须在前面步骤之前执行。

rm -f $ORACLE_BASE/admin/$ORACLE_SID

rm -f /ORATEST/oracle/admin/bdump

rm -f /ORATEST/oracle/admin/cdump

rm -f /ORATEST/oracle/admin/udump

rm -f /ORATEST/oracle/product/10.1/rdbms/audit

rm -f /ORATEST/oradata/control01.ctl

rm -f /ORATEST/oradata/control02.ctl

rm -f /ORATEST/oradata/control03.ctl

rm -f /ORATEST/oradata/data01.dbf

rm -f /ORATEST/oradata/data02.dbf

rm -f /ORATEST/oradata/redo01.log

rm -f /ORATEST/oradata/redo02.log

rm -f /ORATEST/oradata/redo03.log

rm -f /ORATEST/oradata/sysaux01.dbf

rm -f /ORATEST/oradata/system01.dbf

rm -f /ORATEST/oradata/undotbs01.dbf

rm -f /ORATEST/oradata/users01.dbf

rm -f ?/dbs/arch

Step 7:手动清理相关文件

Step 8.清理监听相关文件

Step 9.修改oratab文件以及.bash_profile

这个步骤不是必须的,是情况和需要而定。

$ vi /etc/oratab --去掉实例相关的设置

$ vi ~/.bash_profile --去掉实例相关的设置

参考资料:

<a href="http://blog.csdn.net/leshami/article/details/6454479">http://blog.csdn.net/leshami/article/details/6454479</a>

<a href="https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=508865219788761&amp;id=443822.1&amp;displayIndex=10&amp;_afrWindowMode=0&amp;_adf.ctrl-state=38ojq5hbc_203">https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=508865219788761&amp;id=443822.1&amp;displayIndex=10&amp;_afrWindowMode=0&amp;_adf.ctrl-state=38ojq5hbc_203</a>