oracle删除数据库

来源:互联网 发布:音乐信息编辑软件 编辑:程序博客网 时间:2024/05/29 04:58

--=====================

--动删oracle

--=====================

 

   在很多情下,或无法使用dbca工具的候,我需要手动来删此,可以借助drop database命令来实现,下面的描述中出手动删

的具体步,包含文件系统数以及ASM境:OracleEnterprise Linux5.4 + Oracle10gR2 .

 

一、手动删除文件系统数

 

   1.停止OEM

       $ lsnrctl stop listener_name

       $ emctl stop dbconsole

       

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

       $ sqlplus / assysdba

       SQL>select status,namefrom v$controlfile;  --取控制文件的位置信息

       SQL>select *from v$dbfile;                 --据文件的位置信息

       SQL>select *from v$logfile;                --取日志文件的位置信息

       SQL>archiveloglist;                       --归档sequence及位置信息

       SQL>shutdownabort;                         --据不再需要,直接shutdown abort

       

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

       SQL> startupmountexclusiverestrict;

       

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

       SQL>altersystemenablerestrictedsession;

       

   5.使用drop database命令来清

       SQL>dropdatabase;

       SQL>exit

       

   6.动清除相文件

       $ echo $ORACLE_SID    --认当前的ORACLE_SID

       $ rm -rf $ORACLE_BASE/admin/$ORACLE_SID        --oracle base下的$ORACLE_SID的所有

       $ rm -rf $ORACLE_BASE/oradata/$ORACLE_SID       --oradata下的据文件,根据前面的查询,注意要除不同路下的据文件

       $ rm -rf $ORACLE_BASE/arch/$ORACLE_SID          --归档日志,注意归档的正确性

       $ rm -rf $ORACLE_BASE/flash_recovery_area/$ORACLE_SID   --

       $ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID*                --参数文件    */

       

   7.听相文件()

       $ rm $TNS_ADMIN/*.ora   --如果定了$TNS_ADMIN量,否则删除默下的听文件  */

       $ rm $ORACLE_HOME/network/admin/*.ora           */

       

   8.修改oratab文件以及.bash_profile

       $ vi /etc/oratab        --去掉例相

       $ vi ~/.bash_profile    --去掉例相

       

二、ASM

   ASM文件系统数的不同之在于据文件,控制文件,日志文件,参数文件等都是存放在ASM中,因此需要在ASM例中做相

   来彻

   

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

   

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

       SQL>dropdatabase;

       SQL>exit

       

   3.接到ASM

       $ export ORACLE_SID=+ASM

       $ sqlplus / assysdba

   4.余文件

       SQL>selectname,file_number,group_number,file_incarnationfrom v$asm_alias;--看文件,注意group_number表示位于不同的磁盘组

       SQL>alterdiskgroup DG1dropdirectory'+DG1/asmdb/file_name';             --可以使用方式来删除需要除的文件

       SQL>alterdiskgroup REVdropdirectory'+REV/asmdb/file_name';

       SQL>selectname,file_number,group_number,file_incarnationfrom v$asm_alias;    --验证删除后的

   

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

       $ export ORACLE_SID=+ASM

       $ asmcmd

       ASMCMD> ls -l

       State    Type   Rebal  Unbal  Name

       MOUNTED  EXTERN  N     N      DG1/

       MOUNTED  EXTERN  N     N      REV/

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

          512  4096 1048576     2047    1996               0           1996             0 REV/

       ASMCMD> cd +DG1

       ASMCMD> ls

       ASMDB/

       ASMCMD> rm -rf ASMDB

       ASMCMD> ls

       ASMCMD> cd +REV

       ASMCMD> pwd

       +REV

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

          512  4096 1048576     2047    1996               0           1996             0 REV/

       

       于直接位于磁盘组下的文件可以使用rm命令直接除文件  

       

   5.除其文件

       据文件,归档日志,机日志,临时文件,参数文件都存放在ASM中,但dump文件,告警日志依然位于磁,需要手动清

       $ echo $ORACLE_SID    --认当前的ORACLE_SID

       $ rm -rf $ORACLE_BASE/admin/$ORACLE_SID        --oracle base下的$ORACLE_SID的所有

       $ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID*        --参数文件         */

   

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

原创粉丝点击