分析ROLLBACK是否产生日志信息(一)

2014-11-24 15:21:38 · 作者: · 浏览: 0

分析ROLLBACK是否产生日志信息
首先介绍分析日志的方法,采用LOGMNR
流程如下:
www.2cto.com
[sql]
SQL> @F:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslm.sql
程序包已创建。
授权成功。
同义词已创建。
SQL> @F:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslmd.sql
程序包已创建。
同义词已创建。
SQL> select log_mode from v$database;
www.2cto.com
LOG_MODE
------------
NOARCHIVELOG
SQL> @F:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmslms.sql
程序包已创建。
没有错误。
授权成功。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
www.2cto.com
Total System Global Area 778387456 bytes
Fixed Size 1374808 bytes
Variable Size 301991336 bytes
Database Buffers 469762048 bytes
Redo Buffers 5259264 bytes
数据库装载完毕。
--开启归档
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
--创建日志字典路径
SQL> alter system set utl_file_dir='d:\logmin' scope=spfile;
系统已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
www.2cto.com
Total System Global Area 778387456 bytes
Fixed Size 1374808 bytes
Variable Size 301991336 bytes
Database Buffers 469762048 bytes
Redo Buffers 5259264 bytes
数据库装载完毕。
数据库已经打开。
SQL> begin
2 dbms_logmnr_d.build(
3 dictionary_filename=>'logmin_dict.dat',
4 dictionary_location=>'d:\logmin');
5 end;
6 /
PL/SQL 过程已成功完成。
SQL> execute dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>
'F:\app\Administrator\oradata\orcl\REDO01.LOG');
PL/SQL 过程已成功完成。
SQL> begin
2 dbms_logmnr.start_logmnr(
3 dictfilename=>'d:\logmin\logmin_dict.dat'
4 );
5 end;
6 /
www.2cto.com
PL/SQL 过程已成功完成。
SQL> select count(*) from v$logmnr_contents;
COUNT(*)
----------
50496
SQL> create table log_back as select * from v$logmnr_contents;
表已创建。
SQL>execute dbms_logmnr.end_logmnr();
PL/SQL 过程已成功完成。
SQL> spool off
直接使用包来分析日志(11g r2的版本)
www.2cto.com
[sql]
--使用包分析日志的方法
exec dbms_logmnr.add_logfile('/data/archive/redo001.log',dbms_logmnr.new);
exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
--查询日志信息
select timestamp,scn,sql_redo
from v$logmnr_contents
where lower(sql_redo) like '%insert%'
and seg_name='TEST'
and seg_owner='TEST';
dbms_logmnr.end_logmnr(); --停止日志分析
www.2cto.co