日誌分析logmnr (Logminer) 使用方法
注意:
使用logminer查詢表v$logmnr_contents必須在同一個會話中進行,因為分析的那些
資訊儲存在這個session 的PGA中,在別的session 裡面是查不到的。
檢視v$logmnr_contents中的分析結果僅在我們執行過程'dbms_logmrn.start_logmnr'這個
會話的生命期中存在。這是因為所有的LogMiner儲存都在PGA記憶體中,所有其他的程式是看
不到它的,同時隨著程式的結束,分析結果也隨之消失。 最後,使用過程DBMS_LOGMNR.END_LOGMNR
終止日誌分析事務,此時PGA記憶體區域被清除,分析結果也隨之不再存在。
----------------------------------------------------------------------------------------
0, 安裝LogMiner工具,以下兩個指令碼以SYSDBA身份執行
SQL>@?/rdbms/admin/dbmslm.sql
dbmslm.sql是用來建立DBMS_LOGMNR的package,這個包是用來分析日誌的
SQL>@?/rdbms/admin/dbmslmd.sql
dbmslmd.sql是用來建立DBMS_LOGMNR_D的package的,這個包是用來建立資料字典檔案的
1、備份原表
create table dfms.aab_bak as SELECT * from dfms.aab ;
2. 建同樣架構新表,準備將恢復的資料匯入
create table dfms.aac ;
3. 設定UTL_FILE_DIR引數來指定資料字典檔案的位置目錄
alter system set UTL_FILE_DIR='/u01/logmnr' scope=spfile;
關閉資料庫,並開啟使之生效。
SQL> show parameter utl_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string /u01/logmnr
4. 以sysdba許可權登入,生成資料字典
exec dbms_logmnr_d.build('dictionary.ora','/u01/logmnr');
我們可以看到在/u01/logmnr目錄下生成了一個檔案。
lhtestdb01$ls -al
total 26060
drwxr-xr-x 2 oracle dba 4096 Jun 23 15:10 .
drwxrwxr-x 6 oracle dba 4096 Jun 23 15:03 ..
-rw-r--r-- 1 oracle dba 26632605 Jun 27 14:42 dictionary.ora
5. 新增歸檔日誌或連線日誌檔案
exec dbms_logmnr.add_logfile
(LogFileName=>'/u01/product/oradata/mxdell/redo04.log',Options=>dbms_logmnr.new);
exec dbms_logmnr.add_logfile
(LogFileName=>'/u01/product/oradata/mxdell/redo05.log',Options=>dbms_logmnr.addfile);
6、開始挖掘日誌
exec dbms_logmnr.start_logmnr(dictfilename=>'/u01/logmnr/dictionary.ora');
7. 生成臨時儲存表
因為檢視Logmnr的結果需要在同一個session, 所以我們可以將session PGA中的挖掘的
內容儲存在實體表中,這樣其他使用者也可以查詢,且不會因為session的消失資料也消失。
SQL> create table dfms.logmnr_temp01 as select * from GV$LOGMNR_CONTENTS;
8. 結束挖掘日誌
execute dbms_logmnr.end_logmnr;
9. 刪除日誌分析檔案
exec dbms_logmnr.add_logfile('/u01/product/oradata/mxdell/redo04.log',dbms_logmnr.removefile);
exec dbms_logmnr.add_logfile('/u01/product/oradata/mxdell/redo05.log',dbms_logmnr.removefile);
10. 查詢sql_redo及sql_undo .
select * from dfms.logmnr_temp01 ;
select scn,timestamp,log_id,seg_owner,seg_type,table_space,data_blk#,data_obj#,data_objd#,
session#,serial#,username,session_info,sql_redo,sql_undo
from dfms.LOGMNR_TEMP01 t where SEG_OWNER='DFMS' ;
8、匯出指令碼,用指令碼做回滾,注意SQL_UNDO中的delete語句末尾有rowid,不能直接用,需要用正規表示式替換掉。
spool TA_ABSDOCS_undosql.txt
select regexp_replace(replace(SQL_UNDO,'"HR_TTM"','"HR_TTM2"'),'and ROWID.+;',';')
from hjm_logmnr
WHERE
SEG_NAME = 'TA_ABSDOCS' AND
SEG_OWNER = 'HR_TTM'
order by to_char(TIMESTAMP,'yyyy-mm-dd hh24:mi:ss') desc;
spool off
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-700811/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Logminer日誌挖掘
- Logminer如何檢視日誌
- logminer異機挖掘歸檔日誌
- 日誌分析-apache日誌分析Apache
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- crash日誌分析
- FDOAGENT日誌分析
- 達夢資料庫使用DBMS_LOGMNR進行日誌挖掘詳細步驟資料庫
- 玄機-第二章日誌分析-apache日誌分析Apache
- perl分析apache日誌Apache
- JAVA GC日誌分析JavaGC
- Docker 容器日誌分析Docker
- 日誌採集/分析
- 使用 Oracle logminer 挖掘日誌恢復誤刪資料以及查詢操作者Oracle
- Open Feign使用方法、等待時間、日誌列印功能
- Android ANR日誌分析指南Android
- 日誌分析如何演變
- CDN日誌實時分析
- mongodb 日誌分析工具mtoolsMongoDB
- IOS 崩潰日誌分析iOS
- ELK日誌分析系統
- pgbadger 慢日誌分析工具
- 日誌分析一例
- nginx日誌分析工具goaccessNginxGo
- net 日誌分析錯誤
- 日誌分析常規操作
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- logminer進行資料探勘分析測試
- [20181217]ogg抽取日誌分析.txt
- ClickHouse與威脅日誌分析
- ELK-日誌分析系統
- Mysql 慢日誌分析工具MysqldumpslowMySql
- 應急響應:日誌分析
- TFA-收集日誌及分析
- Oracle listener log 日誌分析方法Oracle
- 日誌分析(1)常見命令
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- fluentd收集kubernetes 叢集日誌分析
- Zookeeper原始碼分析(二) —– zookeeper日誌原始碼