程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> DBA_Oracle LogMiner分析重做和歸檔日志(案例)(Oracle會記錄任何的操作入日志,如何進行分析日志),dba_oraclelogminer

DBA_Oracle LogMiner分析重做和歸檔日志(案例)(Oracle會記錄任何的操作入日志,如何進行分析日志),dba_oraclelogminer

編輯:Oracle教程

DBA_Oracle LogMiner分析重做和歸檔日志(案例)(Oracle會記錄任何的操作入日志,如何進行分析日志),dba_oraclelogminer


2014-08-19 BaoXinjian

一、摘要


Oracle LogMiner 是一個非常有用並且完全免費的分析工具,可輕松獲得Oracle 重做日志文件(歸檔日志文件)中的具體內容,它是由一組PL/SQL包和一些動態視圖組成。

日志文件中存放著所有進行數據庫恢復的數據,記錄了針對數據庫結構的每一個變化,也就是對數據庫操作的所有DML語句。

Logminer工具即可以用來分析在線,也可以用來分析離線日志文件,即可以分析本身自己數據庫的重作日志文件,也可以用來分析其他數據庫的重作日志文件。

1. 主要用途:

  • (1). 跟蹤數據庫的變化:可以離線的跟蹤數據庫的變化,而不會影響在線系統的性能。
  • (2).回退數據庫的變化:回退特定的變化數據,減少point-in-time recovery的執行。
  • (3).優化和擴容計劃:可通過分析日志文件中的數據以分析數據增長模式。

2. 兩個重要package

  • DBMS_LOGMNR
  • DBMS_LOGMNR_D

3. 四個重要視圖

  • V$LOGMNR_DICTIONARY-------查詢使用的數據字典文件
  • V$LOGMNR_PARAMETERS-------查詢當前LogMiner設定的參數
  • V$LOGMNR_LOGS-------查詢分析的日志文件
  • V$LOGMNR_CONTENTS-------日志文件的內容

4.  DBMS_LOGMNR.start_logmnr可定義參數區分分析的范圍

  • SCN
  • Timestamp

 

二、案例 - 創建測試表並塞入資料分析重做日志是否記錄


1. 安裝LogMiner

要安裝logminer工具,必須首先要運行下面這樣三個腳本 

SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql

SQL> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql

SQL> @$ORACLE_HOME/rdbms/admin/dbmslms.sql

這兩個腳本必須均以SYS用戶身份運行。其中第一個腳本用來創建DBMS_LOGMNR包,該包用來分析日志文件。第二個腳本用來創建DBMS_LOGMNR_D包,該包用來創建數據字典文件。

創建完畢後將包括如下過程和視圖:

 

2. 創建數據字典文件

CREATE DIRECTORY utlfile AS '/opt/oracle/oradata/gavinsit/logmnr'

alter system set utl_file_dir='/opt/oracle/oradata/gavinsit/logmnr' scope=spfile;

重啟

LogMiner工具實際上是由兩個新的PL/SQL內建包((DBMS_LOGMNR 和 DBMS_ LOGMNR_D)和四個V$動態性能視圖(視圖是在利用過程DBMS_LOGMNR.START_LOGMNR啟動LogMiner時創建)組成。

在使用LogMiner工具分析redo log文件之前,可以使用DBMS_LOGMNR_D 包將數據字典導出為一個文本文件。

該字典文件是可選的,但是如果沒有它,LogMiner解釋出來的語句中關於數據字典中的部分(如表名、列名等)和數值都將是16進制的形式,我們是無法直接理解的

 

3. 查看數據庫中的重做日志

 

4. 創建表,並增加一筆記錄,通過分析,查看是否存在在重做日志中,並確認SCN

 

5. 加入需分析的日志文件,使用LogMiner進行日志分析

BEGIN
   DBMS_LOGMNR_D.build (
      dictionary_filename   => 'dictionary.ora',
      dictionary_location   => '/opt/oracle/oradata/gavinsit/logmnr'
   );

   DBMS_LOGMNR.add_logfile ('/opt/oracle/oradata/gavinsit/redo01.log',
                            DBMS_LOGMNR.NEW);

   DBMS_LOGMNR.add_logfile ('/opt/oracle/oradata/gavinsit/redo02.log',
                            DBMS_LOGMNR.ADDFILE);

   DBMS_LOGMNR.add_logfile ('/opt/oracle/oradata/gavinsit/redo03.log',
                            DBMS_LOGMNR.ADDFILE);

   DBMS_LOGMNR.start_logmnr (
      DictFileName   => '/opt/oracle/oradata/gavinsit/logmnr/dictionary.ora'
   );
END;

 

6. 查看動態視圖結果

6.1 查看數據字典文件

6.2 查看分析參數

6.3 查看分析的日志文件

6.4 追溯到創建表的sql

6.5 追溯到插入數據的sql

insert into "SYS"."OBJ$"("OBJ#","DATAOBJ#","OWNER#","NAME","NAMESPACE","SUBNAME","TYPE#","CTIME","MTIME","STIME","STATUS","REMOTEOWNER","LINKNAME","FLAGS","OID$","SPARE1","SPARE2","SPARE3","SPARE4","SPARE5","SPARE6") values ('78204','78204','0','BXJ_TEST_LOGMINER','1',NULL,'2',TO_DATE('18-AUG-14', 'DD-MON-RR'),TO_DATE('18-AUG-14', 'DD-MON-RR'),TO_DATE('18-AUG-14', 'DD-MON-RR'),'1',NULL,NULL,'0',NULL,'6','1','0',NULL,NULL,NULL);

 

7. 取消分析

 execute dbms_logmnr.end_logmnr;

 

********************作者:鮑新建********************

 

參考: http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm


用什工具可以打開oracle歸檔日志文件?

兄弟,
oracle歸檔日志文件是二進制文件.
我們無法按正常的方式進行查看/修改這類文件.
建議你不要動它.
 

oracle 重做日志作用,及其從產生到 歸檔的整個過程

簡單的說重做日記記錄了oracle的dmlddl產生的改變,當數據庫運行在歸檔模式下.
每當重做日志寫滿或手工/自動日志切換時,會將重做日志進行歸檔產生歸檔日志.
本質上說,歸檔日志和重做日志內容一樣,
重做日志數量是根據日志組定義的,多個重做日志循環寫/覆蓋寫入;而歸檔日志一經歸檔就不會被重寫/覆蓋.
歸檔日志用來恢復數據庫使用.
歸檔和重做日志都可以使用logminer進行分析,幫助查看數據庫變化和恢復.
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved