欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

浅谈Windows是如何把SQL Server迁移到Linux上的

程序员文章站 2023-11-06 09:47:10
这篇文章主要介绍了浅谈Windows是如何把SQL Server迁移到Linux上的,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考... 18-01-15...

 浅谈Windows是如何把SQL Server迁移到Linux上的

 

译者注:你是否平时的工作是用的是linux操作系统,但公司的重要项目使用的是sql server,你曾经是否因此而鲲熬过?现在告诉你个好消息,微软已经在2017版本中,将sql server数据库引入到了linux等开源系统中去了,作者在本文详细介绍了这其中的过程。以下为译文:

早在2016年,当微软宣布sql server将很快在linux上运行时,这一消息对用户和权威人士来说都是一个巨大的惊喜。在过去的一年中,微软对linux(总之就是开源的操作系统)的支持已经十分重视,公司的使命似乎已经变成了只要哪里有用户,哪里就必须得有sql server工具。

微软今天发布了sql server 2017的第一个候选版本,这将是第一个在windows、linux和docker容器上运行的版本。仅docker容器就已经吸引了超过100万的申请,因此毫无疑问,会有很多人对这款新版本非常感兴趣。尽管新版本有很多需要改进的地方,但sql server 2017支持linux仍然是这个版本最重要的突破。

在今天发表声明之前,我与微软的数据库系统组的总经理罗汉·库马尔进行了交谈,了解了这个项目的历史,以及他的团队如何成功地将sql server这么复杂的软件给引入到linux中去的。在微软工作了18年的库马尔指出,他的团队注意到许多企业开始使用sql server作为z重要任务的工作负载。但与此同时,这些企业的工作环境也是组合的,包括windows server和linux。对于许多这样的企业来说,无法在linux上运行他们的数据库成为了一个瓶颈。

“经过企业的谈话,很明显,我们觉得这么做是必要的,”库马尔说,“我们正在强制客户使用windows作为他们选择的平台。”在微软的另一个化身中,这可能会被视为积极的东西,但该公司今天的战略却大不相同。

库马尔还指出,许多企业都在寻找oracle数据库产品的替代品。毕竟如果想要运行linux,并使用具有完全企业支持的专有关系型数据库,那么你可能就不得不选择oracle了。

正如库马尔告诉我的,这并不是他的团队第一次希望可以支持linux。他告诉我:“过去我们曾进行过几次讨论,但没有得到批准。”他说:“对于企业来说,这并不是一种战略”。但这已经是三年前的观点了-现在随着萨提亚·纳德拉成为了微软的掌舵人,这个团队决定再次提出这个想法。“我们反反复复的查看反馈消息,”他说:“看到这些决定的速度有多快,真让人感到惊讶。”

位于雷德蒙德一家越南餐馆的照片前,团队最后决定继续推进这个项目。但是,在做出这个决定之后,这个团队现在面临着一项艰巨的任务:如何将数千万条sql server代码移植到linux上?库马尔也不想在功能上做出任何妥协,因此要么必须是sql server的全部核心,要么就是什么都不做(目前,这排除了公司在windows上提供的图形用户界面和工具)。

浅谈Windows是如何把SQL Server迁移到Linux上的

该团队在一个已经存在于微软的项目中找到了答案:drawbridge。drawbridge是一个在2011年启动的研究项目,它提供了一个容器,它提供了一个小的api表面和一个基础版本的windows,可以有效地在容器中运行应用程序。这里的想法基本上是建立更好更安全的虚拟机。然后,库操作系统执行应用程序,处理内存管理和其他重要功能,并与底层操作系统集成。

大约两年前,sql server团队决定将其作为linux工作的核心。“领导层表现出了适量的关心,”库马尔评论道,“我的猜测是,鉴于drawbridge是一个实验性的项目,人们确实对此感到担忧。”但是sql server团队接管了drawbridge代码库,并将其添加到sql操作系统层中。

在许多方面,这个操作系统层是使这个项目成为可能的原因。由于sql server的需求总是超出了windows和windows服务器所能提供的,尤其是在内存管理方面,团队已经将许多标准os特性构建到sql server的os层中。因此,在drawbridge中,sql server也可以管理自己的内存。这方面的工作非常成功,团队不仅在linux上构建了sql server,还将sql操作系统和它在drawbridge上所做的工作合并到新的sql平台抽象层上,这一层现在在windows和linux上运行。

因此,sql server团队可以从一个单独的代码库工作,并且不必担心代码的运行位置(这包括microsoft的azure平台)。

linux的sql server应该在今年晚些时候就可以正式运行了。即使在今天,一些公司已经在生产环境中使用了它,而linux版本的运行速度和windows版本一样快(假设硬件一样)。

除了最终将版本发布出来外,库马尔指出,团队将密切关注下一步该做什么。尽管数据库领域的创新仍在继续加速,但并不是所有的微软客户都希望他们的任数据库版本可以做到每年(甚至更快)更新一次。不过,鉴于我们最近看到sql server 2016和2017年发布的sql server版本,我对sql server 2018预览版的发布将充满信息。

以上就是分享给大家关于windows是如何把sql server迁移到linux上的全部内容,希望对大家有所帮助。