该系统实现的一个重要部分就是各分局税收征管数据的复制。SQL Server的复制有以下几个特点:
1.基于事务
有复制标志的事务从源数据库的事务日志读出,并送到目的数据库。例如执行了一条Insert语句使源数据库的数据发生变化,这条Insert语句会被写入到一个数据库中,我们称之为发布数据库(Distrbution)。在适当的时候,这条Insert语句会送到复制的目的数据库并执行该Insert语句,以此保证两端的数据保持同步。
2.以三种不同的方式使用服务器
(1)出版(Publication):作为源数据服务器(在本系统中是各分局的SQL Server服务器),当标志复制的表(Table)的数据发生变化时,产生该变化的事务被刻上复制标志,由日志阅读器(LogReader)把该事务送入分发数据库(Distribution Database)。这些事务寄存在分发数据库中直到被传送到目的服务器。
(2)分发(Distribution):包含有分发数据库。分发服务器接受出版服务器的更改事务,并保存到分发数据库中。在适当的时候,把这些事务送入订阅服务器。缺省情况下,分发服务器与出版服务器为同一台计算机,当然也可以是不同的计算机。
(3)订阅(Subscription):接受出版服务器的出版数据。
3.使用专用的SQL Server数据库作为复制数据的可靠队列
SQL Server的复制采用“松散一致”复制模式,其特征是源数据与拷贝数据之间并不是在任何时刻都保持完全一致,它们之间有一个延时。源数据库的变化,不是立刻反应到订阅数据库中,而是把产生变化的事务写入一个专门的分发数据库中(Distribution)。当这些事务累计到设定值时,由事务分发器(Distribution task)把事务送到订阅服务器中。订阅服务器再执行这些事务来保持源数据与拷贝数据的一致。分发数据库完成了一种缓冲的作用,当因网络或其他问题使复制不能完成时,源数据的变化会一直保存在分发数据库中直到问题解决再自动把所有保存的事务送出,并且复制两端的数据仍保持一致。这种方式使SQL Server数据的复制有极大的自适应性和可靠性,最大限度减少用户的干预。
SQL Server的复制主要组成部分有:日志阅读(Log Reader)、初始同步(Synchornization)、数据分发(Distribution)和分发数据库。
初始同步是复制真正开始执行的第一步。类似于开始传送事务前,先给源数据库照一个快照,把传送事务前的那一时刻的数据拷贝到订阅数据库。其实质就是把那时刻的数据生成BCP文件,通过网络传到订阅数据库。完成初始同步后,再开始由日志阅读初始同步以后的事务,并由数据分发过程传送分发数据库中的事务到订阅服务器中去。
复制的实现
下面我们结合在西安市国家税务局内部网络信息系统的实例,介绍SQL Server6.5的配置以及其中需要注意的事项。
复制前的准备
(1)使用一种字符集:市局和分局的SQL Server的配置使用一种字符集。
(2)允许分局服务器有足够的事务日志空间。
(3)最好设置MSSQL Service 和SQLExecutive Service Auto Start at Boot time。
复制的安装
(1)运行Microsoft SQL Enterprise Manage,在Server Manager窗口中选择源数据服务器。
(2)从Server选单选择Replication Configuration, 然后从所出现的子选单选择Install Publishing。出现Install Replication Publishing 对话框。
(3)选择Local-Install New Local Distribution Database选项(配置该服务器充当自身的分发服务器)。
在为分发数据库建立分发数据库设备时,要根据源数据的更新率估计分发数据设备的大小,尽量把分发数据库建大些。
设置出版和订阅服务器和数据库
在前面的安装分发数据库中,如果在询问是否在本次配置服务器选项对话框中,选择YES,则出现Replication-Publishing对话框。在Enable Publishin to These Servers(左边列表)目录中选择订阅的服务器,在本实例中为信息中心的SQL Server。在Publishing Database下(右边列表),选择被允许出版数据的数据库。
回到Server Manager,选择订阅服务器,从Server选单选择Replication Configuration;然后从出现的下拉选单选择Subscribing,出现Replication-Subscribing对话框。在左侧的Publishing Server框中选择源数据SQL服务器,在右侧的框内选择拷贝的数据库。
责任编辑:cyth