手動刪除資料庫

2021-08-19 17:59:19 字數 3013 閱讀 8378

一、手動刪除檔案系統資料庫

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步

**

oracle手動刪除資料庫

特權使用者可以使用 drop database 方式刪除資料庫,但此時的資料庫必須處於 mount 狀態,並且一 restrict 方式裝載資料庫。1 在命令提示符下以具有 sysdba 身份的使用者進行登陸。sqlplus sys pwd as sysdba 2 通過資料字典視 global na...

手動刪除資料庫 oracle

手動刪 除oracle資料 庫 在很多情況下,或無法使用dbca工具的時候,我們需要手動來刪除資料庫。對此,可以借助drop database命令來實現,下面的描述中給出手動刪除資料庫 的具體步驟,包含檔案系統資料庫以及asm資料庫。環境 oracle enterprise linux 5.4 or...

django 手動刪除資料庫

2018年01月09日 21 44 17 為了解決群友的問題,我親自刪了下我自己資料庫的乙個表,然後敲了一系列的dos命令,發現都不夠完美,最終我發現了在資料庫裡有乙個記錄生成 的記錄也就是我們的django makemigrations這個表,我們只需要刪除之前你建立 對應的那條記錄,見下圖。然後...