如何正确备份SQL故障转移群集

如果网络上没有简单的分步说明,但没有巧妙的文字显示如何做最不明显的事情,我不喜欢它。 因此,今天无需进行不必要的介绍,我将告诉您如何正确备份故障转移SQL群集。 是的,它是群集,而不是独立的SQL Server。 关于它们的文章很多,但由于某些原因,避免了聚类。
无需过多介绍,我们将考虑我们的实验室:


  • 带有Windows Server 2012 r2的Windows群集,位于后台,具有一定数量的节点。 为了方便起见,在我的实验室中只有两个。 一个合理的问题出现了:为什么将群集放在群集上? 我会解释的低一些。
  • 三个磁盘通过iSCSI连接到群集:仲裁,具有基础的磁盘,用于日志的磁盘。 您可以根据自己的需要做更多的事情,可以做更少的事情。 有时您会喜欢它:两个本地磁盘(一个用于系统,一个用于安装SQL本身),一个定额磁盘,一个用于根和系统数据库的组合磁盘,一个用于基础的磁盘,一个用于日志的磁盘,一个用于TempDB的磁盘以及一个用于备份的磁盘。 系统工程师说,这也是正确的。 但是我认为您拥有多少磁盘绝对不起作用。 如果它对您有用,那么您就是对的,做得很好。
  • 每个节点都安装了一个SQL实例,该实例知道它是SQL群集的一部分,而Windows群集则扮演SQL Server的角色。

现在-在我们开始之前-让我们就两个重要事项达成一致:


  • 做出决定,不要再怀疑了(我想在这里开个玩笑关于浴室,十字架和内裤,但是 审查 决定不这样做)。 一种基础架构应仅由一种解决方案处理。 如果将解决方案A用于备份SQL,将解决方案B用于群集备份,则在任何情况下B都不应接触SQL。 如果B可以在应用程序级别对计算机进行精细备份,则最好不要使用解决方案A。 怎么了 假设两个应用程序都可以转换SQL日志并成功完成。 当然,SQL会发挥作用,但是在下一次备份中,在最佳情况下,您会收到一条有关服务器状态不一致的消息,在最坏情况下,您将无法从事务日志中恢复。
  • 我知道备份软件有“千分之一千”的选项,它们无疑都更好,因为input_reason_here ,但是对不起,我将只写一个可以做到这一点不比别人差甚至更好的东西。

走吧


因此,已经很清楚了,我们将备份整个节点。 第一个问题立即出现:为什么,如果开箱即用的Microsoft SQL群集为我们提供了非常非常不错的防摔保护? 例如,您始终可以将SQL和资源的角色移交给另一个节点。


这种推理是正确的,但是错过了节点本身容易受到攻击的选择。 简而言之:操作系统级别的群集关闭了与特定计算机的操作系统功能相关的风险,而SQL群集关闭了与数据库相关的特定风险。 是的,备份此配置更加有趣。


假设有一种加密恶意软件出现,并开始一个接一个地放置群集节点。 在这里,我们将无法仅快速恢复数据库文件。 而且还没有成功的OS更新,即将死去的硬件等。


因此,我建议考虑我们就备份整个服务器的需求达成了共识,现在我们来看看这些工具。 我将写出如何实现您的目标并使Veeam Backup&Replication 9.5令人惊奇的另一个版本.Veeam以前只能集中备份虚拟机,但是现在它已经获得了对物理服务器备份的全面支持,如果不弄清楚它是一个罪过。


保护组


对于备份,我们将使用保护组 。 实际上,这是一个简单的逻辑实体-将需要备份的机器分组的容器。 例如,您可以在其中对AD中的多个对象进行分组,而不必担心新计算机不会进入备份状态。 保护组将自动扫描更改,并根据指定的时间表执行其余必要的操作。 总之,这是非常方便的事情,尤其是在大型混合基础架构中。


但是,我们从言语变成了行动:启动Veeam Backup&Replication ,进入“ 清单”选项卡,并启动创建保护组的向导。



第一步,您需要指定组的名称和必要的一些描述,此处所有内容均已明确。
但是在下一步中,您必须已经选择了保护组将在何处接收有关受保护机器的信息。 您可以按旧的方式通过DNS名称或IP手动添加它们,可以像真正的Jedi一样以CSV文件的形式提供列表,但是我们很简单,我们将使用Active Directory对象。 在我们的情况下,这还意味着将自动检测群集的所有节点,包括新节点。



在下一步,将首先要求您指定要连接的域控制器的地址,端口和用户数据。


如果一切正常,请单击“ 添加” ,然后选择所需的OU。


重要一点: 您只需要添加集群! 不需要添加单独的节点。


我的群集称为WINCLU,我将添加它。



在下一步中,将设置规则以将计算机排除在扫描范围之外。 在现代世界中,OU通常同时包含虚拟机和物理机,在某些情况下,它们在不同的场景中进行备份。 实际上,甚至存在使用物理机和虚拟机的混合群集。 一种第三级保护。
默认情况下,前两个复选框处于选中状态,您可能不需要删除它们,但是我的实验室是完全虚拟的,因此一开始我们同意研究物理机的备份功能。



现在,我们需要指定要使用的用户。 在某些理想情况下,我们在AD中创建了一个特殊用户,该用户在所有计算机上都具有本地管理员权限。 但是,如果不是这样,则Veeam允许您为每个对象分配一个单独的用户。
为什么我需要本地管理员?


  • 首先,在每台计算机上安装Veeam Agent,这将管理本地备份的过程。
  • 其次,为了让Veeam代理进行此备份,他需要具有VSS的本地管理员权限。 这就是Windows的工作方式,因此无需执行任何操作。


另外,您需要关注“ 立即测试”按钮。 很棒的事情是,您可以快速检查是否正确输入了所有帐户;对于群集,请提前确保所有节点都是可见的并且可以访问。



然后,您需要设置扫描PG参与者的间隔和时间。 您可以每周至少一次,但是可以配置连续更新。 这取决于您,但是通常最好的选择是重复备份频率,以便所有新参与者都可以到达最近的恢复点。


以下是不太明显但重要的选项。


分发服务器是将安装Veeam代理的计算机。 通常,使用Veeam Backup服务器就足够了,但是在连接较差的地理位置分散的基础架构中,指定更接近的选项是有意义的。 在所有其他情况下,更改没有任何意义。


再远一点 我不知道为什么不应安装和不自动更新代理的原因,但是如果您不信任自动化,则可以放心拒绝。 但是请记住,由于版本不同,可能没有其他备份点。


您也可以同意安装我们的CBT驱动程序,该驱动程序将在文件系统级别跟踪磁盘的更改。 这将允许您仅将实际更改的扇区发送到备份,这意味着还原点更少,备份更快,服务器上的负载更少。 但是,如果您不信任,流量对您来说并不重要,磁盘很大,连接非常好,那么您将无法进行设置。


自动重新启动有一个细微差别:不仅在首次安装期间使用,而且在更新期间使用。 因此,如果您负担不起这种奢侈品,请不要忘记取消选择。



在下一步中,我们将被告知需要在分发服务器上重新安装组件的信息。 即使他们不在那儿,也可以通过单击“ 应用”按钮在一分钟内到达那里。


在最后一步,我们将被告知成功创建了保护组(PG),并将提供保护组来启动发现,即 该组将根据指定条件列出机器,并根据设置开始安装代理。 当所有必要的操作都将进行时,您可以自己倒咖啡。



通过倒空一杯咖啡,您可能会发现由于网络访问错误而无法在一个节点上安装代理。 如果您遇到这样的麻烦,则只需从该节点断开仲裁磁盘。 并不经常,但是它确实发生。 也许这只是我实验室的功能。 因此没有毅力最终解决这个问题。


建立备份


因此,如果在上一阶段一切均成功结束,则您的保护组现在将拥有一个集群及其带有已成功安装代理的节点列表。 因此,我们转向最有趣的一点:我们在故障转移群集模式下创建一个备份,以便所有节点和所有连接的磁盘都可以进入该备份。


主要区别是什么?为什么不能将它们另存为单独的计算机? 从技术上讲,您可以对除群集角色的当前所有者之一以外的所有节点执行此操作。 如果您开始直接将其备份在额头上,其他节点可能会失去与它的接触,并开始覆盖自己,这最终将导致整个群集的崩溃和停止。 这在繁忙的系统上经常发生。



使用鼠标右键(RMB),单击PG,我们将启动备份作业创建向导,并立即选择故障转移群集模式。 与本地代理备份不同,此类任务只能在中央备份服务器上创建。 但这是合乎逻辑的:如您所记得,我们想同时完整备份SQL,这意味着日志将定期进行记录-在任何情况下,都需要服务器之间进行通信。



然后选择作业名称和备份参与者列表。 默认情况下,只有选定的PG,但是在这里您还可以添加一些其他内容。


在下一步中,您需要在备份单个磁盘还是备份整个计算机之间进行选择。 通常,如果可以备份整个计算机,则需要备份整个计算机。 在我们的情况下,这是真的,因为 我们必须备份群集中可能出现在群集任何节点上的所有磁盘。



然后,我们选择一个用于备份的存储库,并指定我们将拥有多少个恢复点。 使用高级按钮,您可以调用微调菜单,您可以在其中选择如何创建备份链,启用其他文件完整性检查等等,我们现在不会浪费时间,因为最有趣的部分是访客处理部分。



能否获得所谓的应用程序一致性备份(有时翻译为完整备份或考虑到应用程序状态的备份,或者尚不了解如何以及最重要的原因)取决于此选项卡上的设置。 因此,转到“ 应用程序” ,选择我们的PG,然后单击“ 编辑”



确保第一个选项卡包括Application-Aware Processing 。 在这种情况下,将涉及VSS子系统,其工作应该顺利通过。 相反,它可能会出现错误,但是在这种情况下,将不会创建备份,您需要了解失败的原因。 在这里,您还需要确定事务日志的命运:Veeam可以忽略它们,只需复制到备份或裁剪即可。



现在转到“ SQL”选项卡。 首先要做的是设置用于与SQL Server及其数据库交互的用户帐户。 在理想情况下,它与我们在创建PG时指定的本地管理员匹配。 否则,最主要的是该用户必须具有数据库所有者权限。


然后,我们选择如何与日志进行交互。 例如,如果您的数据库处于完全恢复模式,则trankit日志非常方便。 或者,您可以按单独的时间表备份事务日志,以便可以快速将数据库回滚到正确的时间,而不会丢失备份之间的所有内容。 当然,您根本无法处理日志。



我们到达Schedule的倒数第二点,根据您的要求设置时间表。 一天一次,一个小时一次,就足够了,这取决于您。
我们通过单击“ 应用”两次来完成任务,并享受结果。


在理想的情况下,如果您没有安装作为群集和Veeam Server之间的链接的代理的技巧,或者如果您突然忘记加载代理所需的许可证,则该工作将正常进行,您将看到下图。



仅此而已。 事实证明,备份群集并不像通常认为的那样令人恐惧。 即使它是另一个群集中的一个群集。


如果您有兴趣了解另一种备份/餐厅情况,请在评论中进行介绍,我们将以最好的方式告诉您一切。

Source: https://habr.com/ru/post/zh-CN426175/


All Articles