程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle表空間中的實際數據文件丟失的恢復

Oracle表空間中的實際數據文件丟失的恢復

編輯:Oracle數據庫基礎

以下的文章主要介紹的是Oracle表空間的實際數據文件丟失的恢復,我們假設Oracle數據庫其處於歸檔模式。我們在數據庫裡重建一個Oracle表空間,一共有3個相關的數據文件。各10M,表空間內有一張23M的表。

  1. SQL> select count(*) from ldy.t1;  
  2. COUNT(*)  
  3. 605136  
  4. SQL> col segment_name for a20  
  5. SQL> col tablespace_name for a20  
  6. SQL> select segment_name,tablespace_name,bytes/1024/1024 mb from dba_segments where owner='LDY';  
  7. SEGMENT_NAME TABLESPACE_NAME MB  
  8. T1 LDY 23  

關閉數據庫,將Oracle表空間的其中一個數據文件刪除,啟動後報錯:

  1. SQL> startup 

Oracle例程已經啟動。

  1. Total System Global Area 612368384 bytes  
  2. Fixed Size 1250428 bytes  
  3. Variable Size 230689668 bytes  
  4. Database Buffers 373293056 bytes  
  5. Redo Buffers 7135232 bytes  

數據庫裝載完畢。

ORA-01157: 無法標識/鎖定數據文件 6 - 請參閱 DBWR 跟蹤文件

ORA-01110: 數據文件 6: 'E:\Oracle\ORADATA\LDY01.DBF'

此時數據庫為mount狀態。

  1. SQL> select open_mode from v$database;  
  2. OPEN_MODE  
  3. MOUNTED  

增加回該數據文件。

  1. SQL>alter database create datafile 'E:\Oracle\ORADATA\LDY01.DBF'; 

數據庫已更改。

介質恢復。

  1. SQL>recover datafile 6; 

完成介質恢復。

數據庫打開,正常查詢。

  1. SQL> alter database open; 

數據庫已更改。

  1. SQL> select count(*) from ldy.t1;  
  2. COUNT(*)  
  3. 605136   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved