每个大型云服务提供商都为您提供约99.95%的SLA保证保证,而这一百分比的可用性可以使您认为云非常适合需要高可用性的SQL Server部署。Azure和AWS是云服务的两大巨头,它们在数据中心的地理分布可以使您想到云服务,来进行配置了恢复SQL Server的开发。让我们重新考虑整个场景,云服务仅向您保证具有云基础架构,而不能保证在该基础架构上运行的应用程序的可用性。如果我们希望我们的SQL Server在99.95或更高可用性的云中运行,我们需要一些额外的步骤。
基础架构可用性
在处理高可用性和灾难恢复基础结构时,我们需要考虑两个重要的选项:可用区和可用性集。
可用区
让我们考虑针对此选项使用AWS和Azure,针对HR和DR基础架构的此选项在两个云服务提供商中均可用。它将虚拟机放在不同的数据中心中,而不是将它们放在单独的机架中。这样可确保其中一台虚拟机保持可用,从而使提供程序支持可用区,从而保证99.99%的可用性。
可用性集
此选项在AWS中不可用,只有Azure云提供此选项。在此选项中,我们在不同机架中但在同一数据中心中有两个或两个以上虚拟机。微软表示,在此选项中,至少99.95%的时间将可以使用虚拟机。
这里出现的主要问题是,如果任何虚拟机出现故障,也会导致SQL Server宕机怎么办?
答案是另一个虚拟机将在另一个机架或数据中心仍然可用,但是问题是基础架构不能保证将数据传输到另一个虚拟机,那里的数据可能会完全丢失。如果没有自动方法将连接重定向到其余节点,或者辅助虚拟机没有主SQL Server最近使用的数据的副本,则最终用户将面临服务的完全丧失。
SQL Server在云中的可用性:
通常,对于两种配置为高可用性或灾难恢复的SQL Server部署,我们都使用SQL Server故障转移群集实例(FCI)或SQL Server永远在线可用性组,尽管这两个选项均可行,但会出现一些警告。
SQL Server故障转移群集实例(FCI)使用
SQL Server故障转移群集实例(FCI)使用共享存储,而云不支持此存储,因此对于此问题,我们拥有第三方工具“存储空间直接(SSD)”。此功能最初是在窗口服务器2016 Enterprise Edition中引入的,此功能是将SSD池本地附加存储跨群集中的两个或多个服务器并创建虚拟存储区域网络(SAN)。任何虚拟机都可以访问该虚拟存储区域网络。
Storage Space Direct仅可与可用性集一起使用,配置有可用区的服务器不支持Storage Space Direct。
· 使用FCI和Storage Space Direct有两个限制。
· 它受可用性集的限制,只有Azure支持此选项。
· 它需要SQL Server 2016或更高版本,不支持早期版本。
永远在线
另一种方法是Always On Availability Groups,并且两个云服务提供商都支持此选项。这样可以将基础结构可用性SLA提高到99.99%,并将数据从虚拟机的主实例复制到辅助实例。因此,一个虚拟机是否宕机并不重要,另一个虚拟机将处理数据,因为两个VM都位于同一数据中心。
始终可用的限制
· 它仅将用户定义的数据库复制到辅助虚拟机,而主数据库不复制。
· 如果服务器故障率很高,则不会在辅助VM上复制任何数据。
· 它仅适用于非常昂贵的SQL Server 2012 Enterprise版本或更高版本。
如果我们想在云中运行SQL Server,则选择的方法是有限的,因为它是一种新的复杂技术,并且在全球范围内竞争者并不多。Azure和AWS涵盖了大多数云服务,并提供了特定功能并施加了各种约束。
对于高可用性和灾难恢复,我们有两个选项:始终在线和FCI。Always On Availability提供更多功能来复制数据,但价格昂贵。另一个批准是FCI,它施加了很多约束,并且仅支持Azure云服务,并且不支持数据库复制。想了解更多关于数据库的信息,请继续关注。