• 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/

  • 相关阅读:
    robotframework学习
    mvc4 分离Controller 出现 未找到路径“/”的控制器或该控制器未实现 IController
    Cocos2d-x-3.0 Touch事件处理机制
    android微信分享要注意的地方
    驾校管理系统
    计算机存储单位换算
    C# 网络编程
    Android SQLite操作类--封装
    Android--数据库操作框架
    中英文混合字符串截取java
  • 原文地址:https://www.cnblogs.com/andy6/p/5913560.html
Copyright © 2020-2023  润新知