我正在使用可用性组(数据库级别)SQL Server 2017:
我已将我的可用性组设置为“首选次要”。我已允许对副本进行读取访问。我已经创建了一个维护计划,其中使用“仅复制”在副本上的所有数据库上进行了完整备份,然后在主数据库上也进行了完整备份。
但现在我想知道 AG 是否真的做出任何决定?两个维护计划都将运行,据我所知,如果发生故障转移,不会将“仅复制”更改为主要的维护计划。
除了在我更改设置时阻止我运行备份之外......除了强制执行 [另一个] dba 可能或可能无法执行的规则之外:这有什么意义?
或者,我的备份设置是否完全错误?
不,可用性组不会做任何事情来控制备份发生的位置。可用性组的备份首选项设置在那里,以便备份软件可以参考它来确定在何处运行备份。如果正在使用的备份软件没有任何代码来引用这些设置,它们将对该备份软件没有影响,它只会在它连接的服务器上运行备份。
大多数支持可用性组的备份软件将参考备份首选项配置并相应地进行备份。维护计划备份将遵循在可用性组上配置的备份首选项。
对于仅复制备份设置,我建议的一个选项是创建 SQL 代理作业以运行仅复制备份。作业的第一步是检查服务器是否是主服务器,如果是,则结束作业。如果它不是主要的,则运行仅复制备份。
作业的第一步可以使用 fn_hadr_is_primary_replica 函数来确定服务器是否是给定数据库的主服务器:
请参阅sys.fn_hadr_is_primary_replica (Transact-SQL)。