我们公司在开发“西安市国家税务局内部网络信息系统”中,正是利用了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。