使用LOGMNR檢視資料庫日誌
如果被人不小心刪除了資料庫的表物件裡面的資料,而我們又不知道準確的操作時間,這時,就可以使用oracle的LOGMNR工具,分析查詢資料庫的歸檔日誌,從而查詢該誤操作的內容和時間,有些直接呼叫LOG_UNDO就可以恢復。
1、使用ORACLE使用者登入,進入$ORACLE_HOME/dbs,找到裡面的initSID.ora這個檔案,這是資料庫啟動的引數文 件,使用VI工具,手動在裡面新增一個引數utl_file_dir='/u01/arch',utl_file_dir在資料庫裡預設為空,大家可以使 用SHOW PARAMETER UTL來檢視系統裡是否已經設定過該引數。
或者在啟動的SERVER裡面使用ALTER來修改該引數。
alter system set utl_file_dir='/u01/arch' scope=spfile;
2、重啟服務,讓我們剛剛的修改生效。
3、接著,我們來生成用於分析的資料字典
在SQLPLUS裡呼叫資料庫的工具包DBMS_LOGMNR_D.BUILD
BEGIN
dbms_logmnr_d.build(
dictionary_name => 'logmnr_dict.dat',
dictionary_location=>'/u01/arch'
);
END;
/
操作完成後,會再/u01/arch裡面出現一個名為logmnr_dict.dat的檔案。
上面的dictionary_location的地址可以隨便設,不過一定要和utl_file_dir的值一樣,否則出錯。
4、下面我們要做的重啟服務,然後裝入我們要分析的日誌檔案。
shutdown immediate
startup mount
下面的操作需要在mount狀態下操作
BEGIN
dbms_logmnr.add_logfile(
options=>dbms_logmnr.new,
logfilename=>'/u01/arch/o1_mf_1_37_57scllcl_.arc'
);
END;
/
options是用來指定檔案操作:new為新增新的用於分析的日誌檔案;removefile用來移除不需要分析的日誌。
logfilename為需要新增進入分析的日誌的檔案路徑,我這個是把歸檔的日誌檔案從flash_recovery_area裡面複製過來的。
5、再接著我們就要啟動分析了
因為使用LOGMNR分析需要些檔案,而剛剛我們的SERVER是在MOUNT狀態下的,無法寫檔案,因此我們需要做的是:
alter database open
將資料庫的狀態修改為OPEN
BEGIN
dbms_logmnr.start_logmnr(
dictfilename => '/u01/arch/logminer_dict.dat',
starttime => to_date('20090808 22:00:00','yyyymmdd hh24:mi:ss'),
endtime => to_date('20090808 23:40:00','yyyymmdd hh24:mi:ss')
);
END;
/
dictfilename為我們剛剛建立的資料字典檔案。
starttime,endtime為分析的時間範圍。
如果大家使用PL/SQL DEVELOPER上面的這些過程的呼叫就不用像我這樣還要手動寫了。
6、查詢日誌內容
進過上面的辛苦的工作,下面就是我們收穫的時候了,先介紹幾個資料字典檢視。
v$logmnr_dictionary 顯示用來決定物件ID名稱的字典檔案的資訊
v$logmnr_logs 在LogMiner啟動時顯示被分析的日誌列表
v$logmnr_contents LogMiner啟動後,可以使用這個檢視在sql提示符下輸入sql語句來查詢重做日誌的內容。
select scn ,seq_name,timestamp,seq_owner,operation from v$logmnr_contents where sql_name='your object'
我們可以看到幾條關於OBJECT的記錄,operation顯示的該操作的型別(DDL,DELETE,INSERT,UPDATE),沒有SELECT,因為SELECT是不寫REDO LOG的(美中不足!!)。
我們如果想看看操作的具體內容可以接著查詢:
select scn,sql_redo,sql_undo from v$logmnr_contents where scn='192838718'
就可以顯示你要檢視的操作的內容,以及它對應的UNDO操作,可以呼叫SQL_UNDO在ROLLBACK。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9950964/viewspace-1606506/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 使用logmnr檢視日誌Oracle
- SQL Server 檢視資料庫日誌SQLServer資料庫
- [Logmnr]對重做日誌進行資料探勘
- 達夢資料庫使用DBMS_LOGMNR進行日誌挖掘詳細步驟資料庫
- logmnr 日誌挖掘
- oralce資料庫日誌檢視方法(整理轉載自網路)資料庫
- [Logmnr]對歸檔日誌進行資料探勘
- 檢視日誌
- ORACLE LOGMNR 日誌挖掘Oracle
- 資料庫檢視的使用資料庫
- Oracle11g使用LOGMNR挖掘日誌Oracle
- 日誌分析logmnr (Logminer) 使用方法
- 使用logmnr分析歸檔日誌恢復被drop掉的資料表
- alertmanager: 檢視日誌
- logmnr分析線上重做日誌
- MYSQL啟用日誌和檢視日誌MySql
- 用sql語句dbcc log 檢視SQL Server 資料庫的事務日誌SQLServer資料庫
- Linux 檢視日誌Linux
- Hyperf日誌檢視元件元件
- 錯誤日誌檢視
- oracle 日誌檢視方法Oracle
- sql 日誌檢視工具SQL
- 如何使用Journalctl檢視並操作Systemd日誌
- 資料庫檢視資料庫
- 資料庫-檢視資料庫
- logmnr分析歸檔重做日誌
- 用exp、imp遷移包含物化檢視日誌的資料
- 如何使用MySQL資料庫來分析Apache日誌?MySql資料庫Apache
- 【物化檢視】幾種物化檢視日誌分析
- toad使用(檢視alert日誌、Database Report)Database
- 使用外部表檢視ORACLE報警日誌薦Oracle
- docker檢視容器日誌命令Docker
- 檢視docker映象的日誌Docker
- Logminer如何檢視日誌
- 檢視系統的日誌
- 檢視mysql日誌及日誌編碼問題MySql
- 使用歸檔日誌分析解決歸檔日誌迅速增長問題(logmnr)
- logmnr挖掘歸檔日誌檔案