非歸檔模式使用:更改數據庫數據文件“...”線下掉線;
存檔模式使用:更改數據庫數據文件' ...'線下;
描述:
1)以上命令只是將數據文件脫機,而不是刪除數據庫中的數據文件。該數據文件的信息仍然存在於控制文件中。查詢v$datafile,仍然會顯示該文件。
2)在存檔模式下,離線和離線刪除具有相同的效果。
3)脫機後,將無法訪問此數據文件中存在的對象。
4)在Noarchivelog模式下,只要在線重做日誌沒有被重寫,文件就可以被恢復用於在線操作。
實際使用案例:
解決直接刪除數據文件後無法進入系統的問題。
在正常情況下,刪除表空間的正確方法是:
刪除表空間tablespace_name,包括內容和數據文件;
如果不使用上述刪除命令直接刪除數據文件,將無法打開數據庫。
如果數據文件被直接刪除
當普通用戶登錄時,會報告壹個錯誤:
ORA-01033: ORACLE正在初始化或關閉
Sys用戶可以正常登錄。
但是在操作時(從user _ tables中選擇count (1)),會報告壹個錯誤:
ORA-01219:數據庫未打開:僅在固定表/視圖中允許查詢。
如果執行alter database open命令來打開數據庫,則會報告以下錯誤:
ORA-01157:無法識別/鎖定數據文件12-請參考DBWR跟蹤文件。
ORA-01110:數據文件12:' e:/Oracle/product/10 . 2 . 0/oradata/orcl/ts test 001 . DBF '
這意味著數據庫沒有找到這個數據文件。
因為數據文件在沒有離線的情況下被物理刪除,導致oracle的數據不壹致,所以啟動失敗。
可以通過以下方法解決
解決方案:
sqlplus sys/orcl@orcl作為sysdba
SQL & gt更改數據庫數據文件' E:/ORACLE/PRODUCT/10 . 2 . 0/ORADATA/ORCL/ts test 001。DBF的線下滴滴;
SQL & gt打開數據庫;
SQL & gt刪除表空間CTBASEDATA
二、從Oracle 10G R2開始,可以使用:alter tablespace _ name drop datafile _ name;刪除壹個空的數據文件,相應的數據字典信息將被清除:
sys @ ORCL & gt從dba_data_files中選擇文件id,文件名,表空間名
2其中表空間名= '用戶';
文件ID文件名表空間名
- - -
4/u 01/app/Oracle/oradata/orcl/USERS 01 . DBF用戶
sys @ ORCL & gt更改表空間用戶添加數據文件
2 '/u 01/app/Oracle/oradata/orcl/users 02 . DBF ' size 5M auto extend off;
表空間已更改。
sys @ ORCL & gt從dba_data_files中選擇文件id,文件名,表空間名
2其中表空間名= '用戶';
文件ID文件名表空間名
- - -
4/u 01/app/Oracle/oradata/orcl/USERS 01 . DBF用戶
9/u 01/app/Oracle/oradata/orcl/USERS 02 . DBF用戶
sys @ ORCL & gt落臺試驗;
桌子掉了。
sys @ ORCL & gt創建表測試表空間用戶
2作為
3 select * from dba _ objects
表已創建。
sys @ ORCL & gt從dba_extents中選擇段名、文件ID、塊
2其中file _ id = 9;
段名文件標識塊
- - -
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 8
測試9 128
測試9 128
選擇了17行。
sys @ ORCL & gtalter table test move表空間PERFSTAT-將表移動到另壹個表空間。
表格已更改。
sys @ ORCL & gt從dba_extents中選擇段名、文件ID、塊
2其中file _ id = 9;
未選擇任何行
sys @ ORCL & gt更改表空間用戶刪除數據文件
2 '/u 01/app/Oracle/oradata/orcl/users 02 . DBF ';
表空間已更改。
sys @ ORCL & gt從dba_data_files中選擇文件id,文件名,表空間名
2其中表空間名= '用戶';
文件ID文件名表空間名
- - -
4/u 01/app/Oracle/oradata/orcl/USERS 01 . DBF用戶
第三,oracle 10g可以刪除臨時表空間中的文件。
請將數據庫tempfile“/home/Oracle/temp 01 . DBF”刪除,包括數據文件;