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