詳談Oracle LogMiner工具
學(xué)習(xí)Oracle時,經(jīng)常會遇到使用Oracle LogMiner工具問題,下面將詳細(xì)介紹如何使用Oracle LogMiner工具。
創(chuàng)建數(shù)據(jù)字典文件(data-dictionary)
Oracle LogMiner工具實(shí)際上是由兩個新的PL/SQL內(nèi)建包((DBMS_LOGMNR 和 DBMS_ LOGMNR_D)和四個V$動態(tài)性能視圖(視圖是在利用過程DBMS_LOGMNR.START_LOGMNR啟動LogMiner時創(chuàng)建)組成。在使用Oracle LogMiner工具分析redo log文件之前,可以使用DBMS_LOGMNR_D 包將數(shù)據(jù)字典導(dǎo)出為一個文本文件。該字典文件是可選的,但是如果沒有它,LogMiner解釋出來的語句中關(guān)于數(shù)據(jù)字典中的部分(如表名、列名等)和數(shù)值都將是16進(jìn)制的形式,我們是無法直接理解的。例如,下面的sql語句:
- INSERT INTO dm_dj_swry (rydm, rymc) VALUES (00005, '張三');
LogMiner解釋出來的結(jié)果將是下面這個樣子
- insert into Object#308(col#1, col#2) values (hextoraw('c30rte567e436'), hextoraw('4a6f686e20446f65'));
創(chuàng)建數(shù)據(jù)字典的目的就是讓LogMiner引用涉及到內(nèi)部數(shù)據(jù)字典中的部分時為他們實(shí)際的名字,而不是系統(tǒng)內(nèi)部的16進(jìn)制。數(shù)據(jù)字典文件是一個文本文件,使用包DBMS_LOGMNR_D來創(chuàng)建。如果我們要分析的數(shù)據(jù)庫中的表有變化,影響到庫的數(shù)據(jù)字典也發(fā)生變化,這時就需要重新創(chuàng)建該字典文件。另外一種情況是在分析另外一個數(shù)據(jù)庫文件的重作日志時,也必須要重新生成一遍被分析數(shù)據(jù)庫的數(shù)據(jù)字典文件。
首先在init.ora初始化參數(shù)文件中,指定數(shù)據(jù)字典文件的位置,也就是添加一個參數(shù)UTL_FILE_DIR,該參數(shù)值為服務(wù)器中放置數(shù)據(jù)字典文件的目錄。如:
- UTL_FILE_DIR = (e:\Oracle\logs)
重新啟動數(shù)據(jù)庫,使新加的參數(shù)生效,然后創(chuàng)建數(shù)據(jù)字典文件:
- SQL> CONNECT SYS
- SQL> EXECUTE dbms_logmnr_d.build(
- dictionary_filename => ' v816dict.ora',
- dictionary_location => 'e:\oracle\logs');
以上介紹使用Oracle LogMiner工具。
【編輯推薦】