logminer和配置安裝logminer為logminer創(chuàng)建單獨(dú)的表空間跟蹤ddl語句設(shè)置數(shù)據(jù)字典將數(shù)據(jù)字典提取為Flat File將數(shù)據(jù)字典提取為Redo Log使用聯(lián)機(jī)日志作為數(shù)據(jù)源(推薦)
分析在線日志挖掘歸檔日志批量增加分析文件結(jié)束分析
以sqlplus / as sysdba登錄系統(tǒng)數(shù)據(jù)庫系統(tǒng),ORACLE默認(rèn)安裝logminer,如果沒有安裝,執(zhí)行SQL腳本安裝
普通用戶執(zhí)行l(wèi)ogminer需要進(jìn)行賦權(quán)
默認(rèn)情況下logminer生成的表和數(shù)據(jù)都是在system表空間下,很容易就把system撐爆從而引發(fā)問題。
因此需要?jiǎng)?chuàng)建單獨(dú)的表空間,并制定logminer使用該表空間:
使用logminer需要指定數(shù)據(jù)字典,在沒有數(shù)據(jù)字典的情況下表,表名和字段名都會(huì)顯示為Object#1111和col#1,col#2,閱讀起來非常的不方便。可以提取數(shù)據(jù)字典文件,或者使用當(dāng)前數(shù)據(jù)庫的聯(lián)機(jī)目錄作為字典源,目的都是能讓logminer“知道”表名和表的字段名
以sqlplus / as sysdba登錄,修改數(shù)據(jù)庫spfile參數(shù),并重啟數(shù)據(jù)庫(生產(chǎn)環(huán)境慎用!)
要特別注意一個(gè)問題,我在測(cè)試環(huán)境上執(zhí)行這條命令以后,ORACLE大概卡頓了20分鐘,最后返回一個(gè)提示信息:總線錯(cuò)誤(吐核)……還吐核。。你咋不再來二兩花生米呢
其實(shí)那個(gè)錯(cuò)誤,從日志里看應(yīng)該是core dumped,內(nèi)核已轉(zhuǎn)儲(chǔ),也就是確實(shí)遇到了系統(tǒng)問題。此時(shí)服務(wù)器能正常使用,但是所有跟oracle用戶的功能都廢了,自然也包括數(shù)據(jù)庫服務(wù)器。執(zhí)行reboot重啟也是長時(shí)間無反應(yīng),接了個(gè)顯示器一看,服務(wù)器已經(jīng)在那里裝死了。16核64G服務(wù)器配置應(yīng)該也不算低。我現(xiàn)在還不確定這個(gè)問題是服務(wù)器本身就有錯(cuò)誤,還是那條命令導(dǎo)致的,反正我是強(qiáng)烈建議在生產(chǎn)環(huán)境上慎用。如果真要執(zhí)行的話,最好先跟信息中心那邊協(xié)商好,萬一真出問題了能直接到機(jī)房去按電源重啟。
反正我是最后按電源重啟解決
這種方式用的比較廣泛,大多是異地挖掘,比如數(shù)據(jù)是在生產(chǎn)環(huán)境數(shù)據(jù)庫上,把歸檔日志拷貝到本地?cái)?shù)據(jù)庫服務(wù)器上,只要本地?cái)?shù)據(jù)庫開啟了歸檔并且處于OPEN狀態(tài)就可以進(jìn)行分析。但是要注意必須有對(duì)應(yīng)的數(shù)據(jù)字典。
網(wǎng)絡(luò)上很多說法都是用DBMS_LOGMNR_D.BUILD把數(shù)據(jù)字典提取到挖掘數(shù)據(jù)庫的在線日志中,但是我自己試了不行,我覺得原因就是拷貝的歸檔日志文件中并不包含對(duì)應(yīng)的數(shù)據(jù)字段,最后解析出來的SQL都是unknown,col#,object#。另外一種可能,就是歸檔期間內(nèi)有數(shù)據(jù)庫的重啟、重建表空間等操作,導(dǎo)致歸檔的數(shù)據(jù)字典和當(dāng)前的不一致了。因此以后還是做好數(shù)據(jù)字典的備份
使用聯(lián)機(jī)日志作為數(shù)據(jù)源,是最快的方式,但是局限是如果表上發(fā)生過ddl語句,那么就無法分析ddl之前的SQL。因?yàn)槁?lián)機(jī)日志在ddl之后就失效了。
至此logminer的安裝完成
依次添加所有的日志文件:
使用聯(lián)機(jī)日志開始執(zhí)行分析
將日志內(nèi)容寫入物理表
然后就可以查詢usr_logmnr.logmnr201912212053中的內(nèi)容了。
當(dāng)聯(lián)機(jī)日志達(dá)到指定大小后就會(huì)轉(zhuǎn)為歸檔日志,
首先通過rman查看要進(jìn)行挖掘的歸檔日志
登錄rman拷貝要進(jìn)行挖掘的歸檔日志
也可以在sqlplus中通過SQL執(zhí)行查詢歸檔日志:
然后開始分析拷貝的歸檔日志,或者也可以直接增加歸檔日志
然后可以查看歸檔日志的內(nèi)容:
當(dāng)要分析的日志文件比較多時(shí),可以批量增加文件
logmnr分析的結(jié)果,在另一個(gè)會(huì)話中是查詢不到的,當(dāng)分析結(jié)束后,建議關(guān)閉當(dāng)前分析過程。釋放PGA內(nèi)存區(qū)域