剖析SQL Server 在Linux上的高可用性

日期: 2017-11-09 作者:Michael Otey翻译:杨宏玉 来源:TechTarget中国 英文

在Linux上, SQL Server 2017提供了更大的灵活性,但是在高可用性和失效备援方面,Linux与Windows相比,在使用方式上有一些限制和改变。 计划在Linux上运行SQL Server的公司,必须了解哪些功能在Linux上不可用,以及在Linux和Windows上数据保护和高可用性能力的区别。 Linux上的SQL Server的初始版本将由关系数据库引擎组成,支持联机事务处理、数据库应用程序和基本数据仓库。不包括其他子系统,如分析服务、R服务和报告服务等。

它支持如下系统:Red Hat Enterprise Linux 7.3, SUSE Enterprise Linux……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在Linux上, SQL Server 2017提供了更大的灵活性,但是在高可用性和失效备援方面,Linux与Windows相比,在使用方式上有一些限制和改变。 计划在Linux上运行SQL Server的公司,必须了解哪些功能在Linux上不可用,以及在Linux和Windows上数据保护和高可用性能力的区别。 Linux上的SQL Server的初始版本将由关系数据库引擎组成,支持联机事务处理、数据库应用程序和基本数据仓库。不包括其他子系统,如分析服务、R服务和报告服务等。它支持如下系统:Red Hat Enterprise Linux 7.3, SUSE Enterprise Linux Server 12 SP2,Ubuntu 16.04 LTS和Docker Engine 1.8及后续版本,Windows,macOS和Linux等。 关于Linux上的SQL Server,最大的问题之一是它将支持哪些高可用性选项。微软为Linux上的SQL Server提供了几种不同级别的可用性和灾难恢复选项。

基本的SQL服务器可用性功能

对于基本的可用性,Linux上的SQL Server支持基本的备份和恢复、虚拟机(VM)失效备援和日志传送。所有SQL Server版本都可以使用这些特性,包括Express、Standard和Enterprise版本。 备份和恢复是最基本的SQL服务器数据和灾难恢复功能。Linux上的SQL Server支持大多数基本的SQL Server备份和恢复方法,包括完整的数据库备份、差异数据库备份和事务日志备份。 对Linux上的SQL Server进行备份和恢复,可以在远程Windows系统上使用Transact - SQL(T- SQL)或SQL Server Management Studio进行备份。使用数据库备份和恢复也是将数据库迁移到Linux上的SQL Server的好方法。你可以在Windows上备份SQL Server数据库,然后将它们恢复到Linux SQL Server上,反之亦然——备份格式是相同的。备份和恢复选项与运行在SQL Server 2014和更高版本上的数据库兼容。 您还可以使用Hyper-V Replica 或者VMware HA实现一个简单的VM失效备援选项。当主机主机、客户端和操作系统发生故障时,它们能够实现灾难恢复。它们还可以为计划停机提供保护,例如软件升级或打补丁等,在修补主机实例之前,你可以手动执行失效备援选项。由于这两种技术都可以复制更改,因此周期性的意外停机将会导致一些数据丢失。 在SQL Server的日志传输是一个高可用性和灾难恢复功能,主服务器的数据库被复制到一个或多个辅助服务器上。在Linux上,这个功能和在Windows上一样。将主数据库的备份恢复到辅助服务器。然后,主服务器周期性地创建事务日志备份,并将它们转发到辅助服务器上。 SQL Server 2017 on Linux 使用Common Internet File System系统和Samba建立了一个网络共享,其中存储事务日志备份。Linux上的SQL Server Agent用于周期性地运行存储过程,将日志备份转发到辅助服务器。与Windows类似,使用日志恢复数据库是手动操作。

Linux 失效备援集群

与Windows一样,Linux失效备援集群由两个或多个连接到共享存储的服务器组成。服务器被称为集群节点。从概念上讲,Linux上的SQL服务器的高可用性集群就像Windows一样。类似于Windows Server版本的失效备援集群实例,Linux上的SQL Server集群支持实例级保护、自动和手动的失效备援、应用程序和客户机的透明失效备援,以及分钟级甚至秒级的恢复时间。 然而,由于Linux上不支持Windows Server的失效备援集群,Linux上的SQL Server 2017在Linux上使用本地Linux Pacemaker高可用性技术。所有集群节点都需要与存储资源进行活动连接。当Pacemaker检测到故障时,集群组件将SQL实例移动到另一个节点。图1中,你可以看到Linux Pacemaker失效备援集群的高级概述。

图1 Linux Pacemaker的失效备援集群

AlwaysOn 可用性组

与Windows一样,Linux上的SQL Server的最大可用性级别由AlwaysOn 可用性组提供。Linux支持中的AlwaysOn 可用性组包括:
  • 保护最多8个次级副本;
  • 对多个数据库的保护;
  • 最多三个同步复制;
  • 混合同步和异步二次复制;
  • 手动或自动失效备援;
  • 可读的二次副本
  • 只读的路由
  • 自动填充数据
在Linux上有两个可用组的配置类型。你可以创建一个高可用性配置,使用Pacemaker来保障业务连续性,或者你可以创建一个不包含集群管理器的读扩展可用组。读扩展可用组只是用来提供只读副本,来扩充性能——它不提供高可用性。高可用性配置也可以包括读扩展副本。 提供高可用性和数据保护的可用组配置需要三个同步副本。当没有Windows服务器失效备援集群时,可用组配置在存储SQL Server实例的主数据库中,至少需要三个同步副本,以提供高可用性和数据保护功能。 具有两个同步副本的可用性组可以提供数据保护功能,但此配置不能提供高可用性。如果主副本发生故障,可用性组将自动失效。 然而,在主副本被恢复之前,应用程序不能自动连接到可用性组。你可以设置一个混合的可用性组,其中包含Windows和Linux副本,但是微软建议用户只有在进行数据迁移才可以这么做。 Linux SQL Server 2017提供了企业级的数据保护以及具备高可用性的关系数据库。然而,虽然Linux上的SQL Server支持失效备援集群、可用性组和日志传送,但它不支持数据库镜像。数据库镜像在Windows版本的SQL Server 2017上依然存在,但微软计划在未来移除的这个日渐失去价值的功能。

翻译

杨宏玉
杨宏玉

TechTarget特邀编辑。北京邮电大学计算机科学与技术专业硕士。熟悉软件开发流程,对系统管理,网络配置,数据库应用等方面有深入的理解和实践经验。现就职于IBM(中国)投资有限公司,从事IBM服务器相关软件的开发工作。业余时间喜欢游泳登山,爱健身,喜欢结交朋友。

相关推荐