代码改变世界

SQL Server 2016 HA/DR方案

2023-01-22 12:58  abce  阅读(293)  评论(0编辑  收藏  举报

1.Database Mirroring

数据库镜像传统上用于创建单个生产数据库的副本。但是,你可能要注意到,未来版本中,微软正在逐步淘汰SQL Server数据库镜像。推荐的功能替换为Basic Availability Groups或AlwaysOn Availability Groups。然而,这并不意味着不能使用它。

2.Basic Availability Groups

基本可用性组是可用性组的最简单形式。基本可用性组允许主数据库维护一个副本。除非需要进行故障转移,否则此从副本将保持非活动状态。

3.AlwaysOn Availability Groups

AlwaysOn可用性组是设计用于共同故障转移的数据库组。这包括一个主副本和一个到四个从副本。复制是通过基于SQL Server日志的数据移动执行的,不需要共享存储。AlwaysOn可用性组需要单独的SQL Server实例:只有一个SQL Server实例可以承载一个可用性组的主副本。所有辅助副本都驻留在单独的实例上,并且每个实例必须在的物理节点或云中的vm上。

4.AlwaysOn Failover Clustering

AlwaysOn故障转移集群是一个SQL Server实例,安装在资源依赖于共享磁盘存储的集群中的节点之间。换句话说,AlwaysOn故障转移集群需要对称的共享磁盘存储,例如SAN或SMB文件共享。AlwaysOn故障转移集群实例可以利用AlwaysOn可用性组在数据库级进行远程灾难恢复。

5.Log Shipping

Log Shipping在数据库级别操作,为一个主生产数据库维护一个或多个备用数据库。本质上,日志传送将事务日志备份自动从主数据库发送到只读辅助数据库。

 

案例1:

在这个例子中,我们的客户有一些相当标准的RTO和RPO目标。在意外停机的情况下,他们希望在一小时内恢复运行,他们不能损失超过15分钟的数据。

除此之外,他们还有一些相当有挑战性的基础设施限制,我们需要解决:他们的DR站点不是由TierPoint管理的,并且通过一个相对较慢的VPN连接。他们的生产站点的磁盘容量也有限。看看SQL Server可用的HA/DR选项,下面是我们的考虑:

(1)集群

如果你是一名DBA,并且曾经建立过集群,那么就知道集群背后的资源必须是可靠的。慢速VPN并不是设置集群的理想选择,因此我们不再考虑这个方案。

(2)日志传送

他们的生产环境中没有空间来创建可以发送到辅助环境的事务日志备份。而且,由于他们不想增加硬件,这也不是一个可行的选择。

(3)可用性组(AG)

可用性组中含有集群,因此,它们的VPN连接不允许我们利用这个选项。

(4)数据库镜像

剩下就是镜像了。该客户在其生产环境中使用SQL Server Enterprise Edition,允许异步镜像,因此灾备站点上的任何性能问题都不会影响生产。(请记住,我们没有管理他们的DR站点,所以我们对它的控制有限)镜像也很容易配置,故障转移脚本也相对简单。

由于微软计划在SQL Server的未来版本中停止数据库镜像,从长远来看,这不是一个很好的选择,但这个客户端需要尽快的容灾解决方案。我们决定利用镜像来立即保护他们的系统,同时我们探索一条可行的途径来提升他们的基础设施。

 ​由于不存在依赖关系,灾备站点的问题不会影响生产站点。

 

案例​2:HA/DR优先级高

在我们的第二个例子中,我们帮助了一个具有严格恢复目标的客户:他们的生产环境需要一个尽可能接近实时的RPO和RTO。他们的基础设施限制没有那么重要,但他们确实希望将报告从生产数据库中移出,这样就不会影响性能。

此外,他们不希望更改应用程序来访问不同的服务器名。我们不会深入讨论这个问题,简单地说,在传统集群中,你有一个具有IP地址的集群名称。当发生故障转移时,该名称紧跟在故障转移之后。他们需要一种HA/DR解决方案,如果需要进行故障转移,他们不需要更改应用程序所碰到的名称。

看看SQL Server可用的HA/DR选项,下面是我们的考虑:

(1)集群

这将帮助我们的客户实现其HA目标,但不会帮助他们满足DR需求。我们与他们一起探索了地理集群(GeoClustering),但认为这需要供应商之间一定程度的协调,这对这个组织来说有点太复杂了。

(2)日志传送

Log Shipping最多只能给他们15分钟的RPO,而他们正在寻找实时的RPO。所以,日志传送不是一个选项。

(3)数据库镜像

此选项在此客户机的每个级别上都失败了。这样他们就得不到他们需要的报表。它不支持接近实时恢复所必需的自动故障转移。它不允许在生产站点和恢复站点之间共享名称。

(4)可用性组

这确实是该组织唯一可行的选择,它使我们能够满足他们的每一个需求。

下图显示了它们的配置。主服务器位于备用服务器和报表服务器之间。对备用服务器的复制是同步的,因为这是需要近实时RTO和RPO的站点。报表服务器是用于报表目的的只读副本。因为它不需要HA/DR,所以我们将该服务器设置为异步复制。