我們公司在開發(fā)“西安市國家稅務(wù)局內(nèi)部網(wǎng)絡(luò)信息系統(tǒng)”中,正是利用了SQL Server的復(fù)制功能,實(shí)現(xiàn)全西安市分布 的稅收數(shù)據(jù)的復(fù)制同步。西安市國家稅局包括市局機(jī)關(guān)和下屬的18個(gè)基層征管分局,分布于西安市不同的地理位置,彼此通 過DDN專線或X.25專線連接,構(gòu)成了西安國稅局廣域網(wǎng)。市局信息中心用Windows NT Server4.0 構(gòu)建一個(gè)Windows NT的單 主域網(wǎng)絡(luò)環(huán)境,下屬每個(gè)分局有一臺(tái)運(yùn)行Windows NT Server 4.0或Windows NT Server 3.51的服務(wù)器,通過廣域網(wǎng)加入到 單主域的環(huán)境中作為一臺(tái)獨(dú)立的服務(wù)器運(yùn)行。各分局建有本分局的局域網(wǎng),網(wǎng)絡(luò)環(huán)境為Novell和Windows NT的混合網(wǎng)絡(luò)環(huán) 境。
在中間層,由Internet Information Server完成大多數(shù)的用戶業(yè)務(wù)規(guī)則的實(shí)現(xiàn),例如對(duì)用戶權(quán)限的限制、數(shù)據(jù)請(qǐng)求的 生成等。IIS會(huì)根據(jù)不同的用戶所擁有的不同的權(quán)限,生成不同的頁面。將來當(dāng)業(yè)務(wù)規(guī)則發(fā)生變化時(shí),只需要在Internet Information Server上進(jìn)行相應(yīng)的更改,這種更改就會(huì)在系統(tǒng)的每一個(gè)用戶下次訪問系統(tǒng)時(shí)得到體現(xiàn)。
在前面的安裝分發(fā)數(shù)據(jù)庫中,如果在詢問是否在本次配置服務(wù)器選項(xiàng)對(duì)話框中,選擇YES,則出現(xiàn) Replication-Publishing對(duì)話框。在Enable Publishin to These Servers(左邊列表)目錄中選擇訂閱的服務(wù)器,在本實(shí) 例中為信息中心的SQL Server。在Publishing Database下(右邊列表),選擇被允許出版數(shù)據(jù)的數(shù)據(jù)庫。
在Manage Article對(duì)話框中,選擇Scripts標(biāo)簽。按“Generate”按鈕,出現(xiàn)模式源設(shè)置畫面。這里需要設(shè)置初始同步 的模式。在多個(gè)源數(shù)據(jù)庫向一個(gè)中心數(shù)據(jù)庫復(fù)制數(shù)據(jù)時(shí),這里一定要選擇“DELETE DATA Using Restriction Clause”, 即是用前面的唯一標(biāo)識(shí)條件對(duì)數(shù)據(jù)操作。否則會(huì)造成不同數(shù)據(jù)源的復(fù)制數(shù)據(jù)互相影響。
開發(fā)體會(huì)
SQL Server的復(fù)制被設(shè)計(jì)成最小用戶干預(yù)的實(shí)現(xiàn)。一旦設(shè)置完成后,基本不需要用戶再去進(jìn)行處理。雖然初始同步時(shí) SQL Server自動(dòng)進(jìn)行的,但在實(shí)際應(yīng)用中,廣域網(wǎng)的連接(DDN、X.25)常常不能完成這種同步,所以需要我們手工完成初 始同步,例如自己把源數(shù)據(jù)庫BCP數(shù)據(jù)導(dǎo)出,再導(dǎo)入到訂閱數(shù)據(jù)庫中,選擇初始同步的模式為No Data Synchronization。