背景

数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为“IT的心脏”。因此,让数据库安全、稳定、高效地运行已经成为IT管理者必须要面对的问题。数据库在底层架构层面需要满足以下几点建设要求:

安全和可靠不能因为服务器的软硬件故障导致数据丢失和业务中断;

容灾:多数据中心间的数据库同步,某一个数据中心出现故障后,可以在另一个数据中心快速拉起业务;

读写分离(报表分离):把接口程序、报表程序、集成平台数据抽取、大数据运算等高消耗的查询语句分离到备机执行,从而避免对主服务器的性能消耗以及造成的阻塞和死锁;

负载均衡需要多台服务器同时负载并发请求,降低单台服务器的压力,提升系统整体性能;

弹性扩展通过增加服务器的方式应对数据量或者访问量增加带来的性能瓶颈。

AlwaysOn

AlwaysOn是SQL Server 从2012版本开始推出的多个实例间同步数据库的技术,借助Windows失败转群集实现高可用,主副本出现故障后,自动切换到辅助副本。辅助副本中数据库都是可以查询的,可用来实现读写分离、负载均衡等功能。

AlwaysOn中每个副本的SQL Server服务独立安装,使用每个副本自己存储介质内的数据库文件。在主副本写入数据时会产生日志,AlwaysOn捕获并传输日志到其他副本,并通过REDO技术完成日志到数据的转换,从而实现各副本中数据的一致性。有同步提交和异步提交两种同步方式,不同的副本可以使用不同的同步方式。

Moebius(莫比斯)

Moebius数据库多活集群是格瑞趋势为SQL Server数据库研发的能够同时满足可用性、数据安全、容灾、读写分离、负载均衡的一站式多活集群。集群的名字取自Moebius环,寓意无限扩展。

Moebius采用“share nothing”架构,每个节点的SQL Server服务独立安装,使用每个服务器自己存储介质内的数据库文件。不基于共享存储设备,也不基于磁盘镜像等功能,通过SQL Server的日志同步技术实现各节点中数据的一致性。在主节点写入数据时会产生日志,Moebius捕获并传输日志到其他节点,并通过REDO技术把日志转换成数据。因此每个节点的SQL Server服务都是启动的,数据都是“活”的。Moebius有实时和准实时两种同步方式,不同的节点可以使用不同的同步方式。

Moebius的调度引擎支持连接级和SQL语句级两种调度方式,通过规则的配置,在不改动或者少改动应用程序的前提下,透明的实现读写分离、负载均衡。

封装

AlwaysOn依赖Windows失败转移群集(WSFC),WSFC又依赖很多Windows组件,概念多而且晦涩,还有很多隐蔽的参数,所以安装过程比较复杂,稍有不慎就会为以后的运维留下隐患,因此需要专业的DBA。

Moebius集成了格瑞趋势数百次安装经验,对AlwaysOn的安装过程进行了全面的封装,安装过程中自动配置WSFC等相关Windows功能组件和参数的最佳实践配置, 降低了安装过程中的复杂度,减少对专业DBA的依赖。

增强

登录账号

AlwaysOn不支持登录账号(属性、密码、角色、权限等)的同步,需要DBA手动维护。在实践过程中发现,辅助节点切换成主节点时,因为没有账号、密码不对、权限不对、数据库映射关系不对等导致业务系统无法正常使用的情况非常普遍,靠人工的方式保障每个节点上登录账号的一致性是很困难的。还有一个情况,很多DBA在同步账号的时候,在主节点生成脚本然后在辅助节点上执行,这种方式创建的账号SID在各节点间不一致,导致节点切换时数据库和账号映射关系不对,业务系统无法正常使用。

Moebius支持对登录账号创建、更改、删除整个生命周期的自动同步,保障登录账号在各个节点间的一致性。

作业

AlwaysOn不支持作业的同步,辅助节点切换成主节点时,因为没有作业、作业的内容不对、没有及时开启等原因导致业务数据混乱等问题。

Moebius支持对作业创建、更改、删除整个生命周期的自动同步,保障作业在各个节点间的一致性。而且自动根据节点的状态控制作业的运行状态,主节点的作业是运行的,辅助节点的作业是禁止的,防止作业在多个节点上重复执行。

链接服务器

AlwaysOn不支持链接服务器的同步,Moebius支持对链接服务器创建、更改、删除整个生命周期的自动同步,保障链接服务器在各个节点间的一致性。

系统数据库对象

很多业务系统会在系统库中存储对象,例如在master库中保存注册码的表、model库存储作为模板的对象等。这些对象不同步同样会造成业务系统无法正常使用。

Moebius支持对系统库中的表(结构和数据)、存储过程、视图、函数等常用对象的同步,可以对系统库名称,对象类型、对象名称等多个维度进行灵活的配置。

CDC

CDC(变更数据捕获)是SQL Server捕获数据变更的技术,把表的变更记录(INSERT、UPDATE、DELETE、DDL)保存在系统表中,供业务使用,第三方数据增量同步工具(DSG、GoldenGate等)都是封装的CDC,很多厂商的集成平台或者报表平台也是通过CDC实现增量数据的抽取。

AlwaysOn不支持CDC的同步,当辅助节点切换成主节点时,CDC会停止,DBA要通过复杂的操作才能让CDC继续。实践中发现,在AlwaysOn中使用CDC对DBA是个非常大的困扰,觉大多数DBA都不清楚CDC的实现原理,操作不好,最终只能选择重新初始化。

Moebius对CDC做了全面的封装,节点切换时,会自动在新的主节点上开启CDC,并且无缝衔接上次的捕获, 极大的方便了CDC的使用。

读写分离

在AlwaysOn下实现读写分离,应用程序建立数据库连接时使用的数据库连接字符串的配置中加上“ApplicationIntent=ReadOnly”关键词,SQL Server把该连接建立到AlwaysOn的辅助节点执行。前提是该连接里面所有的SQL语句都必须是只读的,如果有更新的SQL语句,就会报错。也就是说AlwaysOn的读写分离是连接级的,不是语句级的。很多人认为只要在数据库连接串中加好这个关键词,不需要改动应用程序就能实现读写分离了,这是个非常大的误区。应用程序要使用两个数据库连接串,一个读写的,一个只读的,确定是只读的功能使用这个只读的字符串建立连接。这个改造过程对于自己研发的功能来说是容易的,如果是购买的产品,难度就可想而知了。Moebius的调度引擎支持语句级的解析,只需要修改应用程序的数据库连接串让应用程序连接到Moebius集群的端口,然后在Moebius中配置基于语句特征的相关规则就可以在不修改或者少修改应用程序的前提下实现读写分离,Moebius支持SQL语句、登录名、客户端主机名、应用程序名等多个维度进行规则的配置。

负载均衡

AlwaysOn从SQL Server 2016开始才支持负载均衡的功能,而且和读写分离的要求一样,需要应用程序的修改。在Moebius中,在读写分离的基础上启用负载均衡选项即可,而且没有SQL Server版本的限制。

 
北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

Moebius兼容AlwaysOn的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  2. 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  3. AlwaysOn 同步时间的测试

    背景 <SQL Server 2012实施与管理实战指南>中指AlwaysON同步过程如下: 任何一个SQL Server里都有个叫Log Writer的线程,当任何一个SQL用户提交一个 ...

  4. (转)大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  5. SQL Server 2012 AlwaysOn集群配置指南

    1. AlwaysOn介绍 AlwaysOn是SQL Server 2012提供的全新综合.灵活.高效经济的高可用性和灾难恢复解决方案.它整合了镜像和群集的功能,基于OS 故障转移群集(Windows ...

  6. Moebius集群:SQL Server一站式数据平台

    一.Moebius集群的架构及原理 1.无共享磁盘架构 Moebius集群采用无共享磁盘架构设计,各个机器可以不连接一个共享的设备,数据可以存储在每个机器自己的存储介质中.这样每个机器就不需要硬件上的 ...

  7. SQL Server 负载均衡集群方案之Moebius

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  8. Moebius for SQLServer负载均衡

    搞数据库的都知道:在Oracle上有RAC集群,MySQL也有对应的方案,而SQL Server上直到SQL Server 2012版本的AlwaysOn到来,微软都没有提供一个负载均衡方案,在网上看 ...

  9. 从0开始搭建SQL Server 2012 AlwaysOn 第一篇(AD域与DNS)

    随着业务发展,公司需要提高数据安全与性能需求,所以需要对新技术预研(先采坑),做技术积累: 了解相关AlwaysOn 故障转移集群(热备),数据路由(ICX),Moebius(莫比斯数据路由) 决定测 ...

  10. 阿里云重磅发布RDS for SQL Server AlwaysOn集群版

    2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...

随机推荐

  1. <连城诀>剧情大纲+随笔

    --剧情还是偷个懒,从百度百科抄袭一下,红色字体为补充和说明   在湘西沅陵南郊的麻溪乡下,三间小屋之前的晒谷场上,隐居此处多年的剑术名家"铁索横江"戚长发,看着徒弟狄云与女儿戚芳 ...

  2. AX2012 使用HTML自定义popup内样式

    在Class Box下新增方法如下: public client static DialogButton yesNoHTML( str _text, DialogButton _defaultButt ...

  3. 【jinja2】Python根据模板生成HTML文件并加载进QWebEngineView

    前言 继前文Python在PyQt5中使用ECharts绘制图表中在Python程序中添加网页展示ECharts图表,和Python使用QWebEngineView时报错Uncaught Refere ...

  4. #Python #微信 #消息防撤回 Python实现微信防撤回

    微信(WeChat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿.在此期间微信也推出了不少的功能如:"摇一摇"."漂流 ...

  5. MyBatis-Plus数据源失效找不到

    记一次项目排查问题项目应用了MyBatis-Plus多数据源配置但是在执行定时任务时发现没达到想要的结果于是查询日志分析问题最终发现问题所在多数据源注解会合事务注解冲突导致失效@DS("&q ...

  6. 2月27日Android开发学习

    App工程目录结构 App工程分为两个层次,第一个层次是项目,另一个层次是模块. 模块依附于项目,每个项目至少有一个模块.一般而言的"编译运行App",指的是运行某一模块,而非运行 ...

  7. 需要改动node_modules,并且别人也可以同步,插件 patch-package

    patch-package 转自:https://www.cnblogs.com/lovewhatIlove/p/15724812.html 1.简介:有个功能需要修改node_modules里面的代 ...

  8. 在uni-app中调用高德地图去导航

    1.判断一下是不是在微信环境 2.微信环境调用微信自带的地图导航 3.h5环境跳转去高德地图 guide() { let self = this; console.log("self.lat ...

  9. 【confluence】jira issue宏中如何把优先级图标转义成文字

    在confluece中,关于表格处理有2个非常好的插件. Table Filter and Charts for Confluence     (插件文档:https://docs.stiltsoft ...

  10. RF射频的定义和原理

    转自:http://www.saiyuan.net/portal/article/index/id/119/cid/28.html RF射频的定义和原理 定义 简称RF射频就是射频电流,它是一种高频交 ...