使用DBMS LOGMNR分析歸檔日誌應用一例

2021-07-25 16:06:42 字數 2298 閱讀 5170

有個專案提出的需求是這樣的:部署兩個相同的資料庫應用a、b,兩個庫之間沒有網路連線,要定期把a庫里的資料複製到b庫。

要求:應用程式不做修改

實現增量資料更新(不能重複匯入)

我提出了使用dbms_logmnr分析歸檔日誌並redo變化的方案:

a庫上線前資料庫需要啟用歸檔日誌

每次同步資料時對a庫先執行一次日誌切換,然後拷貝歸檔日誌檔案,拷貝後刪除(最新生成的歸檔日誌檔案不要拷貝和刪除)

在b庫上使用dbms_logmnr分析歸檔日誌檔案並redo變化

因為網不通,手工拷貝檔案的工作不可避免,所以可以認為第1、2步為手工操作。第1步為上線前的資料庫準備,是一次性工作;第2、3步為週期性工作。

對於第3步,做了個簡單的實現:

在b庫機器上上規劃好目錄,這裡d:\logmine為主目錄,d:\logmine\redo_log存放從a庫拷貝來的歸檔日誌檔案。

在b庫上執行一次初始化物件指令碼:

[sql]view plain

copy

create

orreplace

directory logfilename_dir 

as'd:\logmine\'

;  grant

read

, write 

ondirectory logfilename_dir 

towxy;  

conn user1/password1  

begin

excute immediate 'create table logname_ext (logfile_name varchar2(300)) organization external (type oracle_loader default directory data_dir logfilename_dir location ('

'log_file_name.txt'

'))'

;  exception when

others 

then

if sqlcode = -955 then

-- 名稱已由現有物件使用

null

;  else

raise;  

endif;   

end;  

/  要做的工作:

拷貝a庫歸檔日誌檔案到d:\logmine\redo_log

執行d:\logmine\create_ext_table.bat

刪除1步拷貝的歸檔日誌檔案

create_ext_table.bat

[plain]view plain

copy

echo off  

dir /a-d /b /s d:\logmine\redo_log\*.log > d:\logmine\log_file_name.txt  

sqlplus user1/password1 @d:\logmine\create_ext_table.sql  

create_ext_table.sql

[sql]view plain

copy

begin

forx in(

select

logfile_name 

from

logname_ext) loop  

dbms_logmnr.add_logfile(x.logfile_name);  

endloop;  

end;  

/  execute

dbms_logmnr.start_logmnr(options => dbms_logmnr.committed_data_only);  

begin

forx in(

select

sql_redo   

from

v$logmnr_contents   

where

table_space != 

'system'

andinstr(sql_redo,

'"wxy".'

) > 0  

order

bycommit_scn)  

loop  

execute

immediate x.sql_redo;  

endloop;  

end;  

/  exit;  

這只是個實驗,沒有經過嚴格的測試,考慮到異常捕獲和處理、資料量、系統負載、效能優化等等因素,能否應用於生產環境有待驗證。

使用dbms logmnr檢視日誌檔案

大多為了尋找被意外修改的資料或者那條sql修改了哪些資料 查詢v log和v logfile獲取相關資訊 執行exec dbms logmnr.add logfile log filename dbms logmnr.new exec dbms logmnr.start logmnr options...

資料分析四 回歸分析

回歸分析 統計學用來研究不確定性的基本手段 如何研究不確定性 分析業務 找出因變數y 找出x x y 表示不確定性 統計學 不準確 統計學就是研究不確定性 回歸分析是統計學中研究資料的基本手段。資料分析的第一步是回歸分析 回歸分析的第一步是分析業務,第二步是確定因變數y。回歸分析 把抽象的業務問題具...

JSON XML String轉換使用方法歸納總結

1 將字串轉換為json物件 string xml arr routepushservice lang zh cn id 10049361064088 mailno 444016153799 orderid 1559201775741808 accepttime 2019 10 18 18 30 0...