oracle手动删除数据库

简介:
+关注继续查看

有时候,无法使用图形界面时,我们需要手动删除数据库,具体操作步骤如下:
一、手动删除文件系统数据库
   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步

 

转:http://blog.itpub.net/29371470/viewspace-2124984/

文章可以转载,必须以链接形式标明出处。


本文转自 张冲andy 博客园博客,原文链接:http://www.cnblogs.com/andy6/p/5913560.html   ,如需转载请自行联系原作者
相关文章
|
Oracle 关系型数据库 数据安全/隐私保护
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
96 0
|
Oracle 关系型数据库
oracle学习47-oracle删除非空表空间
oracle学习47-oracle删除非空表空间
60 0
|
SQL Oracle 关系型数据库
Oracle rman备份保留策略,归档删除策略及delete命令的使用
oracle rman备份保留策略、归档策略的使用及对delete命令的影响
1015 0
|
Oracle 关系型数据库 数据库
Oracle 使用脚本建库,删库及删除数据库软件
Oracle 使用脚本建库,删库及删除数据库软件
157 0
Oracle 使用脚本建库,删库及删除数据库软件
|
SQL Oracle 关系型数据库
Oracle删除重复数据只留一条
查询及删除重复记录的SQL语句
|
Oracle 关系型数据库 数据库
oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
418 0
oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
|
Oracle 关系型数据库 Linux
Oracle RMAN删除归档日志脚本
Oracle 开启归档模式后,会一直不停的产生归档日志,如果不定时删除,迟早会撑爆磁盘空间,所以就需要布置定时删除归档日志的脚本!
|
Oracle 关系型数据库 索引
删除Oracle用户及表空间
删除Oracle用户及表空间--转载自 https://blog.csdn.net/sunny05296/article/details/81126548--以sysdba用户登录,查找需要删除的用户conn / as sysdba --查找用户select * from dba_users;se...
2791 0
|
Oracle 关系型数据库
Oracle 快速找回被删除的表
很多情况下为了能快速找回被删除的表,可以利用回收站找到并重建被删除的表。(一)回收站里是否可以找到被删除的表,和undo的保留策略、空间大小有很大关系,超时或者空间不足都会导致无法闪回表,只能从备份中恢复。
3408 0
推荐文章
更多
推荐镜像
更多