oracle按时间点还原数据
?1、數(shù)據(jù)庫(kù)處于歸檔模式
???????? 查看命令???????? SQL> archive log line
2、備份數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)文件
???????? 聲明數(shù)據(jù)庫(kù)備份????????????? SQL> alter database begin backup;
???????? 創(chuàng)建一目錄 mkdir /home/oracle/db_bak2
???????? 拷貝所有的.dbf文件????? cp /oracle/app/oradata/TEST/*.dbf ?/home/oracle/db_bak2/
???????? 結(jié)束備份狀態(tài)?????????????????? alter database end backup;
3、模擬丟失數(shù)據(jù), 刪掉數(shù)據(jù)庫(kù)中的abc表???? SQL> drop table abc;
4、使用日志挖掘技術(shù),確定誤刪除表的時(shí)間
???????? 1、創(chuàng)建一個(gè)目錄(放置提取出的文件)[oracle@sql1 ~]$ mkdir logminer
???????? 2、指定存儲(chǔ)目錄?
??????????????????????????? SQL>alter system set utl_file_dir='/home/oracle/logminer' scope=spfile;
???????? 3、建立日志挖掘的數(shù)據(jù)字典
??????????????????????????? SQL>execute dbms_logmnr_d.build('shwdict.ora','/home/oracle/logminer');
???????? 4、創(chuàng)建分析的文件列表(可以使歸檔日志或日志文件)
???????? SQL> execute ??????????????????????????? ???? ???????? ???????? dbms_logmnr.add_logfile('/oracle/app/oradata/TEST/redo01.log',dbms_logmnr.new);
???????? SQL> execute ??????????????????????????? ???? ???????? ???????? dbms_logmnr.add_logfile('/oracle/app/oradata/TEST/redo02.log',dbms_logmnr.new);
???????? SQL> execute ??????????????????????????? ???? ???????? ???????? dbms_logmnr.add_logfile('/oracle/app/oradata/TEST/redo03.log',dbms_logmnr.new);
???????? 5、開始挖掘數(shù)據(jù)
???????? SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logminer/shwdict.ora');
???????? 6、設(shè)置回話的時(shí)間格式
?????????????????? SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
???????? 7、查看分析內(nèi)容
?????????????????? SQL> select scn, timestamp, sql_redo from v$logmnr_contents where sql_redo ??????????????????????????????????? like'%drop%';
?
?????? ??????????? SCN ?????? ?????????????????? TIMESTAMP ??????????? ???????? SQL_REDO????????????????
?????????????????? ????????
?????????????????? ???????? 798149 ?------ 2013-04-16 20:47:08? ----- ?drop table abc -----
?? ? 8、結(jié)束分析
?????????????????? SQL>execute dbms_logmnr.end_logmnr;
5、數(shù)據(jù)恢復(fù)
???????? 1、關(guān)閉數(shù)據(jù)庫(kù)進(jìn)入mount模式
?????????????????? SQL> shutdown immediate
?????????????????? SQL> startup mount
???????? 2、還原所有的數(shù)據(jù)文件
?????????????????? [oracle@sql1 ~]$ cp db_bak2/*.dbf /oracle/app/oradata/TEST/
???????? 3、設(shè)置會(huì)話的時(shí)間格式
?????????????????? SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
???????? 4、恢復(fù)數(shù)據(jù)庫(kù)到時(shí)間點(diǎn)
?????????????????? SQL> recover database until time '2013-04-16 20:47:08';
???????? 5、重置日志打開數(shù)據(jù)庫(kù)
?????????????????? SQL> alter database open resetlogs;
???????? 6、查看數(shù)據(jù)是否恢復(fù)
?????????????????? SQL> select count(*) from abc;???????????????? 數(shù)據(jù)恢復(fù)出來(lái)了
??????????????????
???????? ????????
? ? ? ? ? ? ? ? ? ? ? ? ? ??
轉(zhuǎn)載于:https://blog.51cto.com/6274815/1179563
總結(jié)
以上是生活随笔為你收集整理的oracle按时间点还原数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: puppet kick 功能实现
- 下一篇: Reference, List, and