1. 程式人生 > 其它 >oracle刪除表空間的.DBF檔案後,無法開啟服務

oracle刪除表空間的.DBF檔案後,無法開啟服務

今天給客戶初始化oracle還原資料。不小心手誤刪除了建立的表空間;

記住:客戶的環境能不刪東西就不刪。物理刪除是最最最忌諱的,一個生成的檔案肯定是關聯了什麼東西。

 

還原一旦手動刪除了表空間,oracle會出現什麼樣的症狀? (因為我關閉了linux視窗,報錯靠描繪和借鑑其他博主報錯)

一、首先你的sysdba可以連上,但是查詢語句的時候就會報錯,報的錯誤就是打不開資料庫

查詢這個語句select file#,name,status from v$datafile;出現各種表空間名。

查詢這個語句是 select * from v$tempfile; 臨時表空間。

會提示缺失:xxx表空間不存在,因為被手動刪了。

類似oracle-01516,Oracle 11g ORA-01516: nonexistent log file, data file, or temporary file  ....

二、登入使用者會報錯

Caused by: java.sql.SQLException: ORA-01109: database not open

三、不能建立資料庫,提示也是沒開啟資料庫。

 

解決方法:

 

 登入:
(1):sqlplus "/as sysdba" (2):SQL> shutdown immediate (3)SQL> startup ORACLE 例程已經啟動。
報錯類似

SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 92275368 bytes
Database Buffers 192937984 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF'

 

(5)SQL> select   name   from  v$datafile;

NAME
--------------------------------------------------------------------------------

NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\USERS01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\EXAMPLE01.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERN\DRP.DBF

SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF' offline;

alter database datafile D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF offline
第 1 行出現錯誤:
ORA-01145: 除非啟用了介質恢復, 否則不允許立即離線
此時alter system check datafiles命令可以用來糾正這個問題,使資料檔案能夠正常訪問,將觸發例項重新識別並驗證這個資料檔案。然後使資料庫能夠正常工作
SQL> alter system check datafiles;
System altered.

  

 

SQL>   alter   database  datafile'D:\ORACLE\PRODUCT\10.2.0\ORADATA\BJPOWERNACTIVEDB.DBF'OFFLINE  DROP ;   資料庫已更改。
SQL> shutdown immediate;
ORA-01109: 資料庫未開啟
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 92275368 bytes
Database Buffers 192937984 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
資料庫已經開啟.

 

 

注意事項:

先offline 再online:
發現: offline 容易,online 難:

最好再讓系統檢查下稽核下檔案,核查下檔案位置。

 sql:alter system check datafiles;
System altered.

如果報以下錯誤

ERROR at line 1:

ORA-01122: database file xxx  failed verification check
ORA-01110: data file 201: 'xxx/xxx/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN

SQL> alter database tempfile '/u02/ezhou/temp01.dbf' offline;
Database altered.

SQL> alter database tempfile '/u02/ezhou/temp01.dbf' drop;

Database altered.

SQL> alter database tempfile '/u02/ezhou/temp01.dbf' online;
alter database tempfile '/u02/ezhou/temp01.dbf' online *
ERROR at line 1:
ORA-01122: database file 201 failed verification check
ORA-01110: data file 201: '/u02/ezhou/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN

 

 

參考文章:https://blog.csdn.net/xml1996/article/details/104704869/