新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 數(shù)據(jù)庫復制的設計和管理簡介

數(shù)據(jù)庫復制的設計和管理簡介

作者: 時間:2012-09-02 來源:網(wǎng)絡 收藏

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

本文引用地址:http://m.butianyuan.cn/article/170939.htm


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

5 數(shù)據(jù)庫復制的

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

6 結束語

  數(shù)據(jù)庫的復制是個非常靈活的技術,恰當?shù)貞迷摷夹g將給用戶和設計者帶來意想不到的好處。但復制的應用經(jīng)常會給數(shù)據(jù)庫系統(tǒng)的管理帶來很多麻煩,因此,設計數(shù)據(jù)庫復制環(huán)境時要盡可能地簡單、實用,以提高系統(tǒng)的可用性。同時,一個分布式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫管理員,必須具有全面的數(shù)據(jù)庫知識以保證系統(tǒng)正常、穩(wěn)定地工作。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉