Oracle中手動(dòng)刪除數(shù)據(jù)庫(kù)教程
在很多情況下,或無(wú)法使用dbca工具的時(shí)候,我們需要手動(dòng)來(lái)刪除數(shù)據(jù)庫(kù)。對(duì)此,可以借助drop database命令來(lái)實(shí)現(xiàn),下面的描述中給出手動(dòng)刪除數(shù)據(jù)庫(kù)。
的具體步驟,包含文件系統(tǒng)數(shù)據(jù)庫(kù)以及ASM數(shù)據(jù)庫(kù)。環(huán)境:Oracle Enterprise Linux 5.4 + Oracle 10g R2 .
一、手動(dòng)刪除文件系統(tǒng)數(shù)據(jù)庫(kù)
1.停止監(jiān)聽(tīng)與OEM
$ lsnrctl stop listener_name
$ emctl stop dbconsole
2.獲得數(shù)據(jù)文件,日志文件及控制文件的相關(guān)信息,包含歸檔
$ sqlplus / as sysdba
SQL> select status,name from v$controlfile; --獲取控制文件的位置信息
SQL> select * from v$dbfile; --獲取數(shù)據(jù)文件的位置信息
SQL> select * from v$logfile; --獲取日志文件的位置信息
SQL> archive log list; --查看歸檔的sequence及位置信息
SQL> shutdown abort; --因數(shù)據(jù)不再需要,直接shutdown abort
3.啟動(dòng)到 mount 狀態(tài)(使用exclusive restart)
SQL> startup mount exclusive restrict;
4.修改參數(shù)為允許受限的會(huì)話模式
SQL> alter system enable restricted session;
5.使用drop database命令來(lái)清除數(shù)據(jù)庫(kù)
SQL> drop database;
SQL> exit
6.手動(dòng)清除相關(guān)文件
$ echo $ORACLE_SID --確認(rèn)當(dāng)前的ORACLE_SID
$ rm -rf $ORACLE_BASE/admin/$ORACLE_SID --刪除oracle base目錄下的$ORACLE_SID的所有內(nèi)容
$ rm -rf $ORACLE_BASE/oradata/$ORACLE_SID --oradata下的數(shù)據(jù)文件,根據(jù)前面的查詢,注意要?jiǎng)h除不同路徑下的數(shù)據(jù)文件
$ rm -rf $ORACLE_BASE/arch/$ORACLE_SID --清除歸檔日志,注意歸檔路徑的正確性
$ rm -rf $ORACLE_BASE/flash_recovery_area/$ORACLE_SID --清除閃回區(qū)的內(nèi)容
$ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID* --清除參數(shù)文件 */
7.清除監(jiān)聽(tīng)相關(guān)文件(建議)
$ rm $TNS_ADMIN/*.ora --如果設(shè)定了$TNS_ADMIN變量,否則刪除默認(rèn)路徑下的監(jiān)聽(tīng)文件 */
$ rm $ORACLE_HOME/network/admin/*.ora */
8.修改oratab文件以及.bash_profile
$ vi /etc/oratab --去掉實(shí)例相關(guān)的設(shè)置
$ vi ~/.bash_profile --去掉實(shí)例相關(guān)的設(shè)置
二、清除ASM數(shù)據(jù)庫(kù)
對(duì)于ASM數(shù)據(jù)庫(kù)的刪除與文件系統(tǒng)數(shù)據(jù)庫(kù)的不同之處在于數(shù)據(jù)文件,控制文件,日志文件,參數(shù)文件等都是存放在ASM系統(tǒng)中,因此需要在ASM實(shí)例中做相應(yīng)
的動(dòng)作來(lái)徹底清除數(shù)據(jù)庫(kù)。
1.執(zhí)行文件系統(tǒng)數(shù)據(jù)庫(kù)清除步驟3-4步(先要shutdown)
2.使用drop database命令來(lái)清除數(shù)據(jù)庫(kù)(該命令將清除數(shù)據(jù)文件,日志文件,temp文件)
SQL> drop database;
SQL> exit
3.連接到ASM實(shí)例
$ 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'; --可以使用方式來(lái)刪除需要?jiǎng)h除的文件
SQL> alter diskgroup REV drop directory '+REV/asmdb/file_name';
SQL> select name,file_number,group_number,file_incarnation from v$asm_alias; --驗(yàn)證刪除后的結(jié)果
也可以使用下面的方式(asmcmd命令)來(lái)刪除殘余文件
$ 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/
對(duì)于直接位于磁盤組下的文件則同樣可以使用rm命令來(lái)直接刪除文件
5.清除其它文件
盡管數(shù)據(jù)文件,歸檔日志,聯(lián)機(jī)日志,臨時(shí)文件,參數(shù)文件都存放在ASM磁盤中,但dump文件,告警日志依然位于磁盤,需要手動(dòng)清除
$ rm -rf $ORACLE_BASE/admin/$ORACLE_SID --刪除oracle base目錄下的$ORACLE_SID的所有內(nèi)容
$ rm -rf $ORACLE_HOME/dbs/*$ORACLE_SID* --清除參數(shù)文件 */
6.執(zhí)行文件系統(tǒng)數(shù)據(jù)庫(kù)清除步驟7-8步
- Oracle數(shù)據(jù)庫(kù)中的級(jí)聯(lián)查詢、級(jí)聯(lián)刪除、級(jí)聯(lián)更新操作教程
- 深入淺析Oracle數(shù)據(jù)庫(kù)管理之創(chuàng)建和刪除數(shù)據(jù)庫(kù)
- Linux下通過(guò)腳本自動(dòng)備份Oracle數(shù)據(jù)庫(kù)并刪除指定天數(shù)前的備份
- 徹底刪除Oracle數(shù)據(jù)庫(kù)的方法
- linux oracle數(shù)據(jù)庫(kù)刪除操作指南
- oracle數(shù)據(jù)庫(kù)刪除數(shù)據(jù)Delete語(yǔ)句和Truncate語(yǔ)句的使用比較
- oracle數(shù)據(jù)庫(kù)添加或刪除一列的sql語(yǔ)句
- oracle數(shù)據(jù)庫(kù)的刪除方法詳解
相關(guān)文章
Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù)
本文給大家分享兩種方法解決Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù),方法非常簡(jiǎn)單,具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-06-06Oracle 閃回 找回?cái)?shù)據(jù)的實(shí)現(xiàn)方法
閃回技術(shù)是Oracle強(qiáng)大數(shù)據(jù)庫(kù)備份恢復(fù)機(jī)制的一部分,在數(shù)據(jù)庫(kù)發(fā)生邏輯錯(cuò)誤的時(shí)候,閃回技術(shù)能提供快速且最小損失的恢復(fù)。這篇文章主要介紹了Oracle 閃回 找回?cái)?shù)據(jù)的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-09-09Oracle報(bào)錯(cuò)ora-12514檢查以及解決方法
前幾天重新安裝了數(shù)據(jù)庫(kù)服務(wù)器,在服務(wù)器上使用都一切正常,然后在我的客戶端配置一個(gè)tns服務(wù)名卻出問(wèn)題了,下面這篇文章主要給大家介紹了關(guān)于Oracle報(bào)錯(cuò)ora-12514檢查以及解決方法的相關(guān)資料,需要的朋友可以參考下2023-03-03分享Oracle 11G Client 客戶端安裝步驟(圖文詳解)
這篇文章主要介紹了分享Oracle 11G Client 客戶端安裝步驟(圖文詳解),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12Oracle查詢當(dāng)前的crs/has自啟動(dòng)狀態(tài)實(shí)例教程
當(dāng)我們開(kāi)啟或者關(guān)閉自啟動(dòng)后,我們?nèi)绾尾榭串?dāng)前CRS 是處于enable還是處于disable中呢?下面這篇文章主要給大家介紹了關(guān)于Oracle如何查詢當(dāng)前的crs/has自啟動(dòng)狀態(tài)的相關(guān)資料,需要的朋友可以參考下2018-11-11Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式
今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Oracle 12CR2查詢轉(zhuǎn)換教程之表擴(kuò)展詳解
Oracle 12cR2版本已經(jīng)發(fā)布有一段時(shí)間,下面這篇文章主要給大家介紹了關(guān)于Oracle 12CR2查詢轉(zhuǎn)換教程之表擴(kuò)展的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11