oracle日志挖掘--logminer
数据库进行了误操作(比如,删除了用户或者删除了一张表),但是你不确定是什么时候做的操作,这个时候可以通过oracle的 日志挖掘(logmier)技术,找到误操作的时间点,然后利用备份进行不完全恢复,找到丢失的数据。这种方法很有用,建议掌握。
1、日志挖掘之前,要设置补充日志。
alter database add supplemental log data;
2、备份
backup database include current controlfile plus archivelog delete input;
3、
确认当前日志文件
select * from v$log;
col member for a50
select group#,member from v$logfile;
确认归档日志文件
odb1.test.com-PROD1>pwd
/home/oracle/arch/prod1
odb1.test.com-PROD1>ls -l
total 91384
-rw-r----- 1 oracle oinstall 13312 Mar 9 20:15 1_60_878767540.dbf
-rw-r----- 1 oracle oinstall 3072 Mar 9 20:16 1_61_878767540.dbf
-rw-r----- 1 oracle oinstall 50630144 Mar 9 20:19 1_62_878767540.dbf
-rw-r----- 1 oracle oinstall 42819584 Mar 9 20:19 1_63_878767540.dbf
odb1.test.com-PROD1>pwd
4、日志挖掘语句
execute dbms_logmnr.add_logfile(-
logfilename=>'/u01/app/oracle/oradata/prod1/redo01.log',-
options=>dbms_logmnr.new);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_60_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_61_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_62_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_63_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.start_logmnr(options=> -
dbms_logmnr.dict_from_online_catalog);
col username for a10
col sql_redo for a50
select username,scn,timestamp,sql_redo from v$logmnr_contents where sql_redo like '%drop%' order by scn;
--注意要在start_logmnr和end_logmnr两个操作之间查询v$logmnr_contents视图,如果不在这之间查询,会报错。
execute dbms_logmnr.end_logmnr;
sql_redo
sql_undo :只有dml语句才有sql_undo信息。
注意:
可以直接就这些写添加日志文件,不用先写new。
execute dbms_logmnr.add_logfile(logfilename=>'/arch/1_22_878767540.dbf',options=>dbms_logmnr.addfile);
5、
通过日志挖掘技术,找到scn或者时间点,然后进行不完全恢复。
run
{
set until scn 618586;
restore database;
recover database;
}
alter database open resetlogs;
数据库进行了误操作(比如,删除了用户或者删除了一张表),但是你不确定是什么时候做的操作,这个时候可以通过oracle的 日志挖掘(logmier)技术,找到误操作的时间点,然后利用备份进行不完全恢复,找到丢失的数据。这种方法很有用,建议掌握。
1、日志挖掘之前,要设置补充日志。
alter database add supplemental log data;
2、备份
backup database include current controlfile plus archivelog delete input;
3、
确认当前日志文件
select * from v$log;
col member for a50
select group#,member from v$logfile;
确认归档日志文件
odb1.test.com-PROD1>pwd
/home/oracle/arch/prod1
odb1.test.com-PROD1>ls -l
total 91384
-rw-r----- 1 oracle oinstall 13312 Mar 9 20:15 1_60_878767540.dbf
-rw-r----- 1 oracle oinstall 3072 Mar 9 20:16 1_61_878767540.dbf
-rw-r----- 1 oracle oinstall 50630144 Mar 9 20:19 1_62_878767540.dbf
-rw-r----- 1 oracle oinstall 42819584 Mar 9 20:19 1_63_878767540.dbf
odb1.test.com-PROD1>pwd
4、日志挖掘语句
execute dbms_logmnr.add_logfile(-
logfilename=>'/u01/app/oracle/oradata/prod1/redo01.log',-
options=>dbms_logmnr.new);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_60_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_61_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_62_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.add_logfile(-
logfilename=>'/home/oracle/arch/prod1/1_63_878767540.dbf',-
options=>dbms_logmnr.addfile);
execute dbms_logmnr.start_logmnr(options=> -
dbms_logmnr.dict_from_online_catalog);
col username for a10
col sql_redo for a50
select username,scn,timestamp,sql_redo from v$logmnr_contents where sql_redo like '%drop%' order by scn;
--注意要在start_logmnr和end_logmnr两个操作之间查询v$logmnr_contents视图,如果不在这之间查询,会报错。
execute dbms_logmnr.end_logmnr;
sql_redo
sql_undo :只有dml语句才有sql_undo信息。
注意:
可以直接就这些写添加日志文件,不用先写new。
execute dbms_logmnr.add_logfile(logfilename=>'/arch/1_22_878767540.dbf',options=>dbms_logmnr.addfile);
5、
通过日志挖掘技术,找到scn或者时间点,然后进行不完全恢复。
run
{
set until scn 618586;
restore database;
recover database;
}
alter database open resetlogs;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24626891/viewspace-2127344/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24626891/viewspace-2127344/