实现高可用性和灾难恢复的最佳方法?

实现高可用性和灾难恢复的最佳方法?

我们正在两个地理位置相距遥远的站点部署 SQL 服务器。两个站点之间的带宽为 10Mbps。要求两个站点都可写/可读。两个站点都有站点内冗余要求,同时它们彼此同步。但是,这两个站点不会写入表的同一行。这里实现最大可用性和最大限度减少任何潜在数据丢失的最佳方法是什么?我们正在考虑使用 SQL Server 2016,并尽量避免使用数据镜像等弃用的技术。

答案1

我同意@Sean,但是对于 10Mbps 管道,如果您使用同步或异步写入其他站点,则很容易导致管道泛滥。

同步实时将对每个数据库的所有更改写入数据库,事务在两次写入完成之前不会完成。如果数据库更改频繁,则需要大量带宽。不推荐用于 DR 场景。

异步写入会在队列中累积,直到辅助服务器可以写入为止,这对于 DR 来说是理想的,但是对于 10M 管道来说可能会非常慢。

如果您希望两个站点都可读写,那么您确实需要更多的带宽,SQL Server AlwaysOn 可用性组是一个读取器/写入器一个读取器,因此两个站点不能同时写入,如果您的仲裁设置不正确,您最终可能会出现脑裂。

另外,你听起来可能混淆了 HA(高可用性)和 DR(灾难恢复)。首先构建 HA,通常要便宜得多,如果你不信任你所在的数据中心,可以将其移动到更好的数据中心或转到云中。

答案2

目前 SQL Server 中的主要 HA 功能称为 AlwaysOn 可用性组: Always On 可用性组概述(SQL 服务器)

我认为您对地理冗余 HA/DR 的要求是这样的: SQL Server 多子网群集(SQL 服务器)

参考:https://social.msdn.microsoft.com/Forums/en-US/34bc95e8-5cce-4586-b82c-d6225e172f93/best-approach-to-achieve-high-availability-and-disaster-recovery?forum=sqldisasterrecovery

相关内容