[Microsoft SQL Server] 云生极致,如何利用华为云SQL SERVER 各版本,高性价比实现关键业务需求

1. 什么是SQL Server多版本

微软的SQL Server作为一款成熟的商业数据库,主要通过对功能的差异化限制上来区分为不同的版本。其中主要分为企业版、商务智能版、标准版、开发版、Web版,还有个免费版Express。华为云SQL SERVER 目前提供的版本有企业版、标准版、Web版。这些不同的版本对应企业不同的业务场景,可以比企业用户本地部署方式,更加灵活,更高性价比的方式实现自身的业务需求,下面将给大家详细介绍不同版本之间的具体区别

Enterprise

作为高级版本,SQL Server Enterprise 版提供了微软后端解决方案的所有高端功能,除了性能好,资源不受限制以外,它还能通过更多的手段帮助用户解决关键场景的瓶颈问题,并提供更多安全属性,同时集成了端到端的商业智能 ,可为关键任务工作负荷提供较高级别服务,支持最终用户访问深层数据。

Standard

SQL Server Standard 版提供了较全面的数据库管理功能和基本的商业智能服务,使部门和小型组织能够顺利运行其应用程序并支持将常用开发工具用于内部部署和云部署,有助于以最少的 IT 资源获得高效的数据库管理。

Web

Web版仅提供了基础了数据库管理功能,并没有集成微软的商业智能服务,但是对于从小规模扩展到大规模的资产伸缩,性价比和管理能力上来说,SQL Server Web 版本是一项低成本的选择

Developer

该版本主要用户企业开发环境基于 SQL Server 构建任意类型的应用程序。它包括 Enterprise 版的所有功能,但有许可限制,只能用作开发和测试系统,而不能用作生产服务器。SQL Server Developer 是开发和测试人员的理想之选。

Express

是入门级的免费数据库,主要为学习用途和构建小,微数据驱动应用程序。 它是独立软件供应商、开发人员和热衷于构建客户端应用程序的人员的最佳选择。

以上可以看到,作用于用户正式生产环境的只能是企业版、标准版和Web版本,而不同版本之间的成本差异十分巨大。但在之前用户本地部署的情况下我们很少去关注版本的差异和成本的开销,这将是是我们做云上架构设计或数据库选型需要考虑的主要问题。

2. SQL Server各版本引擎功能的差异与比较

SQL Server产品家族是非常丰富的,以下将以各引擎版本在华为云上的限制为视角,给用户展示最关注功能和性能的差异点。

资源限制:

 image.png

企业版目前在华为云上最大可选规格为60U512G,但实际上他能无限支持,后续我们将会基于企业版提供更高规格的实例,用户也可以直接给我们提出诉求。

标准版目前在华为云上最大可选规格为16U128G,但是在2016,2017版本上他能支持到24U128G,后续我们会将会开放该规格。

Web版目前华为云商最大可选规格为16U64G,同时这也是它能支持的最大规格。

从内存来看实例上最大内存的配置为该规格的85%,这点我们已经在每个发放的实例上面进行默认配置,同时如果该实例最大内存应用到了90%以上,请不要奇怪,同时也不会影响实例运行的性能。

从数据库大小来看,虽然官方给出的本地大小能达到524PB,但是作为关系型数据库,基本1-2TB的级别是最佳选择,超过这个量级后,不论是性能还是运维方面来考虑,都需要进行有效拆解。

高用性:

 image.png

从高可用性上来说,华为云SQL SERVER 2008R2,2012,2014,2016 采用的都是故障转移集群+镜像的混合方案,只能支持11备,不支持只读。而华为云SQL SERVER 2017采用微软最新的Always On高可用架构,支持115只读副本,同时也具有更高的扩展性,后续我们将基于该版本实现1主多备,跨Region容灾等行业更高等级的容灾方案。

Web版虽然不支持高可用模式,但是华为云在后台采用单机故障转移技术,能够保障用户的单机实例在完全不可用的情况下,快速重新拉起应用,该流程不依赖用户本地实例大小,拉起时间固定而高效,有效保障用户生产应用在极端情况的可用性。

在备份上,华为云采用阶段是备份,不依赖于数据库的压缩备份能力,所以Web版的数据全量备份并不会对性能造成较大影响,同时为了避免备份过程影响业务,请选择一个低锋的时间窗。

数据库版本:

华为云目前提供微软SQL SERVER各个版本的型号共用户选择,用户可以根据自身业务条件选择性价比高的方案,有效降低数据库使用成本。

image.png

用户本地如果是SQL SERVER 2000,2005,2008的老版本,可以通过DRS迁移服务备份还原到2008R22008R2是目前对20002005兼容性较好的版本。 

用户本地如果是2008R2及以上版本,推荐直接选用华为云上对应同版本进行迁移,也可以选用较高的版本微软的SQL SERVER数据库是能够完全向下兼容的。

但是如果想从高级别的版本向低级别的的版迁移,比如从企业版向标准版迁移,从20142012迁移,则需要通过微软的官方迁移助手(DMA)来进行辅助评估。详见官网地址:https://docs.microsoft.com/zh-cn/sql/dma/dma-overview?view=sql-server-2017

引擎高级功能:

华为云SQL SERVR为了满足用户在云上数据库的自动化运维诉求,帮助用户完成数据库的线上托管,在引擎功能上针对部分功能进行了禁用,具体如下: 

image.png

SQL SERVER的高级功能有很多,如R预言,内存数据库,文本索引,CLR等,这些功能大部分对版本和权限有较高要求,且对自动化运维存在一定的风险,同时该类特性主要针对特殊场景进行优化和使用,所以目前没有进行全网开放。但是如果用户需要在华为云 SQL SERVER服务上用到,可以通过工单的形式进行针对性有限开放使用。

3. 华为云 SQL Server多版本产品与选择

终于说到关键点了,为何我们要在华为云上支持SQL Server多版本

在这之前,友商在SQL Server数据库的支撑上通常只有几个简单的版本,例如:2008R2,2012。并且仅支持企业双机版:

1.这导致了用户的选择有限,且费用高昂。用户只能选择昂贵的企业版数据库,其实是一种巨大的损耗。

2.同时因为版本的不同,从线下迁移到线上会产生较大的改造成本,且两边版本不同对于线上线下的交互页存在阻塞。

3.并且SQL Server新版本总能开放更多功能,并针对标准版和Web版开放更多特性。比如2017的标准版最高规格就能达到24U128G了,同时开放了Always On的简单可用性组能力。

所以恰当的选择商用数据库的版本对于企业应用上云是最重要的关键事项。

用户如何有效的选择华为云 SQL Server版本?

通过多年来帮助企业上云沉淀经验,我们可以大致的通过以下场景进行选择。

如何选择版本

如果本地是20002005,2008SQL Server数据库目前兼容性最好的线上版本是2008R2

如果本地是2012,2014,2016或者2017的版本可以选择线上的相应版本,这样上线的备份文件可以直接下载到本地使用,方便线上线下交互使用,同时也最大的降低了应用改造的成本跟风险

但是如果线下是企业版,要迁移到线上的同版本的标准版或者Web版,可以通过微软官方的迁移助手(DMA)进行评估,如有需要也可以联系华为云技服人员提工单进行帮助。

如何选择高可用

华为云SQL Server2008R22016全部采用镜像的优化方案来进行实现,可以保证11备跨AZ部署,并且主备之间采用强一致同步方式,保证事务的一致性

华为云SQL Server 2017企业高可用版本采用微软最新Always On高可用价格,支持11备跨AZ部署,并支持创建5个只读副本,只读副本采用异步同步方式,保证主备节点性能不受影响,同时该架构提供更加灵活的部署方式,能够支持1主多备,跨Region创建只读节点,线上使用线下容灾等多种场景的打通

华为云单机版本,包括Web版采用华为云提供的单机故障转移容灾能力,能够保证用户的服务器在极端情况下快速进行恢复拉起,保证应用在固定时间内恢复可用性。

如何选择商用版本

SQL Server不同商用版本之间的成本差距高达10倍,所以选择合适的版本能够极大的节省使用成本。

企业版:如果你的服务是企业核心对外服务,使用量较大且存在不固定性,并且对于性能的基线诉求已经超过了16U128G,则需要考虑使用企业版,保证资源扩容上限,同时保证应用的在线容灾SLA,也能够最大化的使用微软提供的各种新特性解决关键性能问题。

标准版:如果你的服务是对内服务,且对应用有较高的在线SLA要求,同时对应使用的人数和性能瓶颈能够限制在16U128G以下,则推荐使用标准版。

Web版:其实在做云服务之前,企业内部从来都是选择企业版和标准版,从来没考虑过Web版,但是通过粗略的估算,企业版是标准版的2倍,而标准版是Web版的5倍,也就是说从纯成本考虑Web版是企业版的十分之一,跟开源数据库**相当!我们可以看到Web版能够支撑的资源上限是16U64G,并不比标准版差,那它为什么能这么便宜呢?原因有两点,1.Web版的高可用能力受到限制,基本上只能提供单机能力,但是在公有云上,我们可以通过单机故障转移和备份策略,最大限度的保证用户的业务和数据损失最低;2.Web版仅提供数据库引擎服务,微软BI体系里面的SSISSSRSSSAS服务都是不提供的,这也是Web版成本如此低廉的原因所在,而SQL Server服务目前在所有云数据库服务体系中都是默认不提供以上三大服务的。综上所诉,Web版真正是用户上云的性价比之王。

4. 华为云 SQL Server如何如何实现轻松上云

华为云SQL Server在设计之初的最关键的一个理念都是希望做到,用户线上线**验的一致性,它包括了

1.用户线下的业务应用能够不做任何改动直接迁移上云;

2.用户的开发和运维人员不需要做任何二次学习和适应,能够在开发和运维上完全套用本地脚本;

3.我们最大限度的开放商用数据库的功能和权限,让用户能够把SQL Server的商用价值体现到极致。

秉承这一个理念我们对比友商拥有更多不同功能设计和更好的线上体验

宽松的权限环境,并支持快速开启越权执行方案:

我们唯一不能做的就是讲sysadmin权限授予客户,因为这会导致用户在无意间破坏我们的自动化运维能力;同时我们回收了备份,还原,HA的相关操作权限,因为这三项功能主要有华为云来进行接管。

剩下的所有功能用户只需要通过工单提出需求,我们总能给出好的解决方案,让用户最低代价的获得适配通过,同时我们会将一些用户提到的或者常用的功能总结成为华为云独特的存储过程,授权让用户直接执行,从而快速的帮助客户解决关键场景,目前已经提供并对外开放的公共存储过程如下:

msdb.dbo.rds_rename_database:帮助用户给数据库改名

master.dbo.rds_read_errorlog:快速查阅数据库日志记录,比管控页上的好用

msdb.dbo.rds_dbcc_trace:帮助客户开启部分dbcc trace flag,没有的可以跟我们提哟

msdb.dbo.rds_cdc_db:帮助客户开启数据库变更捕获功能,开启后使用方式跟本地一致

 

rdsadmin.dbo.rds_remove_database_from_ag:把客户的数据库从Always On的可用性组中移除,目前只有2017版本可以用到,移除后才能删除和改名字哦

 

msdb.dbo.rds_copy_database:帮助客户快速的把数据库A复制出一个新的B出来

 

rdsadmin.dbo.rds_AUTHORIZATION_DatabaseForLogin:修改数据库的拥有者,修改完成后还有彩蛋哦

 

具体描述详见官方帮助文档:https://support.huaweicloud.com/usermanual-rds/rds_09_0007.html

 

以上我们可以感受到,华为云SQL Server能够通过这种方式灵活的帮助大家实现各种系统权限才有的能力,甚至帮助大家快速实现一些通用的功能函数。

方便灵活的迁移功能,帮助大家快速的迁移上云:

华为云提供完全免费的数据库迁移功能DRS,详见:https://support.huaweicloud.com/qs-drs/drs_online_migration.html

 

通过使用该数据库服务,用户能够通过SQL Server的数据库备份文件快速的在RDS实例上进行还原,该方案也是目前最迅捷,省事的迁移方式,同时华为云支持以日志文件为基础的增量还原能力,并同时支持一次上传多个备份文件同时进行还原,方便快捷又安全。

高度兼容微软生态系统,支持用户AD域控服务:

华为云SQL Server在国内率先支持用户在数据库实例上添加AD域控服务,能够100%跟本地域控服务进行集成,并且相互独立,基于该能力,我们能够高度兼容SharePoint,PowerBI,DynamicCRM等微软生态体系下的软件服务,让你能够安全放心的将服务100%托管于华为公有云上,享受云时代的高度灵活和便捷。

高度兼容各类三方软件集成上云:

华为云SQL Server能够100%兼容用户本地架构,100%兼容用户本地开发的应用,高度兼容市面上流行的三方工具,我们能够成功的让你本地很老的用友,金蝶,管家婆等国内流行软件,无缝的迁移到云上进行托管,极大的节省了你的本地运维成本。

高度自动化的托管能力:

数据库上云后,华为云SQL Server完全接管了你的备份,还原,高可用,监控四大能力,这些本地华需要大量时间和精力来实现,并持续运维的动作得到有效的释放后,能够让用户更多的聚焦业务和数据价值,在数据化时代放开手脚赢得先机。

更全面的性能优化:

华为云SQL Server符合欧洲安全标准,同时满足微软在OS和数据库上提出的所有最佳实践,我们在Windows做出了200多项基于安全,性能方便的设置;在SQL Server上有40多项最佳实践;同时基于用户购买的不同规格,对实例参数做出了最佳配比;更为关键的是华为云SQL Server选用的数据库硬件参数,最大化的为数据库场景服务,使得我们的实例在同规格情况下性能得到了越级强化。预知详情,请点击:https://support.huaweicloud.com/pwp-rds/rds_02_0003.html