日期:2014-05-17  浏览次数:20374 次

SQLSERVER的读写分离
两台服务器,同一个机房内,目前数据库版本都是SQLSERVER2008,一台作为主服务器,一台作为备份服务器,想两台服务器实时同步,业务部分使用主服务器,一些繁琐的查询,统计操作使用备份服务器。要实现这个功能,有哪几种方案,最优方案是什么。
如果有湖南地区的高手可以当面解决类似的问题更好,重酬,站内短信联系。
SQL?Server 读写分离 数据库 服务器

------解决方案--------------------
两个数据库结构都是一模一样的吧?
若是的话采用发布、订阅的方式最好了
------解决方案--------------------
如果要做到两台服务器实时同步,就不可能做到读写分离.

因為实时同步=写.
------解决方案--------------------
引用:
两台服务器,同一个机房内,目前数据库版本都是SQLSERVER2008,一台作为主服务器,一台作为备份服务器,想两台服务器实时同步,业务部分使用主服务器,一些繁琐的查询,统计操作使用备份服务器。要实现这个功能,有哪几种方案,最优方案是什么。
如果有湖南地区的高手可以当面解决类似的问题更好,重酬,站内短信联系。


sql server 的高可用部分 说的就是这种类似的需求 。但是在实际使用中,要考虑性能问题,lz设定的前提是读写在物理上分离。 这种在一定程度上就需要承担部分数据的不一致(秒级差异也是差异),实际使用中碰到的 ,基本都可以有一定时间的差异(可以理解为很多标准量具中的公差),使用上是没有什么问题的。 

相关说明参考 http://msdn.microsoft.com/zh-cn/library/ms190202.aspx
------解决方案--------------------
如果是2008的话,根据你的要求,如果不借助第三方软件,好像只有replication也就是复制技术来实现是最好的。主服务器进行发布,另外一台服务器进行订阅,用其中的事务复制可以实现实时同步数据,然后对于报表功能,可以在连接字符串或者中间层写死指向订阅服务器,而其他日常的操作就指向主服务器,这样理论上可以分摊压力。如果有打算升级到2012,alwayson是很不错的读写分离功能。
------解决方案--------------------
除了复制,及2012的alwayson,其它的技术的缺点基本上都达不到要求。详细分析请参考:
http://www.cnblogs.com/DBFocus/archive/2010/08/04/1791668.html
建议用复制,但复制带来的延迟,楼主要事先考虑清楚。如果硬件充裕,可按下面配置
#1.发布服务器(已有)
#2.分发服务器(单独,且与发布内网相连)
#3.只读服务器(单独,且与分发内网相连)

------解决方案--------------------
引用:
如果是2008的话,根据你的要求,如果不借助第三方软件,好像只有replication也就是复制技术来实现是最好的。主服务器进行发布,另外一台服务器进行订阅,用其中的事务复制可以实现实时同步数据,然后对于报表功能,可以在连接字符串或者中间层写死指向订阅服务器,而其他日常的操作就指向主服务器,这样理论上可以分摊压力。如果有打算升级到2012,alwayson是很不错的读写分离功能。


用发布和订阅实现同步。
补充:在程序访问端做两条访问数据库连接,一条是写数据就连接主服务器,另一条统计查询的就连接服务备份服务器。