LogMiner步驟-記一次日誌挖掘的測試

1、進行初始化設置:開啓附加日誌,設置LogMiner的表空間,設置UTL_FILE_DIR參數的值;

SQL> CREATE DIRECTORY utlfile AS 'D:\oracle\oradata\practice\LOGMNR'; 
SQL> alter system set utl_file_dir='D:\oracle\oradata\LOGMNR' scope=spfile;

2、提取一個字典:將字典文件提取爲Flat File或Redo日誌。(或者直接使用Online Catalog);

CMD>CONNECT / AS SYSDBA 

SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'D:\oracle\oradata\LOGMNR');

SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';

Session altered.
查詢日誌組:

SQL> select member from v$logfile;

在這裏插入圖片描述
3、指定需要分析的Redo日誌文件,利用DBMS_LOGMNR.ADD_LOGFILE來添加日誌;

SQL> execute dbms_logmnr.add_logfile('E:\APP\ADMINISTRATOR\ORADATA\TEST\REDO01.LOG',dbms_logmnr.new);

PL/SQL procedure successfully completed.
在這裏插入圖片描述
4、開始LogMiner:exec DBMS_LOGMNR.START_LOGMNR來啓動LogMiner;:

SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog+dbms_logmnr.committed_data_only);

5、查詢視圖進行結果分析:

SQL> select sql_redo,sql_undo from v$logmnr_contents where OPERATION='INSERT';

在這裏插入圖片描述
6、結束LogMiner:通過執行EXECUTE DBMS_LOGMNR.END_LOGMNR來結束分析。

 SQL>execute dbms_logmnr.end_logmnr;

注意:Oracle的LogMiner分析時分爲無限制條件和限制條件兩種。要想精確如按照SCN,按照時間點查詢,需要啓用帶限制條件的方式。
例如:
我們僅僅分析2019年6月1日的日誌,:

EXECUTE dbms_logmnr.start_logmnr(

DictFileName => dictfilename=>‘D:…\practice\LOGMNR\dictionary.ora’,

StartTime =>to_date(‘2019-6-1 00:00:00’,‘YYYY-MM-DD HH24:MI:SS’)

EndTime =>to_date(’‘2019-6-1 23:59:59’,'YYYY-MM-DD HH24:MI:SS '));

同樣結果查詢也可按用戶,按表查詢結果:
SELECT sql_redo FROM v$logmnr_contents WHERE username=‘SCOTT’ AND tablename=‘EMP’;
但我查詢的時候發現ogmnr_contents下記錄到的這兩個字段沒提取到結果,猜想是不是需要補充日誌supplemental log;
在這裏插入圖片描述
如大家有興趣,可以嘗試使用使用Online Catalog(聯機日誌)的方式再做一次實驗一下。
適用於源庫與目標庫不同這樣的方式

EXECUTE DBMS_LOGMNR_D.BUILD( -
OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

看字典存放到了哪個歸檔日誌:

SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES';
SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES';

或者使用在線字典
這種方式是Oracle推薦的,適用於在源庫做LogMiner,也是最易用的一種方式。

EXECUTE DBMS_LOGMNR.START_LOGMNR(-
OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

部分參考:https://www.csdn.net/article/2014-12-30/2823367

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章