數據備份
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
啓動數據庫後 會發現 被誤刪除的數據已經恢復