--********************=
-- 手動刪
除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 '+dg1/asmdb/file_name';
--可以使用方式
來刪除需要
刪除的檔案
sql> alter diskgroup rev drop directory '+rev/asmdb/file_name';
sql> select name,file_number,group_number,file_incarnation from 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
5124096 1048576
3067
2974
02974
0 dg1/
5124096 1048576
2047
1996
01996
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
5124096 1048576
3067
3016
03016
0 dg1/
5124096 1048576
2047
1996
01996
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步
oracle手動刪除資料庫
特權使用者可以使用 drop database 方式刪除資料庫,但此時的資料庫必須處於 mount 狀態,並且一 restrict 方式裝載資料庫。1 在命令提示符下以具有 sysdba 身份的使用者進行登陸。sqlplus sys pwd as sysdba 2 通過資料字典視 global na...
手動刪除資料庫
一 手動刪除檔案系統資料庫 1.停止監聽,防止有新的連線產生,同時,在資料庫配置了em的,也需要停止 lsnrctl stop listener name emctl stop dbconsole 2.獲得資料檔案,日誌檔案及控制檔案的相關資訊,包含歸檔 sqlplus as sysdba sql ...
django 手動刪除資料庫
2018年01月09日 21 44 17 為了解決群友的問題,我親自刪了下我自己資料庫的乙個表,然後敲了一系列的dos命令,發現都不夠完美,最終我發現了在資料庫裡有乙個記錄生成 的記錄也就是我們的django makemigrations這個表,我們只需要刪除之前你建立 對應的那條記錄,見下圖。然後...