<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      發布一個用于Oracle數據庫間數據復制的組件-OraSyner

           相信現在很多Application在使用db的時候,仍采用master-slave的方式,因為這種方式最貼近現實,開始可能只需要一臺db server,可隨著數據量的增加,一臺會不堪重負,此時我們必須增加server,來應付日益增長的data,而我們在開發程序的時候,可能并沒有想到系統日后要面臨這樣的分布式數據庫系統,此時最好的解決方案就是master-slave,這樣系統就可以不做任何的更新了。在工作中,我開發了一個用于同步master-slave之間數據的組件,他包括以下功能:

      1. 能夠同步master和slave的數據
      2. 在同步數據的時候,能夠記錄運行過程

         

          他的特點是一個通用的組件,他通過配置文件來設置master和slave庫,并且通過配置來設置要數據同步的數據表,當有新的數據表需要同步的時候,我們只需要在配置中增加一項就能解決問題。這個配置文件,名稱為:OraSyner.cfg,將它放置在程序運行的目錄里面。OraSyner.cfg中格式如下:

      <?xml version="1.0" encoding="utf-8" ?>
      <cfgs>
          
      <servers>
              
      <master>Password=321;User ID=username;Data Source=masterdb</master>
              
      <slave>Password=123;User ID=username;Data Source=slavedb</slave>
          
      </servers>
          
      <syntables>
              
      <table name="tablename">
                  
      <key>key1</key>
                  
      <key>    key2</key>
              
      </table>
          
      </syntables>
      </cfgs>

       

      節點名稱

      使用狀態

      節點說明

      cfgs

      在整個配置文件中有且只有一個

      配置文件的根節點

      servers

      在整個配置文件中有且只有一個

      用于聲明master-salve服務器信息的根節點

      master

      在一個server中有且只有一個

      Master db的連接字符串

      slave

      在一個server中有且只有一個

      Salve db 的連接字符串

      syntables

      在整個配置文件中有且只有一個

      用于聲明待同步的數據表信息的根節點

      table

      在syntables中0個或者多個

      用于聲明待同步數據表信息的節點

      Table[@name]

      在table節點中有且只有一個的屬性

      用于指示同步數據表的名稱

      key

      在一個table節點中1個或者多個

      用于指示待同步數據表的行標志字段

      該組件的特點:

      1. 通俗易用,擴展性強,搞明白上面的配置說明就萬事大吉
      2. 能適用于任何環境之下,比如master在內網,而slave在外網,或者slave在內網,而master在外網,只要運行該組件的主機能連接到master和slave就可以。

      該組件的工作原理:

      通過讀取配置文件,將要同步的數據表數據讀取出來放到組件的DataSet中,然后針對每個表,先在master中獲取表字典,然后根據配置中的行標志字段,生成用于同步slave的語句,主要采用oracle中的

       MERGE INTO 
       USING  
      ON
       
       
      WHEN MATCHED then

       
      WHEN NOT MATCHED THEN


      語句來實現同步功能,也就是有就更新,沒有則插入,而一條條的 比對,性能會相對比較慢,所以先在slave中創建臨時表,將數據插入到該臨時表,然后一次性merge into.測試后,發現比一條條的快20倍左右。

      本組件的適用范圍:

      1. 發布/訂閱不太方便的時候
      2. 數據量不宜太大,太大會搞死人的,比如上百萬,上千萬 ,我測試了下,幾萬的數據在幾秒內還是能搞定的。再大了本組件就沒戲了
      3. 臨時 充當數據同步工具(其實我開發這個就是為了這個目的)

      使用辦法:

      每次同步操作之需要調用Executor對象的Execute()方法即可,你可以將它加到作業調度軟件中,定時的執行。
      注意:產生的log信息會在程序運行的目錄里面的log文件夾中按日期創建類似yyyyMmdd這樣格式的文件夾。而如果想輸出比較詳盡的log信息,在.config中文件的<appSetting>中添加<add key="LogLevel" value="2"/>是必須的,value改為1,它只記錄錯誤和提示信息,為0,只記錄錯誤,為2記錄錯誤,提示和調試信息。

      組件項目文件:
      /Files/jillzhang/OraSyner.rar 
       

       

      posted @ 2008-01-20 01:41  Robin Zhang  閱讀(5451)  評論(29)    收藏  舉報
      主站蜘蛛池模板: 中文字幕无码久久精品| 久久精品国产99国产精品严洲| 欧洲免费一区二区三区视频| 欧美激情一区二区三区成人| 国产精品久久一区二区三区| 国内精品伊人久久久久AV一坑| 熟女人妻aⅴ一区二区三区电影| 日韩V欧美V中文在线| 亚洲第一区二区国产精品| 网友偷拍视频一区二区三区| 日韩人妻无码一区二区三区| 99在线视频免费观看| 国产主播精品福利午夜二区| 强奷白丝美女在线观看| 国产亚洲无线码一区二区| 九九热免费公开视频在线| 99久久亚洲综合精品成人网| 欧美成人精品一级在线观看| 人妻一区二区三区人妻黄色| 新密市| 国产麻豆一区二区精彩视频| 丝袜高潮流白浆潮喷在线播放| 好吊视频专区一区二区三区| 国产精品中文字幕视频| 四虎库影成人在线播放| 免费AV片在线观看网址| 亚洲午夜成人精品电影在线观看 | 国产黄色一区二区三区四区| 国模雨珍浓密毛大尺度150p| 国产午夜亚洲精品福利| 无码人妻精品一区二区三区下载| 亚洲中文字幕在线二页| 国产卡一卡二卡三免费入口| 亚洲一区二区三区啪啪| 九九热精彩视频在线免费| 免费无码一区无码东京热| 最新av中文字幕无码专区| 麻豆果冻传媒2021精品传媒一区| 国产精品久久久福利| AV区无码字幕中文色| av无码精品一区二区三区|