熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

沒有備份只有歸檔日志如何恢復數據文件

2022-06-13   來源: Oracle 

  系統環境
  操作系統Windows Server機器內存M
  數據庫 Oracle i R () for NT 企業版
  安裝路徑C:\ORACLE
  
  模擬現象
  
  可通過重建數據文件來恢復前提是歸檔日志文件保存完整
  
  先將數據庫設置為歸檔模式
  
  SQL*Plus
  
  conn system/manager
  
  創建實驗表空間
  create tablespace test datafile
  c:\testora size M
  AUTOEXTEND ON NEXT M MAXSIZE UNLIMITED
  default storage (initial K next M pctincrease )
  /
  
  創建實驗用戶
  drop user test cascade;
  create user test identified by test default tablespace test;
  grant connectresource to test;
  conn test/test
  
  create table a(a number);
  insert into a values();
  insert into a select * from a; 反復插入達到萬條
  commit;
  
  關閉數據庫
  SVRMGR> connect internal
  SVRMGR> alter system switch logfile; 強制歸檔
  SVRMGR> alter system switch logfile;
  SVRMGR> alter system switch logfile;
  SVRMGR> shutdown
  
  操作系統下刪除testora文件
  
  重新啟動數據庫
  SVRMGR> connect internal
  SVRMGR> startup
  
  這時可以mount上但無法打開因為數據文件testora不存在
  顯示錯誤如下
  
  ORA: ????/?????? ??? DBWR ????
  ORA: ???? : C:\TESTORA
  
  SVRMGR> connect internal
  SVRMGR> startup mount
  SVRMGR> alter database create datafile c:\testora;
  SVRMGR> set autorecovery on
  SVRMGR> recover datafile c:\testora;
  SVRMGR> alter database open;
  
  conn test/test
  select count(*) from a; 數據又恢復到萬條
  
  刪除實驗表空間
  conn system/manager
  alter tablespace test offline;
  drop tablespace test INCLUDING CONTENTS;
  drop user test;
  
  
  如果是非歸檔模式也可以運用以上方法
  前提是輸入記錄所占空間的大小不超過所有聯機日志文件的大小
  用聯機日志文件來恢復
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/18468.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.