第四十七章 管理镜像 - 将 DR 异步成员提升为故障转移成员

101 阅读10分钟

第四十七章 管理镜像 - 将 DR 异步成员提升为故障转移成员

将 DR 异步成员提升为故障转移成员

可以将灾难恢复 (DR) 异步镜像成员提升为故障转移成员,如果配置了两个则替换当前故障转移成员,或者如果只有一个则加入当前成员。例如,当其中一个故障转移成员由于计划内维护或发生故障而停机很长一段时间时,可以临时提升 DR 异步来取代它(请参阅使用提升的 DR 异步临时替换故障转移成员) .在真正的灾难恢复期间,当两个故障转移成员都发生故障时,您可以提升一个 DR 以允许它作为主要故障转移成员接管生产,接受一些数据丢失的风险;有关详细信息,请参阅在灾难期间手动故障转移到提升的 DR 异步。

DR 异步提升为故障转移成员时,如果可能,它会与最近的主服务器配对作为故障转移伙伴;当这不能自动完成时,可以选择故障转移伙伴。提升后,提升的成员与其故障转移伙伴的 ISCAgent 通信,就像任何故障转移成员在启动时所做的那样,首先获取最新的日志数据,然后如果故障转移伙伴不是主要的则成为主要的,或者如果故障转移伙伴是备份的则成为备份基本的。提升的成员不能自动成为主要成员,除非它可以与其故障转移伙伴通信以获取最新的日志数据。

DR 异步提升为故障转移成员时,需要牢记几个重要的注意事项:

  • 根据 DR 异步的位置,它与故障转移伙伴之间的网络延迟可能高得令人无法接受。有关故障转移成员之间的延迟要求的信息,请参阅网络延迟注意事项。
  • DR 异步成为故障转移成员时,将应用故障转移成员压缩设置,而不是升级前的异步成员压缩设置(有关这些设置的信息,请参阅镜像流量压缩)。根据网络配置,可能需要调整故障转移成员压缩设置,如编辑或删除故障转移成员中所述,以获得最佳镜像功能。
  • 当镜像专用网络用于连接故障转移成员的镜像专用地址时,如示例镜像体系结构和网络配置中所述,未连接到该网络的 DR 异步应仅提升为主要功能,这应该仅当没有其他故障转移成员在运行时才进行。如果在主服务器运行但无权访问主服务器的镜像私有地址时提升 DR 异步,则它不能成为备份;但是,它将能够从主服务器的代理获取日志数据,并在主服务器关闭时成为具有最新日志数据的主服务器。
  • 如果正在使用镜像 VIP,并且提升的 DR 异步不在 VIP 子网上,则必须使用一些替代方法将用户连接重定向到提升的 DR,如果它成为主要的;例如,手动更新 DNS 名称以指向 DR 异步的 IP 而不是 VIP,或者配置故障转移后重定向应用程序连接中讨论的机制之一。

然而,在某些灾难恢复情况下,提升的 DR 异步无法联系任何现有故障转移成员的代理。在这种情况下,可以选择在没有故障转移合作伙伴的情况下提升 DR,如本部分中与用户选择的合作伙伴一起提升中所述。这意味着 DR 只能成为主要的,只使用它已经拥有的日志数据和任何可能在其他连接的镜像成员上可用的更新的日志数据,如果有的话。发生这种情况时,新的primary可能没有镜像已经生成的所有journal数据,部分应用数据可能会丢失。如果您重新启动以前的故障转移伙伴,而以这种方式提升的 DR 异步作为主要运行,则可能需要重建;有关详细信息,请参阅重建镜像成员。请务必查看本节后面的 DR 升级过程以了解详细信息。

注意:当主 IRIS 实例由于在仲裁器控制模式下与备份和仲裁器隔离而处于无限期故障状态时,如自动故障转移机制详述中所述,无法将 DR 异步提升为故障转移成员。

与自动选择的合作伙伴一起推广

如果可能,将自动选择提升的 DR 异步的故障转移伙伴,如下所示:

当有一个正在运行的主要故障转移成员时,主要被自动选为故障转移伙伴;晋升成员从中获取最新的日志数据,成为备份成员。如果 IRIS 正在当前备份上运行,则该成员同时降级为 DR 异步;如果不是,则在重新启动 IRIS 时,该成员将降级为 DR 异步。

IRIS 未在任何故障转移成员上运行但可以联系两个故障转移成员(或一个,如果只有一个)上的 ISCAgent 时,自动选择最近的主节点作为故障转移伙伴,并且提升的成员获取最新的日志数据从它并成为主要的。当 IRIS 在之前的主服务器上重新启动时,它会自动成为备份服务器;当 IRIS 在之前的备份上重新启动时,它会自动变为 DR 异步。

与用户选择的合作伙伴一起推广

当 IRIS 未在任何故障转移成员上运行且至少无法联系到一个 ISCAgent 时,升级程序会通知哪些代理无法联系并让您选择故障转移伙伴。为避免数据丢失的可能性,应该选择最后一个主要的故障转移成员,即使无法联系其代理。结果因所做的选择和 ISCAgent 可用性而异,如下所示:

  • 如果可以联系到您选择的合作伙伴上的代理,则提升的 DR 异步会从中获取最新的日志数据,然后成为主要的。当 IRIS 在合作伙伴上重新启动时,它会自动成为备份。
  • 如果无法联系选择的合作伙伴上的代理,则提升的 DR 异步不会成为主要的,直到可以联系合作伙伴的代理并获得最新的日志数据。但是,在合作伙伴的代理可用之前的任何时候,都可以在不获取最新日志数据的情况下强制提升的成员成为主要成员(如灾难期间手动故障转移到提升的 DR 异步中所述);某些应用程序数据可能因此丢失。
  • 如果选择无故障转移伙伴,则提升的 DR 异步会在成为主要成员之前尝试从所有其他连接的异步镜像成员获取最新的可用日志数据。因为可能没有任何连接的成员具有比提升的 DR 异步更新的日志数据,所以一些应用程序数据可能会丢失。

当做出此选择时,可以选择在提升的 DR 异步上设置无故障转移状态,以便它准备成为主要的,包括从其他连接的成员获取日志数据,但在清除无故障转移之前不会成为主要的。这允许执行任何希望的额外验证,并让额外的成员联机(如果可能),以便在允许提升的 DR 异步成为主要之前提供更多的日志数据。

注意:有关联系镜像成员以查看其日志数据的成功和不成功尝试的消息,以及在确定最近数据时成功和不成功的检索尝试,都发布在消息日志中。

注意:在升级 DR 异步时,不要在其 ISCAgent 关闭的前故障转移成员上重新启动 IRIS,直到在 IRIS 实例的配置参数文件的 [MirrorMember] 部分中设置 ValidatedMember = 0,如 IRIS 实例中所述以下是 DR 提升过程。

如果未自动选择故障转移伙伴,则适用以下规则:

  • IRIS 重新启动时,任何未被选为合作伙伴的前故障转移成员都将成为 DR 异步成员。
  • 在提升 DR 异步时无法联系其代理的任何前故障转移成员上,必须尽早并在重新启动 IRIS 实例之前在 IRIS 配置参数文件的 [MirrorMember] 部分中设置 ValidatedMember=0实例(请参阅配置参数文件参考中的 [MirrorMember])。这指示 DR 异步获取其在镜像中的新角色,而不是重新连接到其先前角色中的镜像。 ^MIRROR 例程列出了需要此更改的故障转移成员。

注意:如果提升的 DR 异步成为主要的或被迫成为主要的而没有获得最新的日志数据,一些全局更新操作可能会丢失并且其他镜像成员可能需要重建(如重建镜像成员中所述)。但是,在某些灾难恢复场景下,可能别无选择,只能在不获取日志数据的情况下将 DR 异步提升为主。

要将 DR 异步成员提升为故障转移成员,请执行以下操作:

  1. 在要提升为故障转移成员的 DR 异步成员上,导航到系统操作 > 镜像监视器页面以显示镜像监视器。
  2. 单击页面顶部的升级为故障转移成员按钮。
  3. 按照结果对话框提供的说明进行操作。在最简单的情况下,这只涉及确认要继续升级,但它可能包括选择故障转移伙伴或不选择伙伴,如本节前面所述。
  4. 如果为镜像配置了 VIP,则提升的 DR 异步必须在 VIP 的子网上有一个网络接口,以便能够在成为主节点的情况下获取 VIP(由于手动故障转移或主节点稍后在运行时中断)作为备份)。
  • 如果 DR 异步在 VIP 的子网上只有一个接口,则该过程会自动选择该接口。
  • 如果 DR 异步在 VIP 的子网上有多个接口,程序会要求选择一个接口。
  • 如果 DR 异步在 VIP 的子网上没有接口,升级过程会警告您这种情况,并要求在继续之前进行确认。如果继续该过程并提升 DR 异步,则必须采取手动步骤以允许用户和应用程序连接到新的主服务器,例如更新 DNS 名称以指向 DR 异步的 IP 而不是 VIP .
  1. 如果前故障转移成员的代理在提升 DR 异步时可用,它会自动在 IRIS 实例的配置参数文件的 [MirrorMember] 部分中设置 ValidatedMember=0(请参阅配置参数文件参考中的 [MirrorMember] ).这指示 IRIS 实例从提升的 DR 异步获取其在镜像中的新角色,而不是重新连接到其先前角色中的镜像。

如果在升级时无法联系到前故障转移成员的代理,则无法自动进行此更改。因此,在升级时无法联系代理的任何前故障转移成员上重新启动 IRIS 之前,必须尽快通过编辑 IRIS 实例的配置参数文件手动设置 ValidatedMember=0。说明列出了必须进行此更改的前故障转移成员。

警告:在 DR 异步提升时代理已关闭的镜像成员上重新启动 IRIS 时未首先设置 ValidatedMember=0 可能会导致两个故障转移成员同时充当主要成员。

注意:SYS.Mirror.Promote() SYS.Mirror.PromoteWithPartner(), SYS.Mirror.PromoteWithNoPartner(), SYS.Mirror.PromoteWithSelectedPartner()镜像 API 方法提供了将 DR 异步提升为故障转移成员的替代方法。