日誌分析一例

space6212發表於2019-06-25

今天接到開發人員報告:某些商品對應的圖片欄位經常被莫名其妙置空,導致在圖片在介面上顯示不出來。由於有可能更新該欄位的程式很多,不能確定是那個程式更新了這些資料,所以需要用logmnr來分析日誌,以確定是那個SQL對圖片欄位執行了更新。


以sys使用者執行
SQL> @?/rdbms/admin/dbmslms
SQL> @?/rdbms/admin/dbmslmd
SQL> alter system set utl_file_dir=* scope=spfile
--然後重啟資料庫
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP

--生成字典檔案

exec dbms_logmnr_d.build(dictionary_filename=>'testlog.ora',dictionary_location=>'/home/oracle');

--新增聯機日誌到分析列表中
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'/opt/oracle/oradata/sc1/redo01.log',Options=>dbms_logmnr.new);

PL/SQL procedure successfully completed.

SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'/opt/oracle/oradata/sc1/redo02.log',Options=>dbms_logmnr.new);

PL/SQL procedure successfully completed.

SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'/opt/oracle/oradata/sc1/redo03.log',Options=>dbms_logmnr.new);

PL/SQL procedure successfully completed.

--執行分析

EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'/home/oracle/testlog.ora');

--查詢分析結果(注意:由於分析後的日誌是存放在會話級的臨時表中,所以必須在同一個會話對它執行查詢,否則無查詢結果)
SQL> select sql_redo from v$logmnr_contents where upper(seg_name) like '%IMAGE_URL%';

--結束分析
SQL> exec dbms_logmnr.end_logmnr;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63716/,如需轉載,請註明出處,否則將追究法律責任。

相關文章