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 刪除表空間之前刪除了表空間文件,解決辦法的內容的介紹,望你會有所收獲。
【編輯推薦】