sql server几种读写分离方案对比
Contents
在生产环境中我们经常会遇到这种情况:
前端的oltp业务很繁忙,但是需要对这些运营数据进行olap,为了不影响前端正常业务,所以需要将数据库进行读写分离。
这里我将几种可以用来进行读写分离的方案总结一下,这里并不考虑数据库是否高可用,只针对读写分离场景,方案本身并无优劣可言,只看是否适合业务使用场景,所以只把几个方案的特点罗列出来,遇到具体的问题时按自己需求和环境综合考虑后再进行取舍
读写分离方案
实时同步
副本数据是否直接可读
副本数
最小粒度
副本建立索引
环境
缺点
镜像
是
否(需要开启快照,只读)
1
库
否
域/非域(使用证书)
在高安全模式下对主库性能有一定影响
log shipping
否
是(只读)
N
库
否
UNC方式可访问
副本库在做resotre时会断开已连接用户连接/可能影响常规日志备份
发布订阅
是
是(读写,但写可能会产生数据不一致)
N
表(查询)
是
域/非域
在主库上有大量DML操作时,对分发服务器会有一定影响,且订阅数据库可能有数据同步延迟
always on
是
是(只读)
4(sql 2012)
8(sql 2014)
库
否
域
非域环境无法使用
原文更精彩:http://www.cnblogs.com/liwei225/p/4572111.html