为可用性组安排备份作业

syn*_*-dj 4 backup availability-groups sql-server-2014

在 MS SQL Server 2014 AlwaysOn AG 设置中,我想为给定的可用性组安排备份作业。最终目标是在同步的辅助节点上运行定期备份,最重要的是,不受特定辅助节点的可用性限制。

到目前为止,我看到的方法是使用 SQL Server 调度程序,在所有正在运行的实例上设置相同的作业,并将条件逻辑引入调度程序步骤,以确定角色是主要角色还是次要角色。由于以下几个原因,这对我的用例不起作用:

  1. 我只想在辅助节点上运行一次计划操作,但我有多个辅助节点
  2. 我想确保它最终运行,无论是否有任何辅助节点 - 如果没有辅助节点,它应该在主节点上运行

备份作业包括BACKUP LOG [...] WITH COMPRESSION, NOINIT, NOFORMAT每 15 分钟运行一次。

现在,我正在考虑创建一个绑定到相应 AG 的故障转移集群角色的集群计划任务,但想知道是否有更简单和简化的方法来实现这一点。

Sea*_*ser 5

在 MS SQL Server 2014 AlwaysOn AG 设置中,我想为给定的可用性组安排备份作业。最终目标是在同步的辅助节点上运行定期备份,最重要的是,不受特定辅助节点的可用性限制

这可以毫无问题地完成。请记住,您的系统应该被指定为能够承担 AlwaysOn 可用性组同步机制的全部负载,以及所需的重做和备份。您最不想做的事情是使您的 IO 系统不堪重负并导致中断或大型重做队列。这是假设它没有被积极用作可读的辅助 - 如果是,您将需要考虑并注意阻塞的重做线程。

1.我只想在辅助节点上运行一次计划操作,但我有多个辅助节点 2.我想确保它最终运行,无论是否还有任何辅助节点 - 如果没有辅助节点,它应该在主节点上运行

有一个可用性组设置和一个系统功能可用于在您的预期指导下完成此操作。

第一个是每个 AG 的设置,称为AUTOMATED_BACKUP_PREFERENCE具有四个不同的选项。您正在描述的SECONDARY那个被称为它会比主节点更喜欢任何辅助节点。选择的辅助节点是由BACKUP_PRIORITY每个副本设置的,范围从 0 到 100,其中数字越大,它的权重越大。如果次要副本的权重存在联系,则将选择根据系统整理首先排序的副本。如果所有次要副本都失败,则将选择主要副本。

等式的第二部分是系统函数,用于根据上一段中的值检查正在运行作业的副本是否是首选副本。此系统函数称为sys.fn_hadr_backup_is_preferred_replica()。给定数据库名称(AG 中的任何数据库),如果它不是首选副本,则返回值 0,如果首选副本,则返回值 1。

创建代理作业以完成此操作时,您需要将备份逻辑包装在IF条件中以检查首选副本。就是这样。将相同的代理作业放在所有副本上。

请务必测试这确实是您想要和期望的。