Contents

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