Oracle 刪除表空間之前把其中的文件也刪除的解決方案
如果Oracle 刪除表空間之前的時候你把表空間中的文件也刪除了的話,這樣就會對我們的實際操產(chǎn)生一些不便,以下的文章就是對Oracle 刪除表空間之前的時候你把表空間中的文件也刪除在了的解決辦法的介紹。
如果在清除表空間之前,先刪除了表空間對應的數(shù)據(jù)文件,會造成數(shù)據(jù)庫無法正常啟動和關(guān)閉。
可使用如下方法恢復(此方法已經(jīng)在oracle9i中驗證通過):
下面的過程中,filename是已經(jīng)被刪除的數(shù)據(jù)文件,如果有多個,則需要多次執(zhí)行;tablespace_name是相應的表空間的名稱。
$ sqlplus /nolog
SQL> conn / as sysdba;
如果數(shù)據(jù)庫已經(jīng)啟動,則需要先執(zhí)行下面這行:
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile 'filename' offline drop;
SQL> alter database open;
SQL> drop tablespace tablespace_name including contents;
創(chuàng)建用戶并指定表空間
create user zfmi identified by zfmi
default tablespace zfmi temporary tablespace zfmi_temp;
identified by 參數(shù)必須有
授予message用戶DBA角色的所有權(quán)限
GRANT DBA TO zfmi;
給用戶授予權(quán)限
grant connect,resource to zfmi; (db2:指定所有權(quán)限)
導入導出命令:
在Oracle 刪除表空間之前,Oracle數(shù)據(jù)導入導出imp/exp就相當于oracle數(shù)據(jù)還原與備份。exp命令可以把數(shù)據(jù)從遠程數(shù)據(jù)庫服務器導出到本地的dmp文件, imp命令可以把dmp文件從本地導入到遠處的數(shù)據(jù)庫服務器中。 利用這個功能可以構(gòu)建兩個相同的數(shù)據(jù)庫,一個用來測試,一個用來正式使用。
執(zhí)行環(huán)境:可以在SQLPLUS.EXE或者DOS(命令行)中執(zhí)行,
DOS中可以執(zhí)行時由于 在oracle 8i 中 安裝目錄ora81BIN被設置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執(zhí)行導入導出。
oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件有可能是被包裝后的類文件。
SQLPLUS.EXE調(diào)用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。
以上就是對Oracle 刪除表空間之前刪除了表空間文件,解決辦法的內(nèi)容的介紹,望你會有所收獲。
【編輯推薦】