oracle日誌挖掘與定點恢復

 數據備份

alter database begin backup;

cp /oracle/app/oradata/TEST/*.dbf /home/oracle/bak/

alter database end backup;

修改數據的存儲目錄

alter system set utl_file_dir='/home/oracle/logminer' scope=spfile;

因爲修改了參數文件 所以 要重新啓動數據庫

創建存儲數據字典文件的文件

execute dbms_logmnr_d.build('shwdict.ora','/home/oracle/logminer');

select * from v$log 查看當前用的是哪個日誌

execute dbms_logmnr.add_logfile('/oracle/app/oradata/TEST/redo01.log',dbms_logmnr.new);

然後就可以進行數據的挖掘了

exec dbms_logmnr.start_logmnr (dictfilename=>'/home/oracle/logminer/shwdict.ora');

這裏將挖掘出來的數據保存到剛纔建好的文件中

修改時間的顯示格式

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; 

select SCN,TIMESTAMP,SQL_REDO from v$LOGMNR_CONTENTS where SQL_REDO like '%drop%';

通過模糊查詢 找出數據內的scn號 時間 和執行了什麼想的sql語句

數據恢復

關閉數據庫 

將備份的數據還原

startup mount 進入mount狀態

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

recover database until time '2013-04-16 21:24:30';

這裏的時間 就是通過數據挖掘得到的執行誤刪除時的時間 記得將時間往前提前幾秒鐘

alter database open resetlogs;

時間點還原 必須要resetlog 

啓動數據庫後 會發現 被誤刪除的數據已經恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章