LogMiner özellikle yanlışlıkların ve hataların tespit edilmesinde yararlı olur. Redo log dosyaları incelendikten ve sonuçları anlamları bir bilgiye çevrildikten sonra v$logmnr_contents tablosundan inceleme yapabiliriz. Kullanılan Sql'lerle birlikte bunların undo sql'leri gösterilir ve bunlardan da geri çevirme işlemi yapılabilinir.
Bundan başka LogMiner ile bir tablonun değişikliklerinin takip edilmesi, b ir kullanıcı tarafından yapılan değişikliklerin izlenilmesi işlemleri de yapılabilinir.
LogMiner paketi database ile birlikte gelir. "Advanced" kurulum sırasında yüklenip yüklenmemesi opsiyon olarak sorulur.
LogMiner Kullanım Amaçları:
-Bir database olayını belirlemek için.
-Kullanıcılar tarafından gerçekleştirilen işlemleri bulmak için.
-Veri değişikliğine karşı undo transaction'ları gerçekleştirme.
-Veritabanında gerçekleştirilen operasyonların audit'lenmesi.
LogMiner Konfigürasyonu ve Dictionary File'ın Yaratılması:
LogMiner var olan verileri kullanmak için bir "dictionary file" kullanır. LogMiner'ın kullandığı veriler "raw data" olduğu için bu bilgileri daha anlamlı hale getirmek için bir dictionary file gerekir. Bu da bir parametrenin aktifleştirilmesiyle olur.
UTL_FILE_DIR=/u01/app/oracle/oradata/LogMıner
Yukarıda LogMiner için klasörümüzü belirttikten sonra aşağıda da kullanacağımız dictionary file dosyasını belirtiriz. Paketi çalıştırıp dosyamızı belirtilen klasörün altında yaratırız.
BEGIN
DBMS_LOGMNR_D.build (
dictionary_filename => 'dictfile.ora',
dictionary_location => '/u01/app/oracle/oradata/LogMıner');
END;
/
LogMiner Kullanacağı Logların Belirtilmesi:
Analiz edilecek loglar da paketin yardımıyla eklenmelidir. dbms_logmnr.new opsiyonu ile bir liste oluşturulur.
BEGIN
DBMS_LOGMNR.add_logfile (
options => DBMS_LOGMNR.new,
logfilename => '/u01/app/oracle/oradata/archive/berkeArchive00001');
/
dbms_logmnr.addfile opsiyonu ile var olan listeye logfile eklenir.
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => '/u01/app/oracle/oradata/archive/berkeArchive00001', -
OPTIONS => dbms_logmnr.addfile);
dbms_logmnr.removefile opsiyonu ile log dosyaları kaldırılır.
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => '/u01/app/oracle/oradata/archive/berkeArchive00001',
OPTIONS => dbms_logmnr.removelogfile);
LogMiner'ı Başlatmak:
LogMiner'ı başlatmak için birden fazla opsiyon bulunmaktadır. Belirli bir SCN numarası, zaman aralığı verilerek ya da bütün logları kullanarak analiz yaptırabiliriz.
BEGIN
-- Start using all logs
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora');
SCN Aralığı:
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora',
startscn => 98231321,
endscn => 98298845);
END;
Zaman Aralığı:
DBMS_LOGMNR.start_logmnr (
dictfilename => '/u01/app/oracle/oradata/LogMıner/dictfile.ora',
starttime => TO_DATE('01-JAN-2013 00:00:00', 'DD-MON-YYYY HH:MI:SS'),
endtime => TO_DATE('01-MAR-2013 10:00:00', 'DD-MON-YYYY HH:MI:SS'));
Analiz Edilen Loglarla İlgil Bilgilerin Sorgulanması:
LogMiner tarafından kullanılan başlıca tablolar aşağıdaki gibidir.
DBA_LOGMNR_LOG
DBA_LOGMNR_PURGED_LOG
DBA_LOGMNR_SESSION
GV$LOGMNR_CALLBACK Synonym for GV_$LOGMNR_CALLBACK
GV$LOGMNR_CONTENTS Synonym for GV_$LOGMNR_CONTENTS
GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY
GV$LOGMNR_DICTIONARY_LOAD Synonym for GV_$LOGMNR_DICTIONARY_LOAD
GV$LOGMNR_LATCH Synonym for GV_$LOGMNR_LATCH
GV$LOGMNR_LOGFILE Synonym for GV_$LOGMNR_LOGFILE
GV$LOGMNR_LOGS Synonym for GV_$LOGMNR_LOGS
GV$LOGMNR_PARAMETERS Synonym for GV_$LOGMNR_PARAMETERS
GV$LOGMNR_PROCESS Synonym for GV_$LOGMNR_PROCESS
GV$LOGMNR_REGION Synonym for GV_$LOGMNR_REGION
GV$LOGMNR_SESSION Synonym for GV_$LOGMNR_SESSION
GV$LOGMNR_STATS Synonym for GV_$LOGMNR_STATS
GV$LOGMNR_TRANSACTION Synonym for GV_$LOGMNR_TRANSACTION
V$LOGMNR_CALLBACK Synonym for V_$LOGMNR_CALLBACK
V$LOGMNR_CONTENTS Synonym for V_$LOGMNR_CONTENTS
V$LOGMNR_DICTIONARY Synonym for V_$LOGMNR_DICTIONARY
V$LOGMNR_DICTIONARY_LOAD Synonym for V_$LOGMNR_DICTIONARY_LOAD
V$LOGMNR_LATCH Synonym for V_$LOGMNR_LATCH
V$LOGMNR_LOGFILE Synonym for V_$LOGMNR_LOGFILE
V$LOGMNR_LOGS Synonym for V_$LOGMNR_LOGS
V$LOGMNR_PARAMETERS Synonym for V_$LOGMNR_PARAMETERS
V$LOGMNR_PROCESS Synonym for V_$LOGMNR_PROCESS
V$LOGMNR_REGION Synonym for V_$LOGMNR_REGION
V$LOGMNR_SESSION Synonym for V_$LOGMNR_SESSION
V$LOGMNR_STATS Synonym for V_$LOGMNR_STATS
V$LOGMNR_TRANSACTION Synonym for V_$LOGMNR_TRANSACTION
Bunlardan:
- v$logmnr_dictionary: kullanılan dictionary dosyasını gösterir.
- v$logmnr_parameters: Logminer için geçerli parametreler.
- v$logmnr_logs: kullanılan logları gösterir. Bu loglara göre istediğimiz ayrımları, istediğimiz zaman aralıklarını yapabiliriz.
- v$logmnr_contents: incelenen log dosyalarının içeriklerini gösterir.
Aşağıdaki sorguyla hem gönderilen sorguyu hem de bunun redosunu görebiliriz.
SELECT scn, operation, sql_redo, sql_undo
FROM v$logmnr_contents;
LogMiner'ın kapatılması:
LogMiner'ın kullanımı bittikten sonra kapatılması gerekmektedir.
BEGIN
DBMS_LOGMNR.end_logmnr;
END;
/
Hangi tabloların ne zaman, ne kadar erişildiğini de LogMiner'ın v$logmnr_contents tablosunu sorgulayarak bulabiliriz.
SELECT seg_owner, seg_name, count(*) AS Hits FROM
v$logmnr_contents WHERE seg_name NOT LIKE '%$' GROUP BY
seg_owner, seg_name;
Referans:
http://www.oracle-base.com/articles/8i/logminer.php
http://www.oracle-class.com/?page_id=589
http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm
http://www.oracleflash.com/24/How-to-read-or-analyze-redo-log-files-using-LogMiner.html
http://psoug.org/reference/dbms_logmnr.html
http://www.oracle-base.com/articles/11g/flashback-and-logminer-enhancements-11gr1.php
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76956/archredo.htm#12680
http://turkceoracle.com/2011/05/log_miner-kurulumu-konfigurasyonu-ve-kullanimi.html
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76956/archredo.htm#12680
http://turkceoracle.com/2011/05/log_miner-kurulumu-konfigurasyonu-ve-kullanimi.html
Hiç yorum yok:
Yorum Gönder