【转】sql事务复制总结

建立复制中遇到的问题见另外那篇"复制中遇到的问题",

对于mssql复制,复制中的服务器可以不在一个局域网内,并且可以不在一个域内,关键点是,创建订阅后,

订阅服务器要能获得快照的文件,获得之后,服务器间是可以通过mslsql的代理程序,使用相应的端口来

进行网络通信,发送数据的.

而获得快照文件,在一个局域网内,是通过共享快照文件夹,让订阅服务器直接打开快照文件夹获取的,那么在

公网上,是无法进行的,解决方法2个:

1.强制订阅,很奇怪,强制订阅不需要订阅服务器去访问快照文件夹,发布服务器直接把数据通过sql的网络连接

发给了订阅服务器,如果数据库不大,单独的表都不大,工作的很好,但当一个表的快照文件上了1G,就很难让订阅

成功运行.

2.ftp方式,首先要在分发服务器上建立ftp,这个和sql没多大的关系,可以使用iis建立,也可以使用其他ftp工具

建立ftp服务器.sql复制直接支持ftp,在发布属性--快照位置中可以设置ftp的方式来传送快照文件给订阅服务器,

但当数据库很大时,同样存在问题,sql2000对ftp 的支持还是不好,当传送大的快照文件被中断后,不能自动重新

传送,人工重新让订阅工作后,会全部重新发送快照,不能续传快照文件.

针对这样情况,因此最好的方法,就是自己将快照文件下载到订阅服务器,然后在订阅--属性--快照文件位置,指定

自己下载回来的快照位置.并且还可以先将快照文件压缩再传送,压缩后6G文件变成了1.6G,大大节省时间,

sql直接ftp方式本来也支持压缩传送,但居然要求单独的文件不能超过2G,否则无法压缩.因此一切都靠自己

是最好的,自己下载快照文件,可以使用快车,迅雷之类,速度快,并且断线后完全自动重连,还断点续传,几个G的

快照一晚上就下好了.

对于发布服务器生成快照后,至订阅服务器获得全部快照成功前,之间产生的事务,sql会将他们保存起来,

直到订阅服务器开始应用快照文件,正常工作连接到分发服务器后,就会传给订阅服务器,因此不用担心

订阅服务器的会丢失下载快照文件这段时间内产生的事务.

而对于快照复制,这种方法可能不行,我们没测试,怀疑服务器会每次传送快照,都需要订阅服务器能够访问

快照文件夹.

http://blog.csdn.net/nutian/archive/2008/04/07/2256090.aspx

原文地址:https://www.cnblogs.com/cnlmjer/p/4099911.html