新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數據庫復制的設計和管理

        數據庫復制的設計和管理

        作者: 時間:2011-05-31 來源:網絡 收藏

        4.2.1 唯一性約束沖突
          如果的數據將破壞完整性約束(如當不同站點的事務向參加的表中插入主鍵相同的記錄時)將導致唯一性約束沖突。
          如果方在插入或修改時出現違反唯一性約束問題,則復制方檢測到唯一性約束沖突。
          多站點復制時網絡上不同上的用戶同時修改或刪除同一記錄或同時插入主鍵相同的記錄的矛盾,在時要考慮充分,可用以下方法避免:
        (1)盡量減少需同時更新數據的站點數;
          (2)建立不同取值范圍的序列生成器生成主鍵,避免主鍵重復的矛盾。但對于站點很多的情況這種方法不合適。避免主鍵重復的另一方法是在每一站點采用相同的全范圍的序列生成器,將其與站點的唯一標識結合作為復合主鍵;
          (3)在應用中不允許修改主鍵。
        4.2.2 刪除沖突
          如果復制方在執行刪除和更新操作時,主鍵不存在,復制方將檢測到一個刪除沖突。如果一個事務試圖刪除已經被別的用戶刪除了的或正被別的用戶修改的記錄時將出現刪除沖突。刪除沖突在復制環境中必須避免。可采用異步刪除方法,即在應用程序中不采用刪除命令,而采用標記需刪除的記錄,然后系統定期地統一執行刪除操作以避免刪除沖突。
        4.2.3 更新沖突
          當不同站點的事務在幾乎同一時間修改同一記錄時將導致更新沖突。
          在時需盡可能避免更新沖突,但不能徹底杜絕。時不能避免的沖突,在設計時要全部理出,針對不同情況配置提供的沖突解決方法解決。但內建的沖突解決功能不能解決刪除沖突、對主鍵的修改、違反參考一致性等沖突,這些需要通過應用的設計解決。
        4.3 參數的設置
        要使復制能自動、正常工作,需在參數文件中適當設置和調整以下參數:

        本文引用地址:http://www.104case.com/article/172723.htm


          它們決定復制進程啟動的時間間隔和復制進程的個數,它們的設置需與復制的作業的多少和間隔進行協調。
          一般第一個參數為2(必須大于0)即可,如果數據庫中配置的作業非常多、有多個同時更新的作業,需增大此參數。其取值范圍為0~9,A~Z。
          第二個參數單位為秒,定義喚醒服務器后臺進程的時間間隔,使用缺省值60。
          如果二者設置不協調,將導致數據庫不能及時更新數據或后臺進程死鎖。

        5 數據庫復制的

          數據庫復制的設計主要由研制方完成,而其主要是指系統投入使用后的日常工作,主要由使用方的數據庫管理員來完成。
        5.1 參數的修改
          在設計時,設計者會綜合考慮各種因素以設置參數,但隨著用戶業務的發展,數據量的增大,在數據庫還未出現問題時,數據庫管理員應及時地對
        JOB QUEUE PROCESS,JOB QUEUE 
        INTERVAL參數進行調整。如果所設置的參數不能滿足應用的需要,數據的復制將出現問題。這可查看快照和數據庫的日志文件,如果出現錯誤,日志中有記錄,并且生成CORE文件。后臺進程出現的問題數據庫自己能解決,但CORE文件需要數據庫管理員及時刪除,否則由于它增長迅速,將很快占滿整個硬盤。
        5.2 更改復制更新的間隔
          復制作業執行的時間和觸發的時間間隔也是管理員經常需調整的因素。
          數據庫管理員能根據需要更改復制間隔時間,以滿足需求的變化。每個用戶只能更改屬于自己的作業執行間隔。
          作業間隔的設定一定不能小于執行一次數據更新所需的時間。
        5.3 取消復制作業
          由于某種原因不需繼續執行復制操作時可取消復制作業。有兩種選擇:暫時終止和徹底刪除。暫時終止的復制作業在將來需要時可恢復執行,而徹底刪除的復制作業不可恢復,只能重建。
        用戶只能停止或取消屬于自己的復制作業。
        5.4 可能出現的問題
          下列情況下數據庫的復制不能正常進行:缺少后臺進程,網絡故障,數據庫例程失敗,以及復制程序出現錯誤。
          若由于某種原因復制作業不能正常執行,數據庫將以一定的時間間隔重復執行此作業,在經過一定次數的嘗試后仍不能成功,則該作業將由數據庫自動標記為“終止”。一旦造成終止的問題被解決,被終止的作業可人為地讓其執行復制(一旦執行成功,該作業的狀態將自動改變),或將其狀態由終止改為自動執行,讓數據庫自動執行復制。如果造成終止的問題在數據庫發現問題至設定的嘗試次數的時間范圍之內解決,復制作業將正常執行而不會終止。
          如果復制方在設定的時間得不到數據的更新,這時有可能是后臺進程死鎖,有三種解決方法:人為執行復制作業,將數據復制上來;如果用戶并不急需看到更新的數據,那么可以再等待一段時間,Oracle的系統監視進程將自動殺掉死的復制進程,重新生成新的后臺進程,復制將自動恢復;關閉并重新打開數據庫,復制將自動恢復。
          每個用戶只能人工執行屬于自己的作業。
        5.5 擴充站點的問題
          如果為了滿足新的需求,需在已建立好的復制環境中建立新的快照,則以下三個條件同時成立,系統將出錯:
        (1)新的快照須采用快速更新方式更新;
          (2)新的快照與某個已存在的快照是基于相同的主表;
          (3)該已存在的快照在創建新的快照時能被快速更新。
          解決此問題的方法是新建的快照采用完全更新方式,或采用以下方法避免問題出現:在建新的快照之前建立一個基于同一主表的虛擬快照,以避免在快照創建時的數據更新,然后以快速更新方式建立所需的快照,最后刪除虛擬快照。

        6 結束語

          數據庫的復制是個非常靈活的技術,恰當地應用該技術將給用戶和設計者帶來意想不到的好處。但復制的應用經常會給數據庫系統的管理帶來很多麻煩,因此,設計數據庫復制環境時要盡可能地簡單、實用,以提高系統的可用性。同時,一個分布式數據庫系統的數據庫管理員,必須具有全面的數據庫知識以保證系統正常、穩定地工作。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蒙城县| 仁怀市| 黄龙县| 无极县| 绥芬河市| 钦州市| 星座| 丹寨县| 旅游| 常山县| 江城| 健康| 临江市| 饶平县| 平远县| 丰顺县| 仁化县| 蒙阴县| 威海市| 洮南市| 东光县| 镇安县| 河津市| 保山市| 衡阳县| 塔河县| 萨迦县| 六安市| 聂荣县| 平和县| 贵定县| 利津县| 中超| 麻城市| 昭苏县| 文山县| 保亭| 长春市| 柳河县| 东山县| 长沙市|