DBTwin数据库集群与AlwaysOn的比较
DBTwin集群工作原理图:
AlwaysON工作原理图:
DBTWIN集群具有‘的DBTWIN集群网关’,一般需要的Windows服务器来运行,可以有效应对大并发、高压力的系统,进行有效的、自动的读写分离和负载均衡。占用资源少,稳定、可靠。
SQL Server AlwaysON则没有类似DBTWIN集群网关这样一个部件,直接用两
台数据库构成数据的实时同步,本质上是数据库数据的一个‘实时备份工具’。
上面是两者之间的本质区别。 具体可以从下列几个方面来比较:
1. 负载均衡和读写分离:
DBTwin:完全自动。对客户端的查询自动实现负载均衡、读写分离、OLTP和OLAP的自动分离(这对提高数据库性能很关键)。对客户端代码二进制透明兼容,不需要修改客户端代码。
AlwaysON:手工实现。当客户端代码需要登陆数据库进行访问时,需要程序员手工指定“访问主副本(可读写)还是辅助副本(只读)”。对客户端代码不透明,需要修改客户端代码。
2. 数据同步时的延迟问题:
DBTwin:不存在数据延迟。两台机器之间的数据是“任何时刻完全实时同步一致的”,不存在数据延迟(数据之间的时间差)。
AlwaysON:存在数据延迟。有异步和同步两种模式。即使是同步模式,也存在数据的延迟问题(也就是说主副本的数据和辅助副本的数据两者之间存在一个1秒左右的时间差)。因此手工进行负载均衡的时候,开发人员必须注意这个时间差,否则就会存在数据逻辑错误的可能。
3. 装和维护的简易程度:
DBTwin:简单、代价低。DBTwin既可以在Windows工作组环境、也可以在Windows域环境下工作,安装和维护都很简单,例如:由于运行时候SQL数据库是处于简单模式,因此不会发生日志暴涨的情形。
AlwaysON:复杂、代价高。必须结合Windows故障转移群集和Windows域环境才能使用。安装配置麻烦,维护起来复杂,例如:由于运行时候SQL数据库是完整恢复模式,因此过一段时间,日志就会变得很大,当需要截断和收缩日志的时候,就需要停止AlwaysON,由此带来维护成本的增加。
4. 技术服务:
DBTwin:提供性能优化、设计、运维的咨询服务。
AlwaysON:靠客户自己解决。
2.
OLTP与OLAP的介绍
数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调
并发操作;数据量少,DML频繁,并行事务处理多,但是一般都很短。使用一般用途或事务处理模板。
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。数据量大,DML少。使用数据仓库模板。
(数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL)
OLTP与OLAP之间的比较:
下表列出了OLTP与OLAP之间的比较。