环境介绍:发布服务器Publication、分发服务器Distribution和订阅服务器Subscriber
我们知道每个SQL Server服务器都将操作记录到Log中,Distribution通过Log Reader读取发布服务器上的Log,将操作以SQL Commands的形式记录到Distribution的表中。如果是Pull的形式订阅,那么Subscriber上会创建一个Job去拉Distribution中需要执行的SQL Commands。
另外
Distribution Server 到 Subscribe 有pull和push两种操作。 Subscribe 上有个作业定时读取Distribution Server上的commands,算是Subscribe 轮询。
另外, Distribution Server 有一个 Clear Up 操作,是通过定时作业执行的。如果有一个 Subscribe 宕机,那么 Distribution Server 会报错,commands会在Distribution Server上积累(不要担心,dba就是管解决错误的)。那如果是这台 Subscribe 被取消掉了,而在取消前没有通知 Distribution Server,这种情况应该是不存在的,因为取消操作中Subscribe 上的取消和通知Distribution Server取消相当于是一个事务。