MS SQL基础教程:事务复制
2007-12-25 15:27:18 来源:WEB开发网16.4.1 事务复制的特点
前面我们指出复制的本质就是从源数据库向目标数据库复制数据,但对不同的复制类型而言总是有差别的。从复制的具体内容来看快照复制是真正意义上的数据复制,不管采用何种数据接收方式(如将表删除后再重建或删除表中数据但保留表结构),在网络中传送的是数据。而事务复制在网络中传送的是事务(由一条或多条INSERT、 DELETE、 UPDATE);从传输的数据量来看,事务复制仅将发生的变化传送给订购者,是一种增量复制,但快照复制却将整个出版物复制给订购者。
由于事务复制要不断地监视源数据库的数据变化,所以与快照复制相比,其服务器负载相应要重。
在事务复制中当出版数据库发生变化时,这种变化就会被立即传递给订购者,并在较短时间内完成(几秒或更短),而不是像快照复制那样要经过很长一段时间间隔。因此,事务复制是一种几近实时地从源数据库向目标数据库分发数据的方法。由于事务复制的频率较高,所以必须保证在订购者与出版者之间要在可靠的网络连接。
事务复制只允许出版者对复制数据进行修改(若设置了立即更新订购者选项,则允许订购者修改复制数据),而不像合并复制那样,所有的节点(出版者和订购者)都被允许修改复制数据,因此事务复制保证了事务的一致性。它所实现的事务一致性介于立即事务一致性和潜在事务一致性之间。
由于事务复制在极小的时延内把数据分发到订购者,因此要求出版者与订购者总是保持连接。但在快照复制中,由于相邻两次复制数据的传递间隔时间较长,则允许订购者与出版者不必保持永久连接。
事务复制另外一个独有特点是支持并行的快照处理,这也是SQL Server 2000 事务复制的新特征。正如在快照复制一节中所叙述的那样,通常而言,在创建初始快照文件的整个处理过程中,都要在出版表上放置一个共享锁来阻止对出版的更。新但事务复制所支持的并行快照处理却允许在创建快照文件的整个过程中不必将共享锁保持到快照文件创建结束之时。其具体过程是:在复制开始时,快照代理在出版表上放置共享锁。当表示快照开始的事件被写入事务日志时,该共享锁即被释放。这样在随后的时间,即使快照文件仍处于生成过程中,仍可以对出版表进行修改。由此可见,共享锁在出版表时持续的时间很短。释放共享锁的时刻正是快照代理开始创建快照文件的时刻。在结束快照文件创建时。表明创建结束的事件被记录到事务日志中。在从开始到结束的整个快照生成过程中所发生的影响出版表的事务将被日志阅读代理发送到分发数据库。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接