復(fù)制的概念
復(fù)制作為一個重要并且強(qiáng)大的技術(shù),為分布式數(shù)據(jù)的存儲和處理提供了有力支持。微軟公司的SQL Server可以生成數(shù)據(jù)的拷貝,并能把這些數(shù)據(jù)的拷貝分發(fā)到不同的地方,自動進(jìn)行數(shù)據(jù)的同步,保持所有的數(shù)據(jù)拷貝具有相同的數(shù)據(jù)。SQL Server采用一種稱為“松散一致”的復(fù)制模式在兩個數(shù)據(jù)庫之間進(jìn)行復(fù)制。這兩個數(shù)據(jù)庫既可以在同一臺計(jì)算機(jī)上,也可以在不同的計(jì)算機(jī)上,彼此通過局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)進(jìn)行連接。
我們公司在開發(fā)“西安市國家稅務(wù)局內(nèi)部網(wǎng)絡(luò)信息系統(tǒng)”中,正是利用了SQL Server的復(fù)制功能,實(shí)現(xiàn)全西安市分布的稅收數(shù)據(jù)的復(fù)制同步。西安市國家稅局包括市局機(jī)關(guān)和下屬的18個基層征管分局,分布于西安市不同的地理位置,彼此通過DDN專線或X.25專線連接,構(gòu)成了西安國稅局廣域網(wǎng)。市局信息中心用Windows NT Server4.0 構(gòu)建一個Windows NT的單主域網(wǎng)絡(luò)環(huán)境,下屬每個分局有一臺運(yùn)行Windows NT Server 4.0或Windows NT Server 3.51的服務(wù)器,通過廣域網(wǎng)加入到單主域的環(huán)境中作為一臺獨(dú)立的服務(wù)器運(yùn)行。各分局建有本分局的局域網(wǎng),網(wǎng)絡(luò)環(huán)境為Novell和Windows NT的混合網(wǎng)絡(luò)環(huán)境。
全西安市所有的納稅人,均到指定的征管分局進(jìn)行納稅登記、納稅申報。國稅局用FoxPro開發(fā)了基于Novell網(wǎng)絡(luò)環(huán)境的稅收征管軟件,在各分局征收大廳由Novell的無盤工作站負(fù)責(zé)稅收數(shù)據(jù)的錄入,寫入到Novell服務(wù)器上的數(shù)個DBF文件中。由于稅收征管數(shù)據(jù)分布在全市不同的征管分局,為全市范圍納稅信息的檢索和分析帶來困難。
新系統(tǒng)的開發(fā),在原有基礎(chǔ)上,編制專門的數(shù)據(jù)轉(zhuǎn)換程序,把存儲于Novell服務(wù)器上的DBF文件轉(zhuǎn)換到本分局Windows NT上的SQL Server數(shù)據(jù)庫中。每個分局的SQL Server數(shù)據(jù)庫與市局信息中心的SQL Server數(shù)據(jù)庫進(jìn)行復(fù)制,及時把最新的稅收數(shù)據(jù)傳遞到市局信息中心。這樣在市局信息中心,就有了全市所有稅收征管數(shù)據(jù)。信息中心建立Intranet Web站點(diǎn),用戶的計(jì)算機(jī)只要連上各分局的局域網(wǎng),或者通過Modem撥號到信息中心的RAS服務(wù)器,就可以用IE瀏覽器訪問IIS服務(wù)器,由IIS服務(wù)器向SQL Server服務(wù)器發(fā)出數(shù)據(jù)請求并把結(jié)果按HTML格式返回給用戶瀏覽器。
系統(tǒng)的設(shè)計(jì)采用客戶瀏覽/服務(wù)器的多層結(jié)構(gòu)方式,客戶端采用標(biāo)準(zhǔn)的瀏覽器訪問方式。用戶在自己的計(jì)算機(jī)上安裝IE瀏覽器(WIN98、WINNT4.0中已內(nèi)置IE4瀏覽器),輸入Web 站點(diǎn)地址,就可以進(jìn)入該系統(tǒng)。
在中間層,由Internet Information Server完成大多數(shù)的用戶業(yè)務(wù)規(guī)則的實(shí)現(xiàn),例如對用戶權(quán)限的限制、數(shù)據(jù)請求的生成等。IIS會根據(jù)不同的用戶所擁有的不同的權(quán)限,生成不同的頁面。將來當(dāng)業(yè)務(wù)規(guī)則發(fā)生變化時,只需要在Internet Information Server上進(jìn)行相應(yīng)的更改,這種更改就會在系統(tǒng)的每一個用戶下次訪問系統(tǒng)時得到體現(xiàn)。
在系統(tǒng)的最低層,由SQL Server大型關(guān)系數(shù)據(jù)庫作為支撐。西安全市的稅務(wù)數(shù)據(jù)是一個以GB為單位的大型數(shù)據(jù)庫,納稅數(shù)據(jù)表中的數(shù)據(jù)記錄超過數(shù)百萬條,在如此大量的數(shù)據(jù)中進(jìn)行快速的數(shù)據(jù)檢索和數(shù)據(jù)分析,一般的數(shù)據(jù)庫軟件是難以完成的。SQL Server關(guān)系型數(shù)據(jù)庫,較好地完成了用戶提出的各種數(shù)據(jù)的檢索要求,同時也正是利用了SQL Server的數(shù)據(jù)復(fù)制技術(shù),把近二十個分局的數(shù)據(jù)通過廣域網(wǎng)復(fù)制到信息中心來,使用戶能快速獲取全市的納稅信息。該系統(tǒng)實(shí)現(xiàn)的一個重要部分就是各分局稅收征管數(shù)據(jù)的復(fù)制。SQL Server的復(fù)制有以下幾個特點(diǎn):
1.基于事務(wù)
有復(fù)制標(biāo)志的事務(wù)從源數(shù)據(jù)庫的事務(wù)日志讀出,并送到目的數(shù)據(jù)庫。例如執(zhí)行了一條Insert語句使源數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變化,這條Insert語句會被寫入到一個數(shù)據(jù)庫中,我們稱之為發(fā)布數(shù)據(jù)庫(Distrbution)。在適當(dāng)?shù)臅r候,這條Insert語句會送到復(fù)制的目的數(shù)據(jù)庫并執(zhí)行該Insert語句,以此保證兩端的數(shù)據(jù)保持同步。
2.以三種不同的方式使用服務(wù)器
(1)出版(Publication):作為源數(shù)據(jù)服務(wù)器(在本系統(tǒng)中是各分局的SQL Server服務(wù)器),當(dāng)標(biāo)志復(fù)制的表(Table)的數(shù)據(jù)發(fā)生變化時,產(chǎn)生該變化的事務(wù)被刻上復(fù)制標(biāo)志,由日志閱讀器(LogReader)把該事務(wù)送入分發(fā)數(shù)據(jù)庫(Distribution Database)。這些事務(wù)寄存在分發(fā)數(shù)據(jù)庫中直到被傳送到目的服務(wù)器。
(2)分發(fā)(Distribution):包含有分發(fā)數(shù)據(jù)庫。分發(fā)服務(wù)器接受出版服務(wù)器的更改事務(wù),并保存到分發(fā)數(shù)據(jù)庫中。在適當(dāng)?shù)臅r候,把這些事務(wù)送入訂閱服務(wù)器。缺省情況下,分發(fā)服務(wù)器與出版服務(wù)器為同一臺計(jì)算機(jī),當(dāng)然也可以是不同的計(jì)算機(jī)。
(3)訂閱(Subscription):接受出版服務(wù)器的出版數(shù)據(jù)。
3.使用專用的SQL Server數(shù)據(jù)庫作為復(fù)制數(shù)據(jù)的可靠隊(duì)列
SQL Server的復(fù)制采用“松散一致”復(fù)制模式,其特征是源數(shù)據(jù)與拷貝數(shù)據(jù)之間并不是在任何時刻都保持完全一致,它們之間有一個延時。源數(shù)據(jù)庫的變化,不是立刻反應(yīng)到訂閱數(shù)據(jù)庫中,而是把產(chǎn)生變化的事務(wù)寫入一個專門的分發(fā)數(shù)據(jù)庫中(Distribution)。當(dāng)這些事務(wù)累計(jì)到設(shè)定值時,由事務(wù)分發(fā)器(Distribution task)把事務(wù)送到訂閱服務(wù)器中。訂閱服務(wù)器再執(zhí)行這些事務(wù)來保持源數(shù)據(jù)與拷貝數(shù)據(jù)的一致。分發(fā)數(shù)據(jù)庫完成了一種緩沖的作用,當(dāng)因網(wǎng)絡(luò)或其他問題使復(fù)制不能完成時,源數(shù)據(jù)的變化會一直保存在分發(fā)數(shù)據(jù)庫中直到問題解決再自動把所有保存的事務(wù)送出,并且復(fù)制兩端的數(shù)據(jù)仍保持一致。這種方式使SQL Server數(shù)據(jù)的復(fù)制有極大的自適應(yīng)性和可靠性,最大限度減少用戶的干預(yù)。
推薦:2007年11月網(wǎng)絡(luò)工程師考試全真模擬試題一下午試卷
更多軟考資料請?jiān)L問:考試吧軟件水平考試欄目
希望與更多網(wǎng)友交流,請進(jìn)入考試吧軟件水平考試論壇
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |