達夢資料庫使用DBMS_LOGMNR進行日誌挖掘詳細步驟
達夢資料庫提供DBMS_LOGMNR系統包用於對歸檔日誌進行挖掘,從而獲取某一時間段內的DDL和DML等操作,用於進一步進行錯誤資料修正以及複雜問題深入分析。需要注意的是,DBMS_LOGMNR只支援歸檔日誌進行分析,而且需要將RLOG_APPEND_LOGIC選項置為1或2。達夢MPP環境下不支援使用DBMS_LOGMNR包。
達夢資料庫使用DBMS_LOGMNR系統包進行日誌挖掘,需要以下幾個步驟:
1、建立DBMS_LOGMNR系統包,如果已建立,則省略該步驟。
達夢資料庫建立DBMS_LOGMNR包通過SP_CREATE_SYSTEM_PACKAGES建立,如下所示:
SQL> SP_CREATE_SYSTEM_PACKAGES(1,'DBMS_LOGMNR');
2、確保資料庫處於歸檔日誌模式下,通過以下方法檢查資料庫是否處於歸檔日誌模式。
SQL> select para_name,para_value from v$dm_ini where para_name like 'ARCH_INI'; 行號 PARA_NAME PARA_VALUE ---------- --------- ---------- 1 ARCH_INI 1 已用時間: 5.985(毫秒). 執行號:23. SQL>
結果返回1說明處於歸檔模式下,返回0說明處於非歸檔模式下。
再次強調,DBMS_LOGMNR只支援對歸檔日誌進行分析,如果資料庫處於非歸檔日誌模式下,是沒有支援的檔案進行日誌分析的,即使是redo日誌,如下嘗試對redo日誌進行分析。
SQL> select file_id,path from v$rlogfile; 行號 FILE_ID PATH ---------- ----------- ---------------------------------- 1 0 C:\dmdbms\data\DAMENG\DAMENG01.log 2 1 C:\dmdbms\data\DAMENG\DAMENG02.log 已用時間: 2.731(毫秒). 執行號:24. SQL> dbms_logmnr.add_logfile('C:\dmdbms\data\DAMENG\DAMENG01.log'); dbms_logmnr.add_logfile('C:\dmdbms\data\DAMENG\DAMENG01.log'); [-4546]:[DBMS_LOGMNR.ADD_LOGFILE] 開啟檔案失敗. 已用時間: 33.677(毫秒). 執行號:0. SQL> SQL> dbms_logmnr.add_logfile('C:\dmdbms\data\DAMENG\DAMENG02.log'); dbms_logmnr.add_logfile('C:\dmdbms\data\DAMENG\DAMENG02.log'); [-4546]:[DBMS_LOGMNR.ADD_LOGFILE] 開啟檔案失敗. 已用時間: 4.767(毫秒). 執行號:0.
可以明確的看到,redo日誌是無法開啟的,所以也就不能進一步進行日誌分析了。
同時需要確認RLOG_APPEND_LOGIC選項置為1或2,如下所示。
SQL> select para_name,para_value from v$dm_ini where para_name like 'RLOG_APPEND _LOGIC'; 行號 PARA_NAME PARA_VALUE ---------- ----------------- ---------- 1 RLOG_APPEND_LOGIC 1 已用時間: 3.672(毫秒). 執行號:25. SQL>
3、新增需要分析的歸檔日誌檔案
首先,通過以下語句查詢需要進行分析的歸檔日誌資訊。
SQL> select name,first_time,next_time,first_change#,next_change# from v$archived_log where first_time > to_date('2021-03-24 19:39:00','YYYY-MM-DD HH24:MI:SS') and next_time < to_date('2021-03-24 20:00:00','YYYY-MM-DD HH24:MI:SS'); 行號 NAME ---------- ------------------------------------------------------------------- FIRST_TIME --------------------------------------------------------------------- ------------------------------- NEXT_TIME --------------------------------------------------------------------- ------------------------------- FIRST_CHANGE# NEXT_CHANGE# -------------------- -------------------- 1 C:\dmdbms\data\arch\ARCHIVE_LOCAL1_0x7AEC8F22[0]_2021-03-24_17-39-51.log 2021-03-24 19:39:51.000000 2021-03-24 20:55:35.898000 216595 217851 已用時間: 7.318(毫秒). 執行號:26. SQL>
其次,根據實際需要,新增即將進行分析的歸檔日誌檔案。
SQL> dbms_logmnr.add_logfile('C:\dmdbms\data\arch\ARCHIVE_LOCAL1_0x7AEC8F22[0]_2021-03-24_17-39-51.log'); DMSQL 過程已成功完成 已用時間: 17.129(毫秒). 執行號:27. SQL>
如果將不想進行分析的歸檔日誌新增,可以通過remove_logfile方法將其移除,如下所示。
SQL> dbms_logmnr.remove_logfile('C:\dmdbms\data\arch\ARCHIVE_LOCAL1_0x7AEC8F22[0 ]_2021-03-24_17-39-51.log'); DMSQL 過程已成功完成 已用時間: 0.934(毫秒). 執行號:28. SQL>
4、開始進行歸檔日誌分析
分析歸檔日誌時,取分析日誌的區間可以使用scn號,也可以使用時間進行區間分析。
SQL> dbms_logmnr.start_logmnr(options=>2128 , startscn=>216595 , endscn=>217851); DMSQL 過程已成功完成 已用時間: 5.203(毫秒). 執行號:30. SQL>
通過時間區間開始分析可以使用以下方式。
SQL> dbms_logmnr.start_logmnr(options=>2128 , starttime=>to_date('2021-03-24 19:39:00','YYYY-MM-DD HH24:MI:SS') , endtime=>('2021-03-24 20:00:00','YYYY_MM_DD HH24:MI:SS'));
此處需要注意options引數的值,options引數有4個選項,分別為:COMMITTED_DATA_ONLY、DICT_FROM_ONLINE_CATALOG、NO_SQL_DELIMITER、NO_ROWID_IN_STMT,其對應的值分別為:2、16、64、2048,作用分別為:僅從已交的事務的日誌中挖掘資訊、使用線上字典、拼寫的SQL語句最後不新增分隔符、拼寫的SQL語句中不包含ROWID。Options取值為各個選項值的組合求和,如果options指定的值不是以上4個選項值的和,會導致指定的options引數無效,而執行start_logmnr時並不會報錯。
5、檢視分析結果
檢視日誌分析結果,可以通過動態檢視V$LOGMNR_CONTENTS進行查詢,如下所示。
SQL> select operation,operation_code,scn,sql_redo,sql_undo,timestamp,seg_owner,table_name from v$logmnr_contents where seg_owner = 'SYSDBA' and operation_code in (1,2,3);
執行結果省略……
需要注意的是:sql_undo功能達夢資料庫目前暫時不支援,只能查到sql_redo的內容,所以通過V$LOGMNR_CONTENTS查詢的sql_undo列全部為空值。
說明:關於V$LOGMNR_CONTENTS中,操作型別 OPERATION 和 OPERATION_CODE的對應關係分別為: INTERNAL 0、INSERT 1、DELETE 2、UPDATE 3、BATCH_UPDATE 4、DDL 5、START 6、COMMIT 7、SEL_LOB_LOCATOR 9、LOB_WRITE 10、LOB_TRIM 11、SELECT_FOR_UPDATE 25、LOB_ERASE 28、MISSING_SCN 34、ROLLBACK 36、UNSUPPORTED 255、SEQ MODIFY 37
6、結束歸檔日誌分析
SQL> dbms_logmnr.end_logmnr(); DMSQL 過程已成功完成 已用時間: 0.811(毫秒). 執行號:33. SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31403259/viewspace-2764932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用LOG Miner挖掘日誌基本步驟
- 達夢資料庫SQL跟蹤日誌詳細介紹及配置方法資料庫SQL
- 使用LOG Miner挖掘日誌基本步驟---02
- logminer日誌挖掘操作步驟
- ORACLE資料庫升級詳細步驟Oracle資料庫
- Centos MySQL資料庫遷移詳細步驟CentOSMySql資料庫
- rman複製資料庫詳細的步驟資料庫
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- 達夢8資料庫REDO日誌日常管理方法資料庫
- 使用create database語句建立資料庫的詳細操作步驟Database資料庫
- 瀚高資料庫日誌挖掘方法資料庫
- 達夢資料庫索引管理方法詳細介紹資料庫索引
- 使用Oracle的logminer工具進行日誌挖掘Oracle
- 達夢資料庫:誤刪除 undo/redo 日誌怎麼辦資料庫
- 在oracle中Logmnr進行日誌挖掘Oracle
- 達夢資料庫DM8在LINUX環境下安裝步驟資料庫Linux
- 怎麼進行Oracle使用者管理的熱備份,詳細步驟Oracle
- 達夢資料庫統計資訊詳解資料庫
- 達夢資料庫索引結構詳解資料庫索引
- 達夢資料庫DM8之REDOLOG重做日誌檔案管理資料庫
- 達夢資料庫DM8之刪除歸檔日誌檔案資料庫
- 【ASK_ORACLE】Relink ASM單例項資料庫詳細步驟OracleASM單例資料庫
- MySQL資料庫複製操作的詳細實現步驟介紹MySql資料庫
- oracle 11g logminer 進行日誌挖掘Oracle
- Springboot如何連線達夢資料庫,超詳細,附原始碼Spring Boot資料庫原始碼
- ORACLE資料庫閃回步驟詳解Oracle資料庫
- 用B庫挖掘A庫的日誌
- 達夢資料庫[-718]收集到的歸檔日誌不連續資料庫
- oracle 10g資料庫表空間遷移之詳細步驟Oracle 10g資料庫
- oracle 10g資料庫之表空間遷移詳細步驟Oracle 10g資料庫
- 鐳速如何適配國產資料庫(達夢)進行高效資料管理與共享資料庫
- 日誌挖掘
- 達夢資料庫開發資料庫
- 初識達夢資料庫資料庫
- 達夢資料庫學習資料庫
- 達夢資料庫安裝資料庫
- 詳細講解DB2資料庫效能監控的具體步驟DB2資料庫
- oracle資料庫使用者建立步驟Oracle資料庫