SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器。
SQL复制的基本元素包括
出版服务器、分发服务器、订阅服务器、出版物、文章
SQL SERVER提供了三种复制技术,分别是:
1、快照复制
2、事务复制
3、合并复制
事物复制
事务复制由 SQL Server 快照代理、日志读取器代理和分发代理实现。
快照代理准备快照文件(其中包含了已发布表和数据库对象的架构和数据),然后将这些文件存储在快照文件夹中,并在分发服务器中的分发数据库中记录同步作业。
日志读取器代理监视为事务复制配置的每个数据库的事务日志,并将标记为要复制的事务从事务日志复制到分发数据库中。分发数据库的作用相当于一个可靠的存储-转发队列。
分发代理将快照文件夹中的初始快照文件和分发数据库表中的事务复制到订阅服务器中。
事物复制在网络中传送的是事务(由一条或多条INSERT、 DELETE、 UPDATE),事务复制仅将发生的变化传送给订购者,是一种增量复制,快照复制将整个出版物复制给订购者。
在发布服务器中所做的增量更改根据分发代理的计划流向订阅服务器,分发代理可以连续运行以尽量减少滞后时间,也可以按预定的时间间隔运行。 由于数据更改必须在发布服务器中进行,从而避免了更新冲突。 最后,所有订阅服务器都将获得与发布服务器相同的值。 如果事务复制使用了立即更新或排队更新选项,更新可以在订阅服务器中进行,对于排队更新,可能会发生冲突。
在事务复制中当出版数据库发生变化时,这种变化就会被立即传递给订购者,并在较短时间内完成(几秒或更短),而不是像快照复制那样要经过很长一段时间间隔。因此,事务复制是一种几近实时地从源数据库向目标数据库分发数据的方法。由于事务复制的频率较高,所以必须保证在订购者与出版者之间要在可靠的网络连接。