中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[生產庫實戰] 如何合理的使用logmnr進行日志挖掘,并對生產庫影響最小化

發布時間:2020-06-23 12:02:07 來源:網絡 閱讀:496 作者:s_o_m 欄目:關系型數據庫

Oracle Logmnr這個工具怎么用這里就不詳細說,可以查看官方文檔,網上的文檔也一大堆,自己找吧。我這里就直接上干貨了。


--創建Oracle目錄

select * from dba_directories;

create directory archivelog_dir as '/archivelog1/temp_archivelog/';

--grant read, write on directory archivelog_dir to zhanghui;


--歸檔日志路徑信息表(tmp_archive_log),主要是保存要挖掘日志的路徑

--注:要為該表加狀態標志位,0為未挖掘,1為已挖掘

create table tmp_archive_log as 

select name, 0 flag from v$archived_log 

where first_time>=to_date('2012-12-25 13:55:00','yyyy-mm-dd hh34:mi:ss')

  and first_time<to_date('2012-12-25 15:05:00','yyyy-mm-dd hh34:mi:ss');


--為挖掘日志出的內容創建表,并根據具體需要選擇要提取的字段

create table zhanghui.logmnr_contents

as

select timestamp,log_id,seg_owner,seg_name,table_name,username,operation,sql_redo,sql_undo from v$logmnr_contents where 1=2;


--批量處理挖掘日志,只分析幾個歸檔日志手動處理還好,如果要分析上百個,還手動搞,那就傻了,所以做事的講究方法,2分鐘1.5G的歸檔,分析兩個小時的,怎么玩?

--注:由于挖掘出的日志內容保存在內存中,操作會話退出就丟失了,故這里采用單個日志挖掘,然后將數據保存到一張表中,完成后commit。以免對DB的memory造成沖擊,影響性能,生產庫操作一定要保證不影響業務的情況下進行各類操作。

$ sqlplus / as sysdba

create procedure proc_logmnr_batch
IS
  vCur                      sys_refcursor;
  v_sql_dirarclog           varchar2(2000);
  v_sql_arclog              varchar2(2000);
begin
  open vCur for select name from zhanghui.tmp_archive_log where flag=0;
  loop
    fetch vCur
      into v_sql_dirarclog;
    exit when vCur%notfound;
  v_sql_arclog:='begin sys.dbms_logmnr.add_logfile (logfilename=>'''||v_sql_dirarclog||''',options=>sys.dbms_logmnr.NEW); end;';
  execute immediate v_sql_arclog;
  begin sys.dbms_logmnr.start_logmnr(options =>dbms_logmnr.dict_from_online_catalog); end;
    insert into /*+ append */ zhanghui.logmnr_contents 
    select timestamp,log_id,seg_owner,seg_name,table_name,username,operation,sql_redo,sql_undo from 
    v$logmnr_contents
    --where table_name='<TABLE_NAME>' and OPERATION='DELETE';
  begin sys.dbms_logmnr.end_logmnr; end;
  UPDATE zhanghui.tmp_archive_log set flag = 1 where name= v_sql_dirarclog;
  commit;
  end loop;
    --跑完了發條短信,調用短信接口
    close vCur;
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
    --報錯了發條短信,調用短信接口
    --dbms_output.put_line(sqlerrm); 
END proc_logmnr_batch;

 

--采用操作系統調用存儲過程腳本

$cat proc_logmnr_batch.sh

#!/bin/bash
sqlplus / as sysdba <<EOF
set newpage 0
set linesize 1000             
set pagesize 0
spool proc_logmnr_batch.txt;
exec proc_logmnr_batch;
spool off
quit;
EOF


--賦予執行權限

$chmod +x proc_logmnr_batch.sh

--后臺調用執行

$nohup ./proc_logmnr_batch.sh &


好了,等收到處理完成的短信,登錄數據庫查看即可。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

那曲县| 浦北县| 冀州市| 民县| 柞水县| 应用必备| 阿勒泰市| 恭城| 砚山县| 阆中市| 黄冈市| 山西省| 内江市| 光泽县| 阜城县| 高安市| 志丹县| 恩施市| 华池县| 荣成市| 罗甸县| 绥中县| 巴东县| 平罗县| 三河市| 池州市| 成武县| 平利县| 茂名市| 深圳市| 长宁县| 开平市| 博白县| 石首市| 闽侯县| 定南县| 灵璧县| 静乐县| 云龙县| 金阳县| 肇源县|