新聞中心

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

數(shù)據(jù)庫復(fù)制的設(shè)計(jì)和管理簡(jiǎn)介

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

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

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


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

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

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

6 結(jié)束語

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


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉