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

Oracle中的用戶管理的不完全恢復

2013-11-13 16:14:04  來源: Oracle 

  用戶管理的不完全恢復必須滿足下面三個條件才可以使用
  a) 歸檔模式
  b) 要有所有datafile在誤操作之前的備份
  c) 要有自要使用的備份以來的所有歸檔

  不完全恢復的類型
  a) 基於時間點 比如從alter警告文件中查到drop table操作是什麼時候發生的  recover database until time ::
  b) 基於Cancel 可能中間某個歸檔損壞或丟失recover database untill cancel
  c) 基於SCN(系統改編號)  recover database until scn <scn_number>
另同時使用備份的控制文件的不完全恢復 using backup control file

  實例說明幾種場景的不完全恢復
   truncate table dept;
   alter system switch logfile;
   delete from emp where empno=<N>;
   alter system switch logfile;
   alter system switch logfile;
  發現是誤操作
   啟動EM用logminer(日志查看器)查時間點或SCN
    oemapp consol
    登陸到management server(參看如何使用management server後面會發布)
     >工具>數據庫應用程序>日志查看器>創建查詢條件
     比如表=DEPT (必須大寫) 開始時間 結束時間

  查詢出誤操作時間或SCN比如時間 :: SCN
  好現在開始做基於時間點的不完全恢復
    ashutdown immediate
    brestore(復制) full backup到數據文件目錄下
    cstartup mount
    dalter session set NLS_date_format = YYYYMMDD HH:MI:SS
    erecover database until time ::;
     //recover database until scn
    falter database open resetlogs 必須帶resetlogs
    g刪除所有歸檔冷備 熱備(已經都沒用了必須重新備份)
    h備份(不要忘了)

  基於cancel的模擬
  delete dept where depno=;//假如users表空間下的表
  commit;
  alter database switch logfile;多次
  alter database switch logfile;
  alter database switch logfile;
發現失誤實行恢復
  shutdown immediate
  刪除users表空間(對應的文件號假如是)和一個歸檔日志
  試著做完全恢復失敗
  參看
  做基於cancel的恢復
  shutdown immediate
  還原所有文件
  startup mount
  alter tablespace users online將offline的所有文件online
  recover database until cancel
  alter database open resetlogs
  別忘了重新備份

   使用備份的控制文件的不完全恢復
  已經有所有數據文件的備份
  備份控制文件
  alter system switch logfile;
  alter system switch logfile;
  alter system switch logfile;
  alter database backup controlfile to d:ackupconctl;
  alter system switch logfile;

  conn scott/tiger
  delete dept where deptno=;
  commit;
  alter system switch logfile;
  alter system switch logfile;
  alter system switch logfile;
  shutdown abort/immediate/normal/transactional
  刪除所有數據文件備份和刪除當前的控制文件但是歸檔必須存在
  startup [nomount]
  報錯 查看狀態nomount select status from v$instance;
  從備份中恢復控制文件
  復制所有備份的數據文件(在刪除前要已經有備份)
  recover database until cancel using backup controlfile;
  alter database open resetlogs;
  別忘了做全備

  聯機日志全部丟失
  shutdown immediate
  刪除所有的聯機日志
  startup
   報聯機日志錯誤
  recover database until cancel
   這步實際上什麼也不做但必須做這個操作
  alter database open resetlogs;
  別忘了做全備以前的都沒用了(包括歸檔)

  誤刪除了表空間怎麼恢復必須歸檔模式
  archive log list
  select * from v$tablespace
  select * from scottemp;
 刪除表空間
  drop tablespace indx including contents and datafiles;
  alter system switch logfile;
開始恢復
  shutdown immediate
  恢復所有的數據文件和控制文件必須用老的控制文件
  查詢alter查看drop indx表空間的時間比如 ::
  startup mount
  alter session set nls_date_format=yyyymmdd hh:mi:ss;
  recover database until time ; :: using backup controlfile;
  alter database open resetlogs
  別忘了做全備以前熱備的都沒用了


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