云貝教育 |【技術(shù)文章】Logminer日志礦工簡介
作者:劉曉峰
原文鏈接:http://www.tdpub.cn/Home/Blog/detail/id/1347.html
1.Logminer能干什么
(1)查詢數(shù)據(jù)庫損壞,比如誤刪了數(shù)據(jù)庫讀寫
(2)跟蹤用戶所做的更改
(3)通過日志分析哪些表在做頻繁的DML,以便進(jìn)行性能優(yōu)化
我們通過logminer演示用戶的修改(審計(jì)需要提前開啟,但是logminer并不需要)
這里我們source數(shù)據(jù)庫和mining數(shù)據(jù)庫都是同一個(gè)(正常情況是source是生產(chǎn),mining測試)
2.先決條件
logminer需要:
(1)一個(gè)source數(shù)據(jù)庫,有待分析的日志文件
(2)一個(gè)mining數(shù)據(jù)庫,提供挖掘環(huán)境
(3)一個(gè)logminer字典,用于將內(nèi)部ID轉(zhuǎn)換成對應(yīng)的列名
(4)source數(shù)據(jù)庫的日志文件
logminer要求表名和列名不能超過30個(gè)字符
2.1啟用補(bǔ)充日志記錄
如果返回N,則需要啟用最小補(bǔ)充日志記錄
3.開始挖掘
創(chuàng)建測試環(huán)境:
然后有人執(zhí)行了更新操作(這個(gè)人當(dāng)然是我)
3.1指定字典
字典有三種形式,具體參考decision_tree.gif (483×406) (oracle.com)
我們使用平面字典文件
在假裝的"生成環(huán)境"執(zhí)行下面命令
此時(shí)去對應(yīng)目錄下可以看到是已經(jīng)生成了平面文件,接下來我們把此文件假裝拷貝到我們的測試庫下(不拷貝也行,直接跑)
3.2添加重做日志
3.2.1分析在線重做日志文件
查詢得到當(dāng)前的在線重做日志文件為/usr/local/oracle19c/oradata/ORCL/redo01.log
3.2.2 分析歸檔重做日志
我們先切換日志組,將在線重做日志刷到歸檔重做日志
繼續(xù)查詢
通過時(shí)間我們判斷日志文件應(yīng)該是
并"假裝"拷貝到我們的測試數(shù)據(jù)庫
3.3啟動日志礦工
3.4查詢數(shù)據(jù)
使用在線重做日志和歸檔重做日志查詢,都只能只能查到一行DDL的操作,沒有找到我們后續(xù)的UPDATE
但是其它表的DML卻能正常捕捉
3.5結(jié)束日志礦工
參考資料:https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-logminer-utility.html