zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    re | frida | hook windows进程
    win32 | 透明窗口实现&画一个透明背景
    re | [SWPU2019]EasiestRe
    re | [QCTF2018]babyre
    web | [CISCN2019 总决赛 Day2 Web1]Easyweb
    sql | sqlite3的sqlite_master表探究
    windows | 获取系统变量ProgramData
    【友晶科技Terasic】Avalon-MM slave 为什么 readdata 要在第二个时钟周期才有数据?
    友晶科技 Terasic SOC FPGA的板子提供的image 使用了几个核? 是CPU0还是CPU1?
    【友晶科技Terasic】 用sopc-create-header-files工具生成 FPGA 硬件地址信息 用于与linux 程序交互 generate_hps_qsys_header.sh
  • 原文地址:https://www.cnblogs.com/andy6/p/5913560.html
Copyright © 2011-2022 走看看