`

[oracle]LogMiner的使用

阅读更多
LogMiner
--

01 功能:
版本: 8i
    分析重做/归档日志内容的工具
版本: 9i
    记录DDL操作
    日志冲突
    其它特性,用处不大
版本: 11g:
    LogMiner viewer 集到EM的图形化工具, 加入了闪回特性.


    日志冲突
 
BEGIN
  DBMS_LOGMNR.start_logmnr (
    options => DBMS_LOGMNR.skip_corruption);
END;
/
 

   

02 用法:

1
分析归档日志内容的工具

1.1
创建字典文件
说明: 本步骤可选, 创建字典文件主要是为了转换表ID, 列ID, 值(16进制)等数据为有意义的格式.

条件:
a. 数据库实例 mount|open
b. 初始化参数文件设置
UTL_FILE_DIR



-- 配置字典位置
cd /opt/app/oracle/oradata/BISOFT
mkdir dictfile

alter system set UTL_FILE_DIR='/opt/app/oracle/oradata/BISOFT/dictfile' scope=spfile;

-- 配置归档日志位置及格式
alter system set LOG_ARCHIVE_DEST='/opt/app/oracle/oradata/BISOFT/archivelog' scope=spfile;
alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;

-- 重启数据库
shutdown immediate;
startup;

-- 切换日志
alter system switch logfile;

-- 查看归档日志
select * from v$archived_log;

-------------------------------------------
-- 1 创建字典文件
-------------------------------------------
BEGIN
  DBMS_LOGMNR_D.build (
    dictionary_filename => 'bisoft_dict.ora',
    dictionary_location => '/opt/app/oracle/oradata/BISOFT/dictfile');
END;
/

-------------------------------------------
-- 2 添加归档日志
-------------------------------------------
BEGIN
  DBMS_LOGMNR.add_logfile (
    options     => DBMS_LOGMNR.new, -- 第一个使用new
    logfilename => '/opt/app/oracle/oradata/BISOFT/archivelog/1_27_826670579.arc');

  DBMS_LOGMNR.add_logfile (
    options     => DBMS_LOGMNR.addfile, -- 第二个开始使用addfile
    logfilename => '/opt/app/oracle/oradata/BISOFT/archivelog/1_28_826670579.arc');
END;
/

-------------------------------------------
-- 3 启动 LogMiner
-------------------------------------------
BEGIN
  DBMS_LOGMNR.start_logmnr (
    dictfilename => '/opt/app/oracle/oradata/BISOFT/dictfile/bisoft_dict.ora',
    options => DBMS_LOGMNR.skip_corruption);
END;
/

-------------------------------------------
-- 4 查询结果
-------------------------------------------
select * from V$LOGMNR_CONTENTS where upper(table_name) = 'TEST';
select scn, start_scn, commit_scn, timestamp, xid, operation, table_name, row_id, sql_redo, sql_undo from V$LOGMNR_CONTENTS where upper(table_name) = 'TEST';

-------------------------------------------
-- 5 停止 LogMiner
-------------------------------------------
BEGIN
  DBMS_LOGMNR.end_logmnr;
END;
/
 


通过LogMiner分析日志文件,我们发现所有DDL操作是不记录回滚信息的.
因此
truncate table t 只能通过备份或闪回来恢复.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics