第六十章 镜像中断程序 - 使用主 ISCAgent
的日志数据进行 DR
提升和手动故障转移
使用主 ISCAgent
的日志数据进行 DR
提升和手动故障转移
如果 IRIS A
的主机系统正在运行,但 IRIS
实例没有且无法重新启动,您可以使用以下过程在通过升级后使用来自 IRIS A
的最新日志数据更新升级的 IRIS C IRIS A
的 ISCAgent
。
- 推广
IRIS C
,选择IRIS A
作为故障转移伙伴。IRIS C
被提升为故障转移成员,从IRIS A
的代理获取最新的日志数据,并成为主要成员。 - 重新启动
IRIS A
上的IRIS
实例,它作为备份重新加入镜像。 - 在
IRIS A
重新加入镜像并变为活动状态后,可以使用使用升级的 DR 异步临时替换故障转移成员中描述的过程,将所有成员返回到它们以前的角色,首先是正常关闭IRIS C
,然后在IRIS B
的配置参数文件的[MirrorMember]
部分中设置ValidatedMember=0
(请参阅配置参数文件参考中的[MirrorMember]
),将IRIS B
重新启动为DR
异步,将IRIS B
提升为备份,并以DR
异步方式重新启动IRIS C
。
注意:如果 IRIS A
的主机系统已关闭,但 IRIS B
的主机系统已启动,尽管其 IRIS
实例未运行,请按照手动故障转移到活动备份中所述在 IRIS B
上运行 ^MIRROR
例程以确定 是否IRIS B
在发生故障时是一个活动备份。如果是这样,使用前面的过程,但在升级期间选择 IRIS B
作为故障转移伙伴,允许 IRIS C
从 IRIS B
的 ISCAgent
获取最新的日志数据。
使用来自日志文件的日志数据进行 DR 提升和手动故障转移
如果 IRIS A
和 IRIS B
的主机系统都已关闭,但可以访问 IRIS A
的日志文件,或者 IRIS B
的日志文件和消息日志可用,您可以使用最新的日志数据更新 IRIS C
从升级前的初级开始,使用以下过程。
- 使用
IRIS A
或IRIS B
的最新日志文件更新IRIS C
,如下所示:
- 如果
IRIS A
的日志文件可用,则将最新的镜像日志文件从IRIS A
复制到IRIS C
,从IRIS C
上的最新日志文件开始,并包括来自IRIS A
的任何后续文件。例如,如果MIRROR -MIRRORA-20180220.001
是IRIS C
上的最新文件,复制MIRROR-MIRRORA-20180220.001
和IRIS A
上的任何更新文件。 -
如果
IRIS A
的日志文件不可用但IRIS B
的日志文件和消息日志可用:-
确认
IRIS B
很可能已被捕获,如下所示:a. 确认当
A
及其代理不可用时,B
同时断开与 A的连接。可以通过在Messages.log
文件中搜索类似于以下内容的消息来检查IRIS B
断开连接的时间:MirrorClient: Primary AckDaemon failed to answer status request
b. 通过在其
messages.log
文件中搜索类似于以下内容的消息,确认 IRIS B 在断开连接时是活动备份:Failed to contact agent on former primary, can't take over
-
注意:messages.log
文件中的如下消息表明 IRIS B
在断开连接时未处于活动状态:
nonactive Backup is down
当无法确认它是否已被追上时强制提升的 DR
异步成为主数据库可能会导致它成为主数据库而没有镜像生成的所有日志数据。因此,一些全局更新操作可能会丢失,而其他镜像成员可能需要从备份中重建。
2. 如果可以确认 `IRIS B` 处于活动状态,请将最新的镜像日志文件从 `IRIS B` 复制到 `IRIS C`,从 `IRIS C` 上的最新日志文件开始,然后包括来自 `IRIS B` 的所有后续文件。例如,如果 `MIRROR-MIRRORA-20180220.001` 是 `InterSystems IRIS C` 上的最新文件,请从 `IRIS C` 复制 `MIRROR-MIRRORA-20180220.001` 和任何更新的文件。检查文件的权限和所有权,并在必要时更改它们以匹配现有日志文件。
- 在不选择故障转移合作伙伴的情况下将
IRIS C
提升为故障转移成员。IRIS C
成为主要的。 -
当
IRIS A
和IRIS B
的问题得到修复时,尽早并在重新启动IRIS
之前,在每个成员上的IRIS
实例的配置参数文件的[MirrorMember]
部分中设置ValidatedMember = 0
(参见[ MirrorMember]
在配置参数文件参考)。说明指出,此更改是必需的。完成此操作后,在每个成员上重新启动IRIS
,从IRIS A
(最近成为主成员的成员)开始。-
如果成员在
IRIS
重新启动时作为备份或DR
异步加入镜像,则不需要进一步的步骤。任何在故障成员上但不在当前主成员上的日志数据都已被丢弃。 -
如果在
IRIS
实例重新启动时成员无法加入镜像,如重建镜像成员中描述的引用不一致数据的消息日志消息所示,则成员上的最新数据库更改晚于存在于上的最新日志数据IRIS C
成为主要时。要解决此问题,请按照该部分中的描述重建成员。
-
-
在大多数情况下,
DR
异步系统不是主要故障转移成员的合适永久主机。在IRIS A
和IRIS B
重新加入镜像后,使用使用升级的DR
异步临时替换故障转移成员中描述的过程将所有成员返回到它们以前的角色。如果IRIS A
或IRIS B
作为备份重新启动,则在备份处于活动状态时从正常关闭IRIS C
开始,以故障转移到备份;如果IRIS A
或IRIS B
都重新启动为DR
异步,将其中一个提升为备份,然后在IRIS C
上执行正常关闭。将另一个以前的故障转移成员提升为备份,然后将IRIS C
作为DR
异步重启。