第五十七章 镜像中断程序 - 在手动故障转移之前确定备份是否处于活动状态

在手动故障转移之前确定备份是否处于活动状态

假设有两个名为 IRIS AIRIS B 的故障转移成员。如果 ^MIRROR 例程确认备份 (IRIS B) 在与主 (IRIS A) 丢失联系时处于活动状态,因此具有最新的来自 IRIS A 的日志数据,可以使用单个过程手动进行故障转移。当连接因主要故障而丢失时,不会造成数据丢失的风险。但是,当发生多个故障时,活动备份可能没有来自主服务器的所有最新日志数据,因为主服务器在连接丢失后继续运行了一段时间。

使用以下过程确定备份是否处于活动状态:

  1. 确认 IRIS 实例 IRIS A 上的 ISCAgent 实际上已关闭(并确保它们在整个手动故障转移过程中保持关闭状态)。
  2. IRIS B 上,在终端的 %SYS 命名空间中运行 ^MIRROR 例程(请参阅使用 ^MIRROR 例程)。
  3. 在主菜单中选择镜像管理,显示如下子菜单:
 1) Add mirrored database(s)
 2) Remove mirrored database(s)
 3) Activate or Catchup mirrored database(s)
 4) Change No Failover State
 5) Try to make this the primary
 6) Connect to Mirror
 7) Stop mirroring on this member
 8) Modify Database Size Field(s)
 9) Force this node to become the primary
10) Promote Async DR member to Failover member
11) Demote Backup member to Async DR member
12) Mark an inactive database as caught up
13) Manage mirror dejournaling on async member (disabled)
14) Pause dejournaling for database(s)
  1. 选择 Force this node to become the primary 选项。如果在联系丢失时备份处于活动状态,则会显示如下消息:
This instance was an active backup member the last time it was
connected so if the primary has not done any work since that time,
this instance can take over without having to rebuild the mirror
when the primary reconnects. If the primary has done any work
beyond this point (file #98),
     C:\InterSystems\MyIRIS\mgr\journal\MIRROR-GFS-20180815.009
then the consequence of forcing this instance to become the primary is
that some operations may be lost and the other mirror member may need
to be rebuilt from a backup of this node before it can join as
a backup node again.
Do you want to continue? <No>

如果有权访问主要文件的日志文件,则可以在继续之前确认引用的文件是最新的。

如果在与主服务器失去联系时备份未处于活动状态,则会显示如下消息:

Warning, this action can result in forcing this node to become
the primary when it does not have all of the journal data which
has been generated in the mirror. The consequence of this is that
some operations may be lost and the other mirror member may need
to be rebuilt from a backup of this node before it can join as
a backup node again.
Do you want to continue? <No>

手动故障转移到活动备份

如果 ^MIRROR 例程的 Force this node to become the primary 选项确认备份在失去与主节点的连接时处于活动状态,请完成手动故障转移过程,如下所示:

  1. 在要继续吗?提示继续该过程。 Force this node to become the primary 选项等待 60 秒以使镜像成员成为主要节点。如果操作未在 60 秒内成功完成,^MIRROR 报告操作可能未成功并指示您检查消息日志以确定操作是失败还是仍在进行中。
  2. 一旦 ^MIRROR 例程确认备份已成为主要备份,请在可以这样做时重新启动 IRIS A。当 IRIS 实例重新启动时, IRIS A 作为备份加入镜像。

备份不活动时手动故障转移

即使 ^MIRROR 例程未确认备份 ( IRIS B) 在与主 ( IRIS A) 失去连接时处于活动状态,仍然可以使用以下过程继续手动故障转移过程,但是如果这样做,会有数据丢失的风险。如本程序所述,可以在手动故障转移之前将最新的镜像日志文件从 IRIS A(如果有权访问)复制到 IRIS B,从而最大限度地降低这种风险。

  1. 如果有权访问主服务器的镜像日志文件,请将最新的文件复制到 IRIS B,从 IRIS B 上的最新日志文件开始,然后包括来自 IRIS A 的任何后续文件。例如,如果 MIRROR-MIRRORA-20180220.001IRIS B 上的最新文件,复制 MIRROR-MIRRORA-20180220.001IRIS A 上的任何更新文件。检查文件的权限和所有权,并在必要时更改它们以匹配现有日志文件。
  2. 如果接受数据丢失的风险,请在提示时输入 y 以确认要继续;备份成为主要的。 Force this node to become the primary 选项等待 60 秒以使镜像成员成为主要节点。如果操作未在 60 秒内成功完成,^MIRROR 报告操作可能未成功并指示您检查消息日志以确定操作是失败还是仍在进行中。
  3. 一旦 ^MIRROR 例程确认备份已成为主要备份,请在可以这样做时重新启动 IRIS A
  • 如果 IRIS AIRIS 实例重新启动时加入镜像作为备份,则不需要进一步的步骤。任何在故障成员上但不在当前主成员上的日志数据都已被丢弃。
  • 如果在 IRIS 实例重新启动时 IRIS A 无法加入镜像,如重建镜像成员中描述的引用不一致数据的消息日志消息所示 IRIS A 上的最新数据库更改晚于最新的日志数据当 IRIS B 被迫成为主服务器时,它会出现在 IRIS B 上。要解决此问题,请按照该部分中的描述重建 IRIS A
06-15 09:44