賽迪網 > IT技術 數據庫 > 精彩更新
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

講解Oracle數據庫LogMiner工具的使用方法

發佈時間:2008.07.16 09:18     來源:賽迪網    作者:Alizze

【賽迪網-IT技術報道】Logminer(DBMS_LOGMNR和DBMS_LOGMNR_D)package,可以用來分析Oracle的重做日誌文件。Logminer是oracle從8i開始提供的工具。

我們可以使用logminer分析其他instance(版本可不一致)的重做日誌文件,但是必須遵循以下要求:

1.LogMiner日誌分析工具僅能夠分析Oracle 8以後的產品

2.LogMiner必須使用被分析數據庫實例產生的字典文件,且安裝LogMiner數據庫的字符集必須和被分析數據庫的字符集相同

3.被分析數據庫平臺必須和當前LogMiner所在數據庫平臺一樣,且block size相同。

使用logminer

1.安裝logminer:

要安裝LogMiner工具,必須首先要運行下面這樣兩個腳本,

$ORACLE_HOME/rdbms/admin/dbmslm.sql

$ORACLE_HOME/rdbms/admin/dbmslmd.sql.

這兩個腳本必須均以SYS用戶身份運行。

2.創建數據字典文件

首先在init.ora初始化參數文件中,添加參數UTL_FILE_DIR,該參數值為伺服器中放置數據字典文件的目錄。如:

UTL_FILE_DIR = (D:\Oracle\logs)

重新啟動數據庫,使新加的參數生效,然後創建數據字典文件:

SQL> EXECUTE dbms_logmnr_d.build(

dictionary_filename => ' logmn_ora817.dat',

dictionary_location => ' D:\Oracle\logs ');

創建數據字典是讓LogMiner引用涉及到內部數據字典中的部分時使用對象的名稱,而不是系統內部的16進制的ID。如果我們要分析的數據庫中的表有變化,影響到庫的數據字典也發生變化,就需要重新創建該字典。

3.添加要分析的日誌文件

Logminer可以用來分析線上的重做日誌文件和歸檔日誌文件,但是我們一般建議使用歸檔的日誌文件。

a.添加新的日誌文件:

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.001 ', Options=>dbms_logmnr.new);

b.添加另外的日誌文件到列表

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr.addfile);

c. 移去一個日誌文件

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' D:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr. REMOVEFILE);

創建了要分析的日誌文件,就可以對其進行分析。

4. 進行日誌分析

SQL> EXECUTE dbms_logmnr.start_logmnr(

DictFileName=>' D:\Oracle\logs\ logmn_ora817.dat ');

可以使用相應的限制條件:

時間範圍:對dbms_logmnr.start_logmnr使用StartTime和EndTime參數

SCN範圍:對dbms_logmnr.start_logmnr使用StartScn和EndScn參數

5.觀察結果:

主要是查詢v$logmnr_contents:

SQL> desc v$logmnr_contents;

名稱 空? 類型

----------------------------------------- -------- ----------------------

SCN NUMBER

TIMESTAMP DATE

THREAD# NUMBER

LOG_ID NUMBER

XIDUSN NUMBER

XIDSLT NUMBER

XIDSQN NUMBER

RBASQN NUMBER

RBABLK NUMBER

RBABYTE NUMBER

UBAFIL NUMBER

UBABLK NUMBER

UBAREC NUMBER

UBASQN NUMBER

ABS_FILE# NUMBER

REL_FILE# NUMBER

DATA_BLK# NUMBER

DATA_OBJ# NUMBER

DATA_OBJD# NUMBER

SEG_OWNER VARCHAR2(32)

SEG_NAME VARCHAR2(32)

SEG_TYPE NUMBER

SEG_TYPE_NAME VARCHAR2(32)

TABLE_SPACE VARCHAR2(32)

ROW_ID VARCHAR2(19)

SESSION# NUMBER

SERIAL# NUMBER

USERNAME VARCHAR2(32)

SESSION_INFO VARCHAR2(4000)

ROLLBACK NUMBER

OPERATION VARCHAR2(32)

SQL_REDO VARCHAR2(4000)

SQL_UNDO VARCHAR2(4000)

RS_ID VARCHAR2(32)

SSN NUMBER

CSF NUMBER

INFO VARCHAR2(32)

STATUS NUMBER

PH1_NAME VARCHAR2(32)

PH1_REDO VARCHAR2(2000)

PH1_UNDO VARCHAR2(2000)

PH2_NAME VARCHAR2(32)

PH2_REDO VARCHAR2(2000)

PH2_UNDO VARCHAR2(2000)

PH3_NAME VARCHAR2(32)

PH3_REDO VARCHAR2(2000)

PH3_UNDO VARCHAR2(2000)

PH4_NAME VARCHAR2(32)

PH4_REDO VARCHAR2(2000)

PH4_UNDO VARCHAR2(2000)

PH5_NAME VARCHAR2(32)

PH5_REDO VARCHAR2(2000)

PH5_UNDO VARCHAR2(2000)

通過字段sql_redo可以得到該日誌文件中進行過的sql操作,通過sql_undo可以得到撤銷的sql語句。

還可以用這樣的sql對日誌文件中的所有的操作分類統計:

select operation,count(*)from v$logmnr_contents group by operation;

視圖v$logmnr_contents中的分析結果僅在我們運行過程'dbms_logmrn.start_logmnr'這個會話的生命期中存在。這是因為所有的LogMiner存儲都在PGA記憶體中,所有其他的會話是看不到它的,同時隨著會話的結束而清除分析結果。

最後,使用過程DBMS_LOGMNR.END_LOGMNR終止日誌分析事務,PGA記憶體區域將被清除。

(責任編輯:盧兆林)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· Oracle新手經常碰到的六個錯誤及解決方案 (07-15) · 講解Oracle數據庫ORA-00257故障的解決過程 (07-14)
· 講解Oracle數據庫ORA-00257故障的解決過程 (07-14) · 詳細講解Oracle數據庫運行錯誤的解決方法 (07-10)
· Oracle數據庫高性能秘密之數據高速緩存 (07-08) · Oracle數據庫維護常用SQL語句集合(3) (07-02)
· Oracle數據庫維護常用SQL語句集合(2) (07-01) · Cach岢與Oracle在數據倉庫應用中的比較 (06-25)
· Oracle初級用戶必須了解的ORA-01034錯誤 (06-24) · DBA:巧用ora2html收集Oracle數據庫資訊 (06-24)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 移動資訊化市場方興未艾 企業呼喚標準出臺
· 如何把握企業價值差異 避免CRM與SCM脫節
· 齊看四大廠商的SaaS動態 ERP案例分析
· 通方期貨CRM解決方案 方正電子公文系統
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統