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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM