臨時表空間資料刪除問題
使用者是裸裝置,軟體公司不懂裸裝置和檔案系統區別。新增表空間搞成了檔案系統。結果資料檔案預設存放到根目錄下,把根目錄的空間給撐爆了。昨天,使用者重啟了資料庫,可怕的事情出現了。。。。。。
資料庫重啟後,無法啟動。通過報錯,發現上述問題,向我求助。。。。。。
首先將存放在根目錄的檔案移動到/TMP下,這樣可以啟動資料庫。此時資料庫是能夠啟動的。但是在使用客戶端軟體的時候,會報錯說找不到臨時表空間的第二個資料檔案。使用者的環境是HP UNIX ,資料庫是9I。
嘗試將資料庫啟動到mount狀態下,將這個表空間的資料檔案刪除。
SQL> startup mount
ORACLE instance started.
Total System Global Area 2585219136 bytes
Fixed Size 729152 bytes
Variable Size 436207616 bytes
Database Buffers 2147483648 bytes
Redo Buffers 798720 bytes
Database mounted.
SQL> alter database rename file '/dev/vg_ora/rtemp_02.dbf' to '/tmp/rtemp_02.dbf
';
alter database rename file '/dev/vg_ora/rtemp_02.dbf' to '/tmp/rtemp_02.dbf'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01516: nonexistent log file, datafile, or tempfile
"/dev/vg_ora/rtemp_02.dbf"
報錯的原因是rtemp_02.dbf已經被移走,ORACLE已經找不到那個資料檔案了。
啟動資料庫,使用命令DROP這個資料檔案,可是仍舊不成功。
SQL> alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop including datafiles;
alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop including datafiles
*
ERROR at line 1:
ORA-01516: nonexistent log file, datafile, or tempfile
"/dev/vg_ora/rtemp02.dbf"
SQL> alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop;
alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop
*
ERROR at line 1:
ORA-01516: nonexistent log file, datafile, or tempfile
"/dev/vg_ora/rtemp02.dbf"
嘗試在資料庫mount下,嘗試刪除這個資料檔案,結果照舊。
SQL> startup mount
ORACLE instance started.
Total System Global Area 2585219136 bytes
Fixed Size 729152 bytes
Variable Size 436207616 bytes
Database Buffers 2147483648 bytes
Redo Buffers 798720 bytes
Database mounted.
SQL> alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop;
alter database tempfile '/dev/vg_ora/rtemp02.dbf' drop
*
ERROR at line 1:
ORA-01516: nonexistent log file, datafile, or tempfile
"/dev/vg_ora/rtemp02.dbf
解決的辦法:
1、使用ROOT使用者進入系統
2、qdgapz2># cd /dev/vg_ora //進入到建立檔案的資料夾下
3、qdgapz2# ln -s /tmp/rtemp_02.dbf rtemp_02.dbf // 建立連線
4、qdgapz2# ll
lrwxr-xr-x 1 root sys 17 Dec 24 15:05 rtemp_02.dbf -> /tmp/rtemp_02.dbf
這樣問題就解決了。
再啟動資料庫,資料庫就能識別到rtemp_02.dbf的資料檔案了。
這樣問題解決。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 2585219136 bytes
Fixed Size 729152 bytes
Variable Size 436207616 bytes
Database Buffers 2147483648 bytes
Redo Buffers 798720 bytes
Database mounted.
SQL> alter database open;
Database altered.
SQL> alter database tempfile '/dev/vg_ora/rtemp_02.dbf' drop;
Database altered.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8334342/viewspace-623532/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 刪除臨時表空間組
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 臨時表空間ORA-1652問題解決
- oracle 臨時表空間的增刪改查Oracle
- MYSQL造資料佔用臨時表空間MySql
- Tablespace表空間刪除
- 刪除UNDO表空間並處理ORA-01548問題
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- oracle臨時表空間相關Oracle
- MySQL InnoDB臨時表空間配置MySql
- 4.2.1.8規劃臨時表空間
- oracle級聯刪除使用者,刪除表空間Oracle
- 刪除表空間時,遇到了ORA-14404錯誤
- MySQL 5.7的表刪除資料後的磁碟空間釋放MySql
- 2.5.7 建立預設臨時表空間
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- 臨時表空間和回滾表空間使用率查詢
- SQLServer如何釋放tempdb臨時表空間SQLServer
- 消除臨時表空間暴漲的方法
- Linux檔案刪除但空間不釋放問題篇Linux
- Oracle 刪除使用者、表空間、資料檔案、使用者下的所有表Oracle
- [待整理]oracle10g刪除(釋放)資料檔案/表空間流程Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- MySQL刪除資料表MySql
- 處理Linux刪除檔案後空間未釋放的問題Linux
- (轉載)刪除檔案後硬碟空間不釋放的問題硬碟
- 臨時表空間被佔滿的原因查詢
- Mysql InnoDB刪除資料後釋放磁碟空間的方法MySql
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- 刪除表空間出現ORA-22868錯誤(一)
- 檢視oracle臨時表空間佔用率的檢視Oracle
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- python 刪除大表資料Python
- Python如何遞迴刪除空資料夾Python遞迴
- Ubuntu 強制刪除資料夾(非空)Ubuntu
- 聊聊PG資料庫的防誤刪除問題資料庫
- 萬萬沒想到,我在夜市地攤解決了MySQL臨時表空間難題~~MySql
- 解決刪除檔案後 WSL2 磁碟空間不釋放的問題