使用oracle的logminer同步數據

以前用github寫博客但發現很受環境的約束,每次系統出問題都要從新搭一遍環境,如今轉向這種在線的博客,感受博客就是一個記錄工具而已,仍是找個方便的來吧。
至於爲何使用logminer緣由是,內外網之間存在隔離,爲此採用這種方式。git

使用的前提,開啓oracle的歸檔模式。這不是本文重點所以自行百度一下吧。github

我的理解logminer就是一個oracle的日誌分析工具,經過這個工具你能夠吧數據庫的全部的修改操做取出,作進一步的如數據回滾,數據同步等處理。sql

  • 第一步:爲了分析日誌第一步要作的是,建立數據字典,爲的是把日誌中的字段翻譯成咱們可讀的字段。
execute dbms_logmnr_d.build(dictionary_filename=>'log.ora',dictionary_location=>'/u01/dblog',options=>dbms_logmnr_d.store_in_flat_file);
  • 第二步: 將要分析的日誌文件夾入到logminer中

1.取出分析日誌目錄
這裏咱們根據scn來取日誌數據庫

select name from v$archived_log where NEXT_CHANGE# > 1739657397 and NEXT_CHANGE# <= 1740101347

2.將日誌加入到咱們的logmineroracle

加入的第一個使用new ,第二個使用addfile
exec dbms_logmnr.add_logfile('/u01/bk/1_1086_958894249.dbf',dbms_logmnr.new);
exec dbms_logmnr.add_logfile('/u01/bk/1_1048_958894249.dbf',dbms_logmnr.ADDFILE);
  • 第三步:開始分析
committed_data_only 只顯示已提交的
no_sql_delimiter 去除最後的分號
no_rowid_in_stmt 去除rowid
exec dbms_logmnr.start_logmnr(dictfilename=>'/u01/dblog/log.ora', Options => dbms_logmnr.committed_data_only + dbms_logmnr.no_sql_delimiter + dbms_logmnr.no_rowid_in_stmt);
  • 第四步:查找分析結果

分析結果都存在v$logmnr_contents表中,根據本身的實際需求查出所要的結果。工具

注意logminer日誌分析和v$logmnr_contents的結果查找要在一次數據庫鏈接中,由於v$logmnr_contents中的數據之存在當前會話。
  • 第五步:關閉分析
exec dbms_logmnr.end_logmnr();
相關文章
相關標籤/搜索