oracle 在刪除表空間之前把表空間對應的檔案刪除的處理方法
如果Oracle 刪除表空間之前的時候你把表空間中的檔案也刪除了的話,這樣就會對我們的實際操產生一些不便,以下的文章就是對Oracle 刪除表空間之前的時候你把表空間中的檔案也刪除在了的解決辦法的介紹。
如果在清除表空間之前,先刪除了表空間對應的資料檔案,會造成資料庫無法正常啟動和關閉。
可使用如下方法恢復(此方法已經在oracle9i中驗證通過):
下面的過程中,filename是已經被刪除的資料檔案,如果有多個,則需要多次執行;tablespace_name是相應的表空間的名稱。
$ sqlplus /nolog
SQL> conn / as sysdba;
如果資料庫已經啟動,則需要先執行下面這行:
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile 'filename' offline drop;
SQL> alter database open;
SQL> drop tablespace tablespace_name including contents;
建立使用者並指定表空間
create user zfmi identified by zfmi
default tablespace zfmi temporary tablespace zfmi_temp;
identified by 引數必須有
授予message使用者DBA角色的所有許可權
GRANT DBA TO zfmi;
給使用者授予許可權
grant connect,resource to zfmi; (db2:指定所有許可權)
匯入匯出命令:
在Oracle 刪除表空間之前,Oracle資料匯入匯出imp/exp就相當於oracle資料還原與備份。exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp檔案, imp命令可以把dmp檔案從本地匯入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。
執行環境:可以在SQLPLUS.EXE或者DOS(命令列)中執行,
DOS中可以執行時由於 在oracle 8i 中 安裝目錄ora81BIN被設定為全域性路徑,
該目錄下有EXP.EXE與IMP.EXE檔案被用來執行匯入匯出。
oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個檔案有可能是被包裝後的類檔案。
SQLPLUS.EXE呼叫EXP.EXE、IMP.EXE所包裹的類,完成匯入匯出功能。
以上就是對Oracle 刪除表空間之前刪除了表空間檔案,解決辦法的內容的介紹,望你會有所收穫。