您的位置:首页 > 数据库 > Oracle

oracle手动删除数据库

2016-09-28 09:56 253 查看
有时候,无法使用图形界面时,我们需要手动删除数据库,具体操作步骤如下:
一、手动删除文件系统数据库
1.停止监听,防止有新的连接产生,同时,在数据库配置了em的,也需要停止

$ lsnrctl stop listener_name

$ emctl stop dbconsole

2.获得数据文件,日志文件及控制文件的相关信息,包含归档

$ sqlplus /as sysdba

SQL>show parameter control
获取控制文件的路径
SQL>select file_name from dba_data_files;
获取数据文件的位置
SQL>select * from v$logfile;
获取日志文件的位置
SQL>archive log list;
获取归档日志的路径
SQL>shutdown immediate(abort);
关闭数据库,反正都要删除了,可以考虑用abort

3.启动到mount状态(使用exclusive restart)

SQL> startup mount exclusive restrict;
mount数据库到独占模式
SQL> show parameter instance;
查看是否是要删除的实例,这一步非常重要,。

4.修改参数为允许受限的会话模式

SQL>alter system enable restricted session;

5.使用drop database命令来清除数据库

SQL>drop database;

SQL>exit

6.手动清除相关文件

根据第2步查询的结果,删除相应的文件。
windows可以打开窗口,进入目录删除。linux可以使用rm删除

7.清除监听相关文件
11G以后,很多是动态注册的,所以不用考虑这一步。如果配置了静态监听的,需要删除listener.ora文件里的配置

8.修改oratab文件以及.bash_profile

二、清除ASM数据库

对于ASM数据库的删除与文件系统数据库的不同之处在于数据文件,控制文件,日志文件,参数文件等都是存放在ASM系统中,因此需要在ASM实例中做相应的动作来彻底清除数据库。

1.执行文件系统数据库清除步骤3-4步(先要shutdown)

2.使用drop database命令来清除数据库(该命令将清除数据文件,日志文件,temp文件)

SQL>drop database;

SQL>exit

3.连接到ASM实例

$ export ORACLE_SID=+ASM

$ sqlplus /as sysdba

4.清除残余文件

SQL>select name,file_number,group_number,file_incarnation from v$asm_alias;--查看文件,注意group_number表示位于不同的磁盘组
SQL>alter diskgroup ARCHDG1 drop directory '+ARCHDG1/asmdb/file_name';             --可以使用方式来删除需要删除的文件
SQL>alter diskgroup DATADG drop directory'+DATADG/asmdb/file_name';
SQL>select name,file_number,group_number,file_incarnation from v$asm_alias;    --验证删除后的结果


也可以使用下面的方式(asmcmd命令)来删除残余文件

$ export ORACLE_SID=+ASM1
$ asmcmd
ASMCMD> ls -l
State   Type   Rebal Unbal Name
MOUNTED EXTERN N     N     ARCHDG1/
MOUNTED EXTERN N     N     DATADG/
ASMCMD> ls -s
Sector Block      AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
512  4096 1048576     3067    2974               0           2974             0 ARCHDG1/
512  4096 1048576     2047    1996               0           1996             0 DATADG/
ASMCMD> cd +ARCHDG1
ASMCMD> ls
ASMDB/
ASMCMD> rm -rf ASMDB
ASMCMD> ls
ASMCMD> cd +DATADG
ASMCMD> pwd
+DATADG
ASMCMD> ls
ASMCMD> cd +
ASMCMD> ls -s
Sector Block      AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
512  4096 1048576     3067    3016               0           3016             0 ARCHDG1/
512  4096 1048576     2047    1996               0           1996             0 DATADG/


对于直接位于磁盘组下的文件则同样可以使用rm命令来直接删除文件

5.清除其它文件
--$ORACLE_HOME/dbs/与该实例相关的文件;
--trace文件,这个根据版本不同,路径也不相同。11g为$ORACLE_BASE/diag/rdbms/sid_name 相关的实例目录

6.执行文件系统数据库清除步骤7-8步

转载自:datapeng原文链接: http://blog.itpub.net/29371470/viewspace-2124984/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: