sql server几种读写分离方案的比较
2015-06-12 17:04
260 查看
在生产环境中我们经常会遇到这种情况:
前端的oltp业务很繁忙,但是需要对这些运营数据进行olap,为了不影响前端正常业务,所以需要将数据库进行读写分离。
这里我将几种可以用来进行读写分离的方案总结一下,这里并不考虑数据库是否高可用,只针对读写分离场景,方案本身并无优劣可言,只看是否适合业务使用场景,所以只把几个方案的特点罗列出来,遇到具体的问题时按自己需求和环境综合考虑后再进行取舍
前端的oltp业务很繁忙,但是需要对这些运营数据进行olap,为了不影响前端正常业务,所以需要将数据库进行读写分离。
这里我将几种可以用来进行读写分离的方案总结一下,这里并不考虑数据库是否高可用,只针对读写分离场景,方案本身并无优劣可言,只看是否适合业务使用场景,所以只把几个方案的特点罗列出来,遇到具体的问题时按自己需求和环境综合考虑后再进行取舍
读写分离方案 | 实时同步 | 副本数据是否直接可读 | 副本数 | 最小粒度 | 副本建立索引 | 环境 | 缺点 |
镜像 | 是 | 否(需要开启快照,只读) | 1 | 库 | 否 | 域/非域(使用证书) | 在高安全模式下对主库 性能有一定影响 |
log shipping | 否 | 是(只读) | N | 库 | 否 | UNC方式可访问 | 副本库在做resotre时会断开已连接用户连接/可能影响常规日志备份 |
发布订阅 | 是 | 是(读写,但写可能会产生数据不一致) | N | 表(查询) | 是 | 域/非域 | 在主库上有大量DML操作时,对分发服务器会有一定影响,且订阅数据库可能有数据同步延迟 |
always on | 是 | 是(只读) | 4(sql 2012) 8(sql 2014) | 库 | 否 | 域 | 非域环境无法使用 |
相关文章推荐
- (DBA之路【八】)关于show variables那些参数的故事
- 数据库01-sqlite3 (了解)
- mysql修改密码
- oracle bulk collect is table of 批量操作
- 从运维角度浅谈MySQL数据库优化
- SQL Server2005 2000导入导出不丢主键和视图的方法
- MariaDB数据类型
- iReport数据库连接找不到驱动
- oracle权限控制
- sql sever数据库释放内存
- MySQL 中的自定义函数和存储过程 简单实例
- oracle复制表结果与数据,以及创建临时表
- Redis集群部署(二)
- mysql存储过程注释
- Oracle 格式化数字
- Oracle 数据泵使用详解
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- redis的小结
- MongoDB管道聚合各阶段示例
- IOS开发模块总结(一)本地数据存储3 sqlite(FMDB开源代码对sqlite的封装)