搜索
查看: 1534|: 0

SQL Server 上云最佳实践

[复制链接]

10

主题

0

回帖

76

积分

注册会员

积分
76
发表于 2018-4-28 15:42:09 | 显示全部楼层 |阅读模式
作者:华为云数据库高级项目经理/沈志鹏
沈志鹏:
在我开讲之前要先强调一下,刚才两个引擎所说的所有优点,SQL Server都有。开讲前问一句,有没有人用过SQL Server数据库的?很好用的人还挺多。SQL Server相信大家都比较了解,它是全球排名前三的关系型数据库殷勤之一,它强大的功能特性,以及微软带给大家的开发易用性,相信大家都印象深刻。同时,性能,稳定,安全也是全球公认Top3。
总结用户线下的这些优点,我们就会发现,所有在线下的这些优势,在上云之后就会变成它的一个痛点,总结起来有三个最痛的地方。
第一个痛点,用户在本地养成的使用习惯,以及他在自己本地的客户端上,微软提供给你的各种集成服务,在上云之后你都会面临到挑战,因为这时候大多数的SQL Server供应商告诉你,你上云之后权限会被阉割。
第二个痛点,你的功能也会被阉割。
这下面有一个截图,一个国内著名的友商,他2008企业版上云之后,它上面很多功能基本阉了一半,所以商用数据库上云实际上是一个减分项。
第三个痛点,线上和线下数据的交互体验也非常不好,相信用过友商的贝尔法你上传还原功能的,谁用谁知道。
最后我还要补充一点,微软授权的特色,你一次购买它会把SQL Server,ETL,IS和AS服务全部卖给你,但是我们上云之后发现,我们只能提供数据库引擎部分的给你以外,另外三个服务你只能自建。
所有面临这些问题,在华为云我们都帮你一一解决。
第一,我们要保证线上线下 体验的一致性。你在本地是怎么用SQL Server,我们会让你上线还是怎么用,怎么做到?在管控面上,华为关系型数据库的管理界面,我们做了很多的服务,包括大家最常用的实例管理,备份的还原,高可用和安全日志等等。这些我们精雕细琢出来的各种各样的流程,是为了保证大家上云之后帮助你们节省70%的运维成本。
同时开发人员在实例上的开发操作,怎么能有效跟我们的运维管理隔离起来,保证各种各样的操作不会对我们的流程进行破坏。
这时候我们提出一个全新的概念叫“主帐号的概念”,从原有的SQL Server权限体系里面,把开发帐号和管理权限有效的隔离起来,这个对用户是完全透明的,你们唯一改动是登陆SQL Server的时候,用我们提供给你们的主帐号就行,这个主帐号会覆盖你们99%的开发场景,剩下1%我也提供非常灵活的授权方式,保证你们任何应用及操作不会受到影响,我后面会有成功案例来举例。
第二,SQL Server上云之后,最关键的,大家也最想了解可靠性怎么实现。在本地有两种可靠性的部署方式,第一个是故障集群,二是镜像。这两种是大家在2012以下版本最常用的高可用方式。其中故障转移集群是本地服务用的最多,因为它好管理也好部署,但是它有两个缺陷,第一它是冷备的,所以停机时间迁移时间较长,而且可能会导致失败,这就不保证你应用的高可用了;第二对于数据的存储故障不支持,因为用的共享盘,如果磁盘坏了你的数据就丢了。第二种方式是镜像的方式,它可以解决刚才两个缺陷,因为它是热备的,并且是双存储,保证你磁盘挂了之后可以继续换到另外一个实例上继续使用,但是它有两个缺陷,第一它是数据库粒度的管理不支持实例级应用的切换,所以切换场景要在下面做很多工作。二是见证服务,它里面有一个仲裁服务器,这个服务它只做自动故障切换场景,不会做自动修复,这两个场景我们看到各有优劣。
同时微软2012推出新的Always on 这个特性,特点是它集成了SQL Server的集群,镜像和复制三大特性,满足了大家在实例级的管理上各种各样的高可用场景。但它有一个最大的缺点,它的技术依赖太多而且太贵,2014以下的版本只提供企业版使用,2016以上版本只提供简单的,也就是阉割版。并且不支持2008及以下版本。
通过对上面的总结和分析,华为自己做了一套新的高可用模式,它是基于镜像技术,融合了集成管理的特点,把两者结合到一起,有效解决了上面的四个缺陷,同时这个技术支持在2012以下的低版本使用,让大家用更低的成本实现更好的服务。
它是怎么实现的呢?我们重新设计了一套新的见证服务,没有用它原生的。它原来的见证服务不会自动修复各种各样的数据同步或者网络断连的故障,但是我们新见证服务,可以帮你修复95%以上的故障场景,剩下的场景你不用担心,我们有非常详细的告警措施,一旦你的实例出现各种各样的故障,我们会先于客户发现问题,同时华为这边各种高手帮你把这些问题快速解决掉。
同时它还有其他很多细节和优化的地方,但是时间受限,大家可以下来了解。
最后,我们灵活的实现了快速易用的数据迁移方式,现在的迁移方式有三种,一是你给钱我们帮你搞定,什么都不用管,而且是成本价。二是使用SQL Server原生导入导出,这种方式用途广,灵活度高,但是它有一个缺点,预验证不到位,你导入导出的时候,需要先行解决各种数据不同步,结构不同步的问题,这些问题通常会在导入导出的过程中给你报错导致你同步到一半失败。所以我们在云市场方面提供一个工具——ATTUNITY,这个工具现在是世界一流的数据导入导出工具,它的优点是在导入导出之前可以做一个预验证工作,避免你迁移工程中失败。
最后一个方式,就是今天的重点——数据同步服务DRS。
数据复制服务DRS
在这里SQL Server做了非常强大的离线迁移功能,只要把你本地的备份文件上传到华为云的网络磁盘OBS上,你就可以在同帐号下面,把你备份文件上面所有数据库还原到任何一个服务中的实例上面,这个操作流程是在所有友商最简便最方便的,并且我们还在不断对它进行升级和优化,后面将帮助大家实现更多的灵活迁移场景。
在线迁移服务不仅仅帮助你完成热迁移场景,还提供很多VIP服务,迁移过程中的进度,迁移完成之后的日志,还有就是迁移成功之后的数据一致性的校验,保证你在迁移了整个流程里面不会缺胳膊少腿,可以非常放心的使用。
RDS SQL Server可以让你的数据库变的更加美好,大家使用SQL Server商用数据库的时候,经过我们的分析和我个人的经验,我们大部分人仅能用到商业数据库10%的功能和特性,例如,DBCC的功能大家有没有用全过?数据库优化引擎,动态管理视图,审计,这些个功能大家了解的都不是很全民按。而这些特性都会在华为公有云SQL Server上面得到体现,我们会不断地进行深度服务化设计开发,更好,更简洁,更方便的让大家使用起来。所以你的数据库上华为云,不仅给你省事省心,更为了让你用的更好。
而且我们还帮你省成本。我们最终会推出三个版本,Web版,标准版和企业版,其中Web版的版本价格已经非常近似于MYSQL商业版的价格。
最后给大家介绍两个成功案例,这都是非常具有代表性的。
第一个是用友,它们去年和华为合作,成功实现了云ERP系统,U8Cloud,用友是中国老牌企业软件提供商,中国的很多中小企业和大企业都用他们的管理软件,现在他们的ERP产品要上云。这里面我们遇到三个问题,一是用友版本历史太长,可以追溯到接近二十年,还有基于2000架构的SQL Server数据库;用友不同版本有不同的权限要求,并且很多权限都是基于管理员权限实现的,这些权限同样存在较高潜在风险,会导致我们的运维流程被破坏。最终我们通过努力,帮助他实现新老版本迁移上云的能力;并且根据它的需要重新设计的了权限隔离级别,通过灵活授权的方式,在各个版本之间,它需要什么样我们给它什么样,线上线下所有应用不受任何阻塞。并提供更多的版本供选择,比如提Web版,标准版,让他根据不同客户需要灵活部署选择,有效降低它的管理成本和运营成本。
第二个说的是互联网上Top在线零食品牌,这个品牌是互联网新崛起的,在淘宝上非常火,双十一当天接近30亿的销售量,同时因为在线电商的瓶颈,销售额遇到天花板,他们开始往线下拓展,有一个全国每年千店计划,他们应用部署在华为云上,对我们提出了一个非常特殊的需求,他们要求全国营业网点数据每天实时在线传回总部,通过他们总部的BI进行在线运维分析,互联网企业他们两大命脉,一是流量一是数据。华为基于SQL Server原生复制订阅特性,实现了在线多对一同步功能,保证他们销售数据库的实时与可靠,他们现在已经开始拓展线下店铺,但是还没有达到每年千店的目标,所以后面这个场景还会面临更多的挑战有待考验。

现在到了提问环节

主持人:

SQL Server是微软商业数据库软件,华为把它云化过程中引入云计算的优势,添加到这个数据库上,解决了很多以前使用SQL Server用户的痛点,把以前好用不常用的功能集中在华为云上推荐给大家使用,大家现在现在有什么问题?

提问:

我们现在用过U8,刚才看用友和你们合作,我们原来用U8的时候,数据库搭建不知道怎么回事,每次用的时候非常卡,它的录单,录一些数据过程当中卡的非常厉害,这个有没有一个解决办法?

现在我们用的U8是电脑的,将来我们自己要做一个系统,不用它这个,自己从你们这搭建一个数据库,能不能做手机APP端,你们说的云盘和它APP和数据库怎么做协同同步的东西?

沈志鹏:

第一个问题我不好正面回答,用友的后台怎么实现,有一些省成本的方案就不好细说,这是他们的产品,他们的产品设计中会有很多规格和模式可选,里面有比较贵的,有比较便宜的,支持单用户和多用户挤到一起,你可以问下用友的客服,看它怎么说。

提问:

我们想自己搭建一个。想和手机APP端结合起来,现在光是一个电脑端,用的不方便,现在APP用的还是挺多,想实现一个APP端。

主持人:

这个场景很适合云计算来做。

提问:

我们数据库有自恢复功能也有故障功能,你们最短时间内恢复故障和处理速度多长时间?

沈志鹏:

这个问题问的好,但是这个问题没有一个标准答案,我们已经做到了,SQL Server在故障的时候对你应用高可用迁移的最快速度,但是我们这个速度的瓶颈取决于你们自己业务场景。我们迁移的时候为了保证数据不丢失,会把所有的事务进行回滚再迁移,所以当你数据库发生故障的时候,这时它上面有大型运行的事务正好跑到一半,我们一定会把它清理干净再迁移,如果数据库刚好比较干净,只是应用挂了,或者一些事务像注册,插数据这种比较简单直接的,这个时候就会很快,这个会到什么水平?应该在1分钟以内。

提问:

我问的问题可能和技术上没有多大的关系,我们SQL Server和微软上的SQL Server有什么区别?

沈志鹏:

这个问题问的太好了,这也是一个比较大的问题,几句话说不清楚,但是我可以简单介绍下它的渊源,SQL Server和Azure SQL 是两个产品,是以Server SERVER 2008 原生代码演进而来,它的设计初衷就是实现一款云原生的在线数据库产品。

SQL Azure 现在基本已经实现了差不多85%以上SQL Server数据库引擎的原生特性和服务功能,它性能实现方式和计算指标跟传统不一样,它的性能计算摆脱了原来的CPU,内存,IOPS计算方法,完全引擎流量来收费,你选择SQL Azure的时候好好分析一下它跟传统不一样的场景。这两个产品目前来说没有太大的优劣,可以说是一个母亲的两个儿子。





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 18:31 , Processed in 0.142328 second(s), 25 queries .

快速回复 返回顶部 返回列表