SQLServer 主从技术包含:复制、日志传送、镜像、AlwaysOn。其中AlwaysOn是2012版本才增加的机制。
几种技术对比:
|
读写分离方案 |
实时同步 |
副本数据是否直接可读 |
副本数 |
最小粒度 |
副本建立索引 |
环境 |
缺点 |
|
镜像 |
是 |
否(需要开启快照,只读) |
1 |
库 |
否 |
域/非域(使用证书) |
在高安全模式下对主库性能有一定影响 |
|
日志传送 |
否 |
是(只读) |
N |
库 |
否 |
UNC方式可访问 |
副本库在做resotre时会断开已连接用户连接/可能影响常规日志备份 |
|
复制(发布订阅) |
是 |
是(读写,但写可能会产生数据不一致) |
N |
表(查询) |
是 |
域/非域 |
在主库上有大量DML操作时,对分发服务器会有一定影响,且订阅数据库可能有数据同步延迟 |
|
always on |
是 |
是(只读) |
4(sql 2012) 8(sql 2014) |
库 |
否 |
域 |
非域环境无法使用 |

读写分离
一般情况下,系统的所有数据表都在同一个数据库中,简单方便的提升性能的方式就是做读写分离,将非实时性数据同步到另外一个数据库中,在此数据库只进行读操作,从而提升系统的并发查询能力。
1.通过将“读”操作和“写”操作分离到不同的数据库服务器上,降低对主服务器的CPU、内存、存储、网络资源的争用;
2.主服务器的增删改进行时,不影响查询服务器的查询,降低阻塞的发生,提高了并发性;
3.在应用程序提交了报表请求、不合理的查询请求时,不会导致长时间的锁表;
4.建立容灾副本甚至实现异地容灾,在发生灾难时,可以减少数据的损失;
绝大部分的企业内部应用,可能不需要上图那么庞大的架构,一台主数据库服务器和一台查询服务器通常能满足读写分离的要求。而且应用程序调整起来非常方便:
1.在应用程序的配置文件中设置两个数据库连接字符串,一个指向主服务器,一个指向查询服务器;
2.增删改或者实时性查询使用指向主服务器的连接字符串;
3.允许非实时的查询及报表请求使用指向查询服务器的连接字符串。

本文详细介绍了SQLServer中的主从技术,包括复制、日志传送、镜像、AlwaysOn等,并对比了它们的特点和适用场景。此外还讨论了读写分离的方法及其优势。
1934

被折叠的 条评论
为什么被折叠?



