oracle丟失temp表空間的處理方法
之前有做臨時(shí)表空間的切換,切換后沒drop tablespace就刪除了temp01.dbf結(jié)果排序跟查dba_temp_files報(bào)錯(cuò)
SQL> select tablespace_name,file_id,file_name,bytes/1024/1024 Mbytes from dba_temp_files; select tablespace_name,file_id,file_name,bytes/1024/1024 Mbytes from dba_temp_files * ERROR at line 1: ORA-01116: error in opening database file 201 ORA-01110: data file 201: "/home/oracle/oradata/osa/temp01.dbf" ORA-27041: unable to open file Linux-x86_64 Error: 2: No such file or directory Additional information: 3
兩種方法可以恢復(fù)
1、重啟數(shù)據(jù)庫
重啟后系統(tǒng)會(huì)自動(dòng)重建,數(shù)據(jù)庫會(huì)提示re-creating在bdump的alter_sid.log中
Re-creating tempfile /home/oracle/oradata/osa/temp01.db
2、重建
alter tablespace temp add tempfile '/oracle/oradata/osa/temp03.dbf' size 50m;
alter tablespace temp drop tempfile '/oracle/oradata/osa/temp01.dbf' ;
Oracle 11g的Temp表空間怎么恢復(fù)?
答案是系統(tǒng)會(huì)自動(dòng)重建;
實(shí)驗(yàn)如下:
我們先查看Temp表空間對(duì)應(yīng)的數(shù)據(jù)文件
SQL> select FILE_NAME,TABLESPACE_NAME,STATUS from dba_temp_files; FILE_NAME TABLESPACE_NAME STATUS ---------------------------------------- ------------------------------------------------------------------------------------------ --------------------- /u01/oracle/oradata/orcl/temp01.dbf TEMP ONLINE
然后登陸到sys用戶下,shutdown immediate
在文件系統(tǒng)層面去刪除該數(shù)據(jù)文件
cd /u01/oracle/oradata/orcl/ ls rm -f temp01.dbf
啟動(dòng)過程中,可觀察到Alert日志中出現(xiàn)如下語句
Re-creating tempfile /u01/oracle/oradata/orcl/temp01.dbf
然后Oracle正常啟動(dòng),查看文件系統(tǒng),又多了temp01.dbf
實(shí)驗(yàn)結(jié)束。
還有一種情況,考慮到生產(chǎn)環(huán)境,數(shù)據(jù)庫需要7*24小時(shí)的運(yùn)轉(zhuǎn),假如說運(yùn)行過程中temp數(shù)據(jù)文件出問題,而該問題又沒有導(dǎo)致數(shù)據(jù)庫異常關(guān)閉的情況下,該如何修復(fù)? 值得注意的是,temp表有排序的功能。
由于實(shí)驗(yàn)過程不好模擬,我們需要執(zhí)行的操作就是丟一個(gè)temp02.dbf的數(shù)據(jù)文件給臨時(shí)表空間,然后去掉temp01.dbf的數(shù)據(jù)文件就可以了。
相關(guān)文章:
1. MySQL存儲(chǔ)過程例子(包含事務(wù)、參數(shù)、嵌套調(diào)用、游標(biāo)循環(huán)等)2. django 將自帶的數(shù)據(jù)庫sqlite3改成mysql實(shí)例3. SQLite3中的日期時(shí)間函數(shù)使用小結(jié)4. MySQL COUNT函數(shù)的使用與優(yōu)化5. SQLServer查找字符串在另一字符串的索引位置6. Sybase和Oracle安裝過程中常遇到的問題7. mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法8. SqlServer服務(wù)中利用觸發(fā)器對(duì)指定賬戶進(jìn)行登錄ip限制提升安全性操作9. Oracle 9i安裝后,配置和啟動(dòng)企業(yè)管理器的詳細(xì)過程10. MySql數(shù)據(jù)庫基礎(chǔ)知識(shí)點(diǎn)總結(jié)
