LogMiner工具小結(jié)-創(chuàng)新互聯(lián)

(一)LogMiner工具的作用
Logminer工具主要用來分析redo log和archive log文件。通過該工具,可以輕松獲得Oracle redo log和archive log文件的具體內(nèi)容,甚至,可以獲得用戶對數(shù)據(jù)庫進行的DDL、DML操作。另外還可分析得到一些需要回滾的sql語句。該工具特別適合調(diào)試、審計以及回退某個特定的對象。Logminer的作用總結(jié)如下:
1.跟蹤數(shù)據(jù)庫的變化,可以離線跟蹤數(shù)據(jù)的變化,而不會影響在線的性能;
2.回退數(shù)據(jù)庫的變化,回退特定的變化的數(shù)據(jù),減少point-in-time recovery的執(zhí)行 ;
3.確定事物級要執(zhí)行的精細邏輯恢復(fù)操作,通過查詢log,取得需要的undo語句;
4.審計,查看具體用戶對數(shù)據(jù)庫做的具體操作。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),四平企業(yè)網(wǎng)站建設(shè),四平品牌網(wǎng)站建設(shè),網(wǎng)站定制,四平網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,四平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

注意:
1.LogMiner不支持IOT表、Long、LOB及集合類型;

(二)如何使用
(1)安裝LogMiner
通常在安裝數(shù)據(jù)庫后就已經(jīng)安裝了Logminer,要查看數(shù)據(jù)庫是否安裝了LogMiner,只需查看數(shù)據(jù)庫中是否已經(jīng)有了dbms_logmnr和dbms_logmnr_d這2個package,如果有了,則已經(jīng)安裝,如果沒有,執(zhí)行下面兩個腳本即可:

$ORACLE_HOME/rdbms/admin/dbmslm.sql$ORACLE_HOME/rdbms/admin/dbmslmd.sql

需要注意,兩個腳本須用DBA用戶身份運行。第1個腳本用來創(chuàng)建dbms_logmnr包,該包用來分析日志文件,第2個腳本用來創(chuàng)建dbms_logmnr_d包,該包用來創(chuàng)建數(shù)據(jù)字典文件。

創(chuàng)建完成后數(shù)據(jù)庫中將多出4個procedure和3個view,具體如下:
1. dbms_logmnr_d.build :創(chuàng)建一個數(shù)據(jù)字典文件;
2. dbms_logmnr.add_logfile :添加日志文件以供分析;
3. dbms_logmnr.start_logmnr :開始分析日志文件;
4. dbms_logmnr.end_logmnr :結(jié)束分析日志文件;

1.v$logmnr_dictionary :顯示字典文件的信息;
2.logmnr_logs :在LogMiner啟動時顯示要分析的日志列表;
3.logmnr_contents :Logminer啟動后,可以使用該view查看日志文件的內(nèi)容。
需要注意,這里的view是session相關(guān),其它session是查看不到的,僅僅可以在當前session中查看。

(2)如果要分析歸檔數(shù)據(jù),需要數(shù)據(jù)庫需處于歸檔模式下,通過如下命令查看歸檔模式

LogMiner工具小結(jié)

SQL> archive log list;
數(shù)據(jù)庫日志模式            存檔模式
自動存檔             啟用
存檔終點            /home/app/oracle/oradata/orcl/arch_log
最早的聯(lián)機日志序列     46下一個存檔日志序列   49當前日志序列           49

LogMiner工具小結(jié)

(3)創(chuàng)建數(shù)據(jù)字典之前需要修改spfile參數(shù)utl_executefile_dir,由于是靜態(tài)參數(shù)需要重啟數(shù)據(jù)庫

SQL> create directory utlfile as '/home/oracle/logmnr';
 
Directory created

SQL> alter system set utl_executefile_dir = '/home/oracle/logmnr' scope=spfile;

(4)生成數(shù)據(jù)字典文件(可選)
在使用LogMiner工具之前,可以使用dbms_logmnr_d.build創(chuàng)建一個數(shù)據(jù)字典文件,創(chuàng)建該文件的目的是將數(shù)據(jù)字典導出為一個文本文件,該文件是可選的,但是如果沒有該文件,LogMiner解釋出的關(guān)于數(shù)據(jù)字典中的部分,如表名、列名、元數(shù)據(jù)將會以16進制的形式展現(xiàn),我們是無法理解的。
需要注意的是,如果我們要分析的數(shù)據(jù)庫中的表發(fā)生了變化,影響到數(shù)據(jù)字典信息也發(fā)生了變化,那么我們在進行分析時,就需要重新生成數(shù)據(jù)字典文件。
創(chuàng)建數(shù)據(jù)字典文件需要以dba身份進行,創(chuàng)建到上面建好的logmnr文件中

LogMiner工具小結(jié)

begindbms_logmnr_d.build(dictionary_filename=>'dict.ora',
dictionary_location=>'/home/oracle/logmnr',
options=>dbms_logmnr_d.store_in_flat_file);end;/

LogMiner工具小結(jié)

(5)加入需要分析的日志文件
LogMiner可以對重做日志文件(redo log)和歸檔日志文件(archive log)進行分析,加入要分析的日志文件使用dbms_logmnr.add_logfile過程,第一個文件使用參數(shù)dbms_logmnr.NEW參數(shù),后面的文件使用dbms_logmnr.ADDFILE參數(shù)。
step1:創(chuàng)建列表,添加第1個文件:

BEGIN
  dbms_logmnr.add_logfile(logfilename=>'/home/app/oracle/oradata/orcl/arch_log/1_49_936489730.dbf',options=>dbms_logmnr.NEW);END;/

step2:添加其它文件到列表

BEGIN
  dbms_logmnr.add_logfile(logfilename=>'/home/app/oracle/oradata/orcl/arch_log/1_50_936489730.dbf',options=>dbms_logmnr.ADDFILE);
  dbms_logmnr.add_logfile(logfilename=>'/home/app/oracle/oradata/orcl/arch_log/1_51_936489730.dbf',options=>dbms_logmnr.ADDFILE);END;/

(6)使用Logminer文件進行分析

LogMiner分析日志文件可以設(shè)置限制條件,也可不設(shè)置限制條件,不設(shè)置限制條件會對加載的全部日志文件進行分析,設(shè)置了限制條件,只會對符合條件的日志進行分析。

(6.1)不限制條件

EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dict.ora');

(6.2)有限制條件

通過對dbms_logmnr.start_logmnr中幾個不同參數(shù)的設(shè)置,可以縮小要分析的日志文件的范圍,通過設(shè)置起始時間和終止時間參數(shù),我們可以限制只
分析某一個時間段內(nèi)的日志文件。
參數(shù):

參數(shù)                類型              默認值               解釋

--------------  -----------    --------------    ------------------------------------------------
StartScn         number        0                       分析日志文件中scn > StartScn的日志文件
EndScn           number        0                      分析日志文件中scn < EndScn的日志文件
StartTime        date            1998-01-01       分析日志文件中時間戳 > StartTime的日志文件
EndTime          date            2988-01-01       分析日志文件中時間戳 < EndTime的日志文件
DictFileName    varchar()                               數(shù)據(jù)字典文件的位置

(7)觀察分析結(jié)果
通過第(6)步,我們已經(jīng)得到了重做日志文件的內(nèi)容,通過動態(tài)數(shù)據(jù)字典v$logmnr_contents可以查看到所有的信息。

select * from v$logmnr_contents;

v$logmnr_contents的部分欄位信息:

欄位                                         解釋
---------------------------         ------------------------------------

SCN                                         查詢的特定數(shù)據(jù)的SCN號
TIMESTAM                                數(shù)據(jù)改變發(fā)生的時間
COMMIT_TIMESTAMP                 數(shù)據(jù)改變提交的時間
SEG_OWNER                            數(shù)據(jù)發(fā)生改變的段名稱
SEG_NAME                               段的所有者的名稱
SEG_TYPE                                數(shù)據(jù)發(fā)生改變的段類型
SEG_TYPE_NAME                      數(shù)據(jù)發(fā)生改變的段類型名稱
TABLE_SPACE                          變化段的表空間
ROW_ID                                  數(shù)據(jù)變化行的ID
SESSION_INFO                         數(shù)據(jù)發(fā)生變化時會話信息
OPERATION                              日志中記錄的操作
SQL_REDO                              日志中記錄的指定行變化的SQL語句(正向操作)
SQL_UNDO                              為重做日志記錄回退或恢復(fù)制定行變化的SQL語句

(三)一次LogMiner使用測試

(1)查看歸檔,下一個歸檔log是53

LogMiner工具小結(jié)

SQL> archive log listDatabase log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /home/app/oracle/oradata/orcl/arch_log
Oldest online log sequence     50Next log sequence to archive   53Current log sequence           53

LogMiner工具小結(jié)

(2)查看數(shù)據(jù)字典存放位置

SQL> show parameter utl_file_dir

NAME            TYPE        VALUE-------------   --------    -----------------------utl_file_dir    string      /home/oracle/LOGMNR

(3)創(chuàng)建一張測試用的表

LogMiner工具小結(jié)

SQL> create table test06 
  2  (  3  id number,  4  name varchar(15)  5  ); 
Table created
 
SQL> insert into test06 values(1,'lijiaman'); 
1 row inserted
 
SQL> insert into test06 values(2,'wangyujie'); 
1 row inserted

LogMiner工具小結(jié)

(4)將redo歸檔

SQL> alter system switch logfile;
 
System altered

(5)查看歸檔情況

LogMiner工具小結(jié)

SQL> archive log listDatabase log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /home/app/oracle/oradata/orcl/arch_log
Oldest online log sequence     50Next log sequence to archive   53Current log sequence           53SQL> archive log list;Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           /home/app/oracle/oradata/orcl/arch_log
Oldest online log sequence     51Next log sequence to archive   54Current log sequence           54

LogMiner工具小結(jié)

(6)創(chuàng)建數(shù)據(jù)字典文件

LogMiner工具小結(jié)

begindbms_logmnr_d.build(dictionary_filename=>'dictionary.ora',
dictionary_location=>'/home/oracle/LOGMNR',
options=>dbms_logmnr_d.store_in_flat_file);end;/

LogMiner工具小結(jié)

(7)添加要分析的歸檔日志文件
(7.1)先到OS上找到歸檔文件:

[oracle@localhost LOGMNR]$ cd /home/app/oracle/oradata/orcl/arch_log
[oracle@localhost arch_log]$ ls1_49_936489730.dbf  1_50_936489730.dbf  1_51_936489730.dbf  1_52_936489730.dbf  1_53_936489730.dbf

(7.2)創(chuàng)建歸檔日志文件列表

LogMiner工具小結(jié)

SQL> begin
  2  dbms_logmnr.add_logfile(LogFileName => '/home/app/oracle/oradata/orcl/arch_log/1_53_936489730.dbf',Options => dbms_logmnr.new);  3  end;  4  /
 PL/SQL procedure successfully completed

LogMiner工具小結(jié)

(7.3)如果不確定待分析的數(shù)據(jù)是否在上面添加的歸檔日志文件中,可以多添加幾個

LogMiner工具小結(jié)

BEGIN
  dbms_logmnr.add_logfile(logfilename=>'/home/app/oracle/oradata/orcl/arch_log/1_51_936489730.dbf',options=>dbms_logmnr.ADDFILE);
  dbms_logmnr.add_logfile(logfilename=>'/home/app/oracle/oradata/orcl/arch_log/1_52_936489730.dbf',options=>dbms_logmnr.ADDFILE);END;/PL/SQL procedure successfully completed

LogMiner工具小結(jié)

(8)開始分析

SQL> EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/LOGMNR/dictionary.ora');
 
PL/SQL procedure successfully completed

(9)查看結(jié)果

LogMiner工具小結(jié)

SQL> select c.timestamp,c.operation,c.table_space,c.sql_redo,c.sql_undo  from v$logmnr_contents c where c.seg_owner='LIJIAMAN';                                                                         
                                                                                                                                                                                                        
TIMESTAMP   OPERATION   TABLE_SPACE   SQL_REDO                                                                         SQL_UNDO                                                                         
----------- ----------- ------------- ----------------------------------------------------------------------   --------------------------------------------------------------------------------         2017/4/25 2 DDL                                                                                                                                                                                         
                                      create table test06                                                                                                                                               
                                      (                                                                                                                                                                 
                                      id number,                                                                                                                                                        
                                      name varchar(15)                                                                                                                                                  
                                      )                                                                                                                                                                 
                                      ;                                                                                                                                                                 
                                                                                                                                                                                                        
2017/4/25 2 INSERT      USERS         insert into "LIJIAMAN"."TEST06"("ID","NAME") values ('1','lijiaman');     delete from "LIJIAMAN"."TEST06" where "ID" = '1' and "NAME" = 'lijiaman' and ROW        
2017/4/25 2 INSERT      USERS         insert into "LIJIAMAN"."TEST06"("ID","NAME") values ('2','wangyujie');    delete from "LIJIAMAN"."TEST06" where "ID" = '2' and "NAME" = 'wangyujie' and RO

LogMiner工具小結(jié)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:LogMiner工具小結(jié)-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article10/dchcdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站電子商務(wù)、企業(yè)網(wǎng)站制作網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站