1. 程式人生 > >手動刪除oracle資料庫

手動刪除oracle資料庫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

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

-- 動刪oracle

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

 

   

在很多情下,或無法使用dbca工具的候,我需要手動來刪此,可以藉助drop database命令來實現,下面的描述中出手動刪

的具體步,包含檔案系統數以及ASM境:Oracle Enterprise Linux 5.4 + Oracle 10g R2 .

 

一、手動刪除檔案系統數

 

    1.停止OEM

        $ lsnrctl stop listener_name

       

$ emctl stop dbconsole

       

    2.據檔案,日誌檔案及控制檔案的相資訊,包含歸檔       

        $ sqlplus / as sysdba

        SQL> select status,name

from v$controlfile;   --取控制檔案的位置資訊

        SQL> select * from v$dbfile;                  --據檔案的位置資訊

        SQL> select * from v$logfile;                 --取日誌檔案的位置資訊

        SQL> archive log list;                        --歸檔sequence及位置資訊

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

       

    3.啟動 mount 狀態(使用exclusive restart)

        SQL> startup mount exclusive restrict;

       

    4.修改引數為受限的會話模式

        SQL> alter system enable restricted session;

       

    5.使用drop database命令來清

        SQL> drop database;

        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> 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 DG1 drop directory