在大型网吧设计中,比较广泛采用的解决“瓶颈”的方案是读写分离。
读写分离把对CPU消耗严重的操作(CUD)与频繁的读取操作(Select)分离出来。然后通过事务发布、快照发布的方式发布订阅,实现多数据库间的同步,从而达到将读写请求均衡分布的效果。
SQL Server 2008 发布订阅实现数据同步(就只装了2008):
一、本地发布
首先,在“复制”-》“本地发布”-》点击“新建发布”
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E6%96%B0%E5%BB%BA%E5%8F%91%E5%B8%83.png)
点击下一步选择需要发布的数据对象与数据库
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E9%80%89%E6%8B%A9%E6%95%B0%E6%8D%AE%E5%BA%93.png)
依据向导在下一步选择发布类型,这里选择事务发布
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E9%80%89%E6%8B%A9%E7%B1%BB%E5%9E%8B.png)
其后选择发布的对象,选择需要发布的表与存储过程
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E9%80%89%E6%8B%A9%E5%AF%B9%E8%B1%A1.png)
再继续下一步选择快照代理,依据自己的需要选择方式。其后在代理安全性选择安全设置并填写信息。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E5%BF%AB%E7%85%A7%E4%BB%A3%E7%90%86.png)
然后继续下一步,最后输入发布名称完成向导。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E4%BB%A3%E7%90%86%E5%AE%89%E5%85%A8%E6%80%A7.png)
完成向导,所有详细信息通过则表示成功,如果出现快照代理报错问题,多少是没有开启服务。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E5%AE%8C%E6%88%90%E5%90%91%E5%AF%BC.png)
二、本地订阅
在此发布操作完成,其后是订阅操作,可以选择在本地订阅里右击选择“新建订阅”。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E5%88%9B%E5%BB%BA%E8%AE%A2%E9%98%85.png)
依据向导,查找对应的服务器,选择订阅的数据库(也就是需要同步的数据库)。如果没有可以选择新建数据库。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E9%80%89%E6%8B%A9%E8%AE%A2%E9%98%85%E6%95%B0%E6%8D%AE%E5%BA%93.png)
点击下一步,在分发代理安全性,点击与订阅服务器的链接的右边按钮。
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E5%88%86%E5%8F%91%E4%BB%A3%E7%90%86%E5%AE%89%E5%85%A8%E6%80%A7.png)
![](https://images.cnblogs.com/cnblogs_com/xoray007/%E5%88%86%E5%8F%91%E4%BB%A3%E7%90%86%E5%AE%89%E5%85%A8%E6%80%A72.png)
其后,在下一步选择“代理计划”为连续运行,“初始化时间”为立即。
这样,数据库的事务发布订阅就完成了,可以再发布的源数据库上的表添加或修改表数据信息,在几秒内所做操作就会同步到“订阅数据库”相应的表中。