1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      如何解決OGG同步復(fù)制時(shí)與兼容觸發(fā)器的問(wèn)題

      這篇文章主要介紹了如何解決OGG同步復(fù)制時(shí)與兼容觸發(fā)器的問(wèn)題,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

      創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比都江堰網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式都江堰網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋都江堰地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。

           搭建OGG時(shí),一般都會(huì)disable trigger。有時(shí)候,由于特定原因,除了同步數(shù)據(jù),還需要在目標(biāo)庫(kù)上進(jìn)行業(yè)務(wù)操作,而觸發(fā)器又實(shí)現(xiàn)了很多業(yè)務(wù)邏輯,這時(shí)候,就不能采用
      alter trigger tr_dept disable的方式直接屏蔽了。但是,enable的話又可能會(huì)造成數(shù)據(jù)的問(wèn)題,比如,觸發(fā)器中操作某個(gè)表,但是其實(shí)那個(gè)表已經(jīng)通過(guò)OGG進(jìn)行了同步,這樣,就會(huì)造成重復(fù)操作數(shù)據(jù),
      進(jìn)而導(dǎo)致數(shù)據(jù)與主庫(kù)不一致。
          我們的實(shí)施要求,OGG同步一些業(yè)務(wù)數(shù)據(jù)到目標(biāo)庫(kù),同時(shí)目標(biāo)庫(kù)上觸發(fā)器不能停(我們ERP系統(tǒng)很多業(yè)務(wù)邏輯是在觸發(fā)器中實(shí)現(xiàn)的),因客戶要在目標(biāo)庫(kù)上進(jìn)行某些業(yè)務(wù)。
          可能的解決方案(這里以scott這個(gè)schema為例, OGG的搭建過(guò)程省略):
         
      1. 觸發(fā)器代碼:

      點(diǎn)擊(此處)折疊或打開(kāi)

      1. CREATE OR REPLACE TRIGGER tr_dept

      2.   BEFORE INSERT OR UPDATE ON dept

      3.   FOR EACH ROW

      4. DECLARE

      5.   v_ind PLS_INTEGER;

      6. BEGIN

      7.   SELECT COUNT(*)

      8.     INTO v_ind

      9.     FROM tmp_disable_trigger

      10.    WHERE table_name = 'dept';

      11.   IF v_ind > 0 THEN

      12.     RETURN;

      13.   END IF;

      14.   INSERT INTO dept_log (id, dt) VALUES (seq_dept_log.nextval, SYSDATE);

      15. END;

      其中tmp_disable_trigger是個(gè)事務(wù)級(jí)全局臨時(shí)表,相當(dāng)于做了個(gè)開(kāi)關(guān), insert dept_log相當(dāng)于額外的業(yè)務(wù)邏輯。

      點(diǎn)擊(此處)折疊或打開(kāi)

      1. create global temporary table tmp_disable_trigger(

      2.  table_name varchar2(100)

      3. ) on commit delete rows;

      2. 修改目標(biāo)端復(fù)制進(jìn)程參數(shù), 關(guān)鍵字sqlexec
      GGSCI55> view params r_oggdb
      replicat r_oggdb
      SETENV (ORACLE_SID = "oggdb")
      userid ggs,password ggs
      assumetargetdefs
      reperror default,discard
      discardfile ./dirrpt/r_oggdb.dsc,append,megabytes 50
      dynamicresolution
      MAP scott.*, target scott.*, SQLEXEC (SPNAME scott.sp_disable_trigger, ID sp_disable_trigger, PARAMS (p_tablename = 'dept'));


      經(jīng)測(cè)試,在進(jìn)行scott.dept表同步時(shí),不會(huì)向dept_log中插入新的數(shù)據(jù)。這里,觸發(fā)器就被邏輯上繞過(guò)了(實(shí)際上還是要觸發(fā),只是不執(zhí)行觸發(fā)器中的代碼了)

      需要注意的是,如果是有多個(gè)地方要執(zhí)行相同的過(guò)程,需要指定ID, 不同行的ID不能相同,例:
      MAP scott.dept, target scott.dept, SQLEXEC (SPNAME scott.sp_disable_trigger, ID sp_disable_trigger1, PARAMS (p_tablename = 'dept'));
      MAP scott.emp, target scott.emp, SQLEXEC (SPNAME scott.sp_disable_trigger, ID sp_disable_trigger2, PARAMS (p_tablename = 'dept'));

      否則可能會(huì)有如下錯(cuò)誤:
      2017-06-13 11:23:30  ERROR   OGG-00303  Oracle GoldenGate Delivery for Oracle, R_ERP_FY.prm:  Duplicate stored procedure name (scott.sp_disable_trigger)

      感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決OGG同步復(fù)制時(shí)與兼容觸發(fā)器的問(wèn)題”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!


      文章標(biāo)題:如何解決OGG同步復(fù)制時(shí)與兼容觸發(fā)器的問(wèn)題
      分享路徑:http://www.ef60e0e.cn/article/posehs.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        苗栗县| 平凉市| 延川县| 门源| 沙坪坝区| 彩票| 武威市| 昌图县| 定陶县| 旅游| 法库县| 连城县| 仁化县| 吉水县| 额尔古纳市| 城固县| 铜梁县| 维西| 信丰县| 邹平县| 津市市| 平南县| 涞水县| 东兰县| 新化县| 三台县| 曲周县| 平遥县| 边坝县| 尼木县| 马龙县| 阿巴嘎旗| 英吉沙县| 海宁市| 凤凰县| 邵阳市| 海盐县| 揭东县| 莫力| 贡山| 那曲县|