如何在Windows Azure VM上的SQL Server和Windows Azure SQL Database两者中做出选择

作者信息:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作。

简介

把SQL 数据托管在哪里,Windows Azure 为您提供了两个选择,VM上的SQL Server(以下简称 SQL/VM)和 Windows Azure SQL 数据库(以下简称 SQL DB)。SQL/VM 和 SQL DB 都生成自单一代码库,并且在云部署时都有其自己的长度。本文我们将借鉴之前的博客SQL Server in Windows Azure Virtual Machine vs. SQL Database,并提供简单的决策树来帮助您为您的应用程序或服务在Windows Azure上选择最佳的 SQL 数据库解决方案。Windows Azure SQL DB 作为 Microsoft 平台即服务 (PaaS) 投入生产已经好几年了。Windows Azure Virtual Machine上的SQL Server 作为Microsoft基础设施即服务(IaaS) 提供集成的数据库服务器实例,可作为一组预配好的平台图像。目前Public Preview提供Windows Azure Virtual Machine。

本文的重点是 SQL Engine,而不是 BI 和reporting。之后将详细探讨如何在BI和Reporting中做出选择。

为什么选择 Azure 来托管SQL ?

Windows Azure 高度集成了跨 Microsoft 堆栈,例如像SharePoint 和Active Directory这样的应用程序,同时,通过统一开发经验来整合不同部署模块的授权。这些集成经过了和Microsoft 产品一起协作的大量测试。它还提供了很强的互操作性。除了支持多种操作系统包括 Linux外, Windows Azure VMs 还基于标准 VHD 格式,使之容易的在Azure环境中导入和导出它们。

如此的一体化、 标准化和互操作性使得Azure成为理想的云环境来运行SQL Server,同时还为Microsoft 资产从传统上的户内平台到私有云以及公共云,提供了衔接一致的体验。

SQL/VM 和 SQL DB的不断创新不仅使管理已有应用程序或服务的综合TCO降低,也为新一代的云应用程序或服务提供了高效的平台。此外,它还能够搭配已有及新的应用程序在同一托管服务上,也能集合户内应用程序和网络成为混合模型从而提供了极大的灵活性。

选择正确的数据库解决方案

Microsoft 数据库产品适用的范围包括物理户内机、私有云环境、 第三方托管私有云环境和公共云。它提供了一系列的 SQL Server 产品使之成为一个既连贯又灵活的开放数据平台。

每一种产品都可以按您对基础设施的控制水平,实现数据库的整合和自动化程度的成本效益做出区分。当然也有其他的方面加以区分,例如兼容性,我们将在下面的决策树中详细介绍。

本篇文章侧重于 SQL/VM 和 SQL DB之间的对比,并提供了选择数据库服务方法,根据该方法您可以选择与您期望的成本效率和控制相符的数据库服务。

决策树

在此决策树中,请考量以下几项应用程序或服务具体决定点:

  1. 新的或现有的应用程序或服务:通常迁移现有应用程序("升级和转化")比新的应用程序更需要模拟户内应用程序操作,新应用程序一般没有那个必要。
  2. 应用程序或服务要求:此决定点检查任何兼容性、 网络或可能需要在 VM 中的 SQL Server 的安全要求。详细信息请参阅SQL Server in Windows Azure Virtual Machine vs. SQL Database和 MSDN 文章关于SQL DB和 SQL/VM 功能兼容性差异的完整列表Guidelines and Limitations (Windows Azure SQL Database)
  3. 大规模经济(重新)架构/分区的意愿:此决定点检查是否使用SQL DB 扩展技术例如Federations in Windows Azure SQL Database来实现弹性和扩展需求。想要充分利用SQL DB大规模的经济和弹性带来的益处,通常需要一定程度的重新架构 (请参见SQL DB扩展注意事项在这里).
  4. 数据库大小: SQL 数据库版本是有大小限制的,目前单个 Azure SQL DB最大为 150 GB。然而 SQL/VM,目前最大 VM 大小是 ExtraLarge (8 CPU 内核、 14 GB RAM 和高达 16 TB 的磁盘空间)。VM 大小的详细信息请参阅 MSDN 文章How to Configure Virtual Machine Sizes

 

其他注意事项

除了这些高级别决定点之外,还有一些较低级别的设计标准和大小期望,也会影响数据库的解决方案,例如一个新的应用程序可能需要一特殊功能而是SQL DB所不具备的。此决策树使用的框架只是提供一个简单的方法来帮您快速评估您的应用程序需求。

一个重要的考量是 IaaS 与 PaaS 数据库解决方案所提供的 SLA。例如在 IaaS,Windows Azure所有的 VM 存储都有 SLA。当 Windows Azure VM 可用时 一般两个或多个实例的 99.95%的Windows Azure VM-level SLA会在一个可用集中。在 SQL DB中有数据库级可用性 SLA。更多详细信息,请参阅http://www.windowsazure.com/en-us/support/legal/sla/。SLA 所不覆盖的操作都需要用户自己来完成。

应用程序或服务不需非要在 IaaS 和 PaaS 两者之间做出选择。混合型的应用程序模式包括 PaaS 和 IaaS 服务两者 (例如,在 Azure上的 SQL DB和 SQL/VM),它代表了一种现实可能,就是让应用程序开发和部署允许应用程序在VMs上运行组件,这需要从户内迁移数据时,实现兼容和控制如 BI 或应用程序,并且使用 SQL DB中的数据库把DBA 和数据库的成本降到最低。

结论

Windows Azure SQL 数据库和 Windows Azure 虚拟机上运行的 SQL Server都是不错的方法来实现不同的数据库应用程序需求。

总之,如果符合下面条件,选择 SQL/VM:

  • 您需要与户内 SQL Server 完全兼容。
  • 您希望用最小改动来实现现有的应用程序。
  • 您需要基础设施层隔离。
  • 您的应用程序或服务专为"计划数据库表"设计(AKA 扩展)。

如果符合下面条件,选择 SQL DB:

  • 您正在基于应用程序创建净新增云。
  • 您想要减少数据库管理的成本并把重点放在应用程序层。
  • 您需要数据库层的隔离。
  • 您的应用程序或服务专为"无计划也无限制数据库表"设计 (通过扩展的弹性)。

引用

Gregory Leake’s blog post on SQL Server in Windows Azure Virtual Machine vs. SQL Database:http://blogs.msdn.com/b/windowsazure/archive/2012/06/26/data-series-sql-server-in-windows-azure-virtual-machine-vs-sql-database.aspx

Guidelines and Limitations (Windows Azure SQL Database)

SQL Server Virtualization support statement covering virtualized environments beyond Hyper-V:http://support.microsoft.com/kb/956893

 

本文翻译自: http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in-windows-azure-vm-amp-windows-azure-sql-database.aspx

转载于:https://www.cnblogs.com/new0801/archive/2013/02/21/6176453.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC 控件布局

在MFC要自己控制控件随窗口变化而改变其大小 以下提供一个解决办法,easysize.h来自codeproject /Files/pbreak/EasySize.rar 第一:添加消息映射 afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnSizing(UINT fwSide, LPRECT pRect); ON_WM_SIZE()…

c语言离散卷积编程,实验一 离散卷积的C语言编程.ppt

实验一 离散卷积的C语言编程.ppt实验一 离散卷积的C语言编程实验 DSP实验室 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号; 2 掌握卷积的定义和计算方法; 3 掌握在计算机中生成以及绘制信号序列图的方法。 实验原理 离散时间系统中几种…

graphviz 画决策树_数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris

数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris加载数据集数据特征训练随机森林调参工程师结尾数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris在上一篇博客,我们介绍了决策树的一些知识。如果对…

设计模式UML图

1.简单工厂模式 2.工厂模式 工厂模式与简单工厂模式的不同在于,每个操作类都有自己的工厂,而且把逻辑判断交给了客户端,而简单工厂的逻辑判断在工厂类里边,当增加新的操作类时,简单工厂需要修改工厂类,而工…

Android小項目之--ListView與ListAcitivity完善論壇管理效果2(附源碼)

ListAcitivity 类型布局用来配置应用程序,主要为显示菜单列表、列表明细项目,假如让程序继承 ListActivity ,可以实现以下的方法: getListAdapter()  取得目前列表项目的 AdaptergetListView()  取得目前列表的 ViewgetSelectedItemId() …

c语言编辑输出后汉字乱码,为什么这个程序会输出汉字乱码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include #include #include int main(void){int correct false;char anothergame *Y*;int counter 0;int sequencelength 0;time_t seed 0;int number 0;time_t now 0;int time_taken0;int i1;printf(&qu…

Ctrl+F5不能使用的问题

axure中F5生成整个原型,CtrlF5是生成当前的单个页面。 如果碰到CtrlF5不能生成的情况,则表明当前的页面处在母版页,动态面板的状态页,或者在生成页面中,没有勾选生成所有页面转载于:https://www.cnblogs.com/zlhayden/…

docker 覆盖 entrypoint_最佳实践,Dockerfile中ENTRYPOINT与CMD指令的区别与建议

通过本文你会获得什么熟悉Dockerfile中ENTRYPOINT和CMD指令之间的区别,以及在实际项目中的使用建议。1 - 开始前准备首先你要有个docker环境,以下实验基于:docker 18.09,以及alpine:3.8镜像。下载基础镜像docker pull alpine:3.82…

《修改winXP pro安装界面》 、《修改winXP pro开机画面》、《修改winXP pro登录画面》...

一、《修改winXP pro安装界面》 ---------------------------- 安装界面----也就是安装复制完系统文件,重启进入的安装界面,这个界面停留的时间较长,值得一改以 供欣赏,复制完winXP pro的安装文件到硬盘上后,点击“i38…

单实例单向rac搭建gg流

1、 m1 m2 m3 source端 2、 在m1 m2 m3 上 /etc/hosts 172.16.10.140 source source上 添加 #public network 172.16.15.101 m1 172.16.15.102 m2 172.16.15.103 m3 #private network 10.11.11.1 m1-pri 10.11.11.2 m2-pri 10.11.11.3 m3-pri 29 #VIP network 172.16.15.1…

int0低电平触发c语言,单片机中断的解释.ppt

单片机中断的解释在CPU和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。 中断 CPU和外设并行工作,当外设数据准备好( 或有某种突发事件发生)时向CP…

python自动登录教程_Python 实现自动登录+点击+滑动验证功能

需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名密码登录,然后定位用户名输入框,和密码输入框,输入后 点击登陆 弹…

js 字符ascii码转换函数

字符转ascii码&#xff1a;用charCodeAt();ascii码砖字符&#xff1a;用fromCharCode(); 看一个小例子<script>str"A";code str.charCodeAt(); str2 String.fromCharCode(code);str3 String.fromCharCode(0x6026);document.write(code<br />);documen…

【生活智慧】005.信守诺言的约束

《塔木德》指出&#xff0c;信守诺言的约束&#xff0c;重视集体的力量&#xff0c;永远怀着必胜的信念的等&#xff0c;都有助于一个人获得成功。 下面的故事生动地诠释了这些使很多犹太人受益一生的原则。 丛林中走出了四个男人&#xff0c;他们蓬头垢面&#xff0c;衣衫褴褛…

python c 语言接口,## 人生苦短我用python[0x08] 使用ctypes调用c语言接口 ##

文章内容为原创&#xff0c;欢迎转载请注明出处作者&#xff1a; EflyPro->晦明禅师1.背景python作为解析语言大规模应用在各个领域&#xff0c;c语言作为系统级别的语言广泛应用在基础&#xff0c;系统&#xff0c;网络等底层服务当中&#xff0c;可以说python和c语言之间各…

2月份.xyz域名总量10强:西数称王 注册量破百万

IDC评述网&#xff08;idcps.com&#xff09;02月25日报道&#xff1a;根据ntldstats.com发布的最新数据显示&#xff0c;截止至2016年2月24日17时&#xff0c;国内外.xyz域名总量十强名单顺序&#xff0c;与上期1月28日对比&#xff0c;无任何变化。最值得一提的是&#xff0c…

flash作业_一起作业,你很智障!

电子作业现在貌似很流行&#xff0c;在很多学校都有&#xff0c;具体的利弊就不再赘述&#xff0c;可以点击前面的超链接跳转到某度百科自己看。今天只是忍不住怕盘点下国内知名电子作业平台——一起作业网的一些智障设计。。。本来想写到这里去的&#xff1a;有哪些让人拍案叫…

XML 测验

您的回答&#xff1a; 1.XML指的是&#xff1f; 您的回答&#xff1a;eXtensible Markup Language 2.XML对数据进行描述的方式是&#xff1f; 您的回答&#xff1a;XML使用描述节点类描述数据 正确答案&#xff1a;XML使用DTD来描述数据 3.XML的目标是取代HTML 您的回答&#x…

【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)...

由于最近搞2D游戏&#xff0c; 下面的代码配合NGUI来使用 。。。 将代码拖到角色身上就OK&#xff0c; 实现了角色转向、移动 &#xff0c;想看效果的可以将代码下下来~ 用到了向量来计算角度 以及方向&#xff0c; 得恶补下向量知识了 。。。 代码参考&#xff1a; 1 using…

QtCreator添加图片资源

在qt creator里面&#xff0c;设计师designer是一个很好用的功能&#xff0c;通过它我们可以可视化的设计界面。当然了&#xff0c;设计界面就需要各种各样的效果&#xff0c;图片资源是不可少的。今天&#xff0c;小编就来教大家qt怎么添加图片资源 工具/原料 qt creator方法/…