利用 ISV 集群管理软件进行故障转移

可以使用独立软件供应商 (ISV) 集群管理软件,而不是连接管理器来管理高可用性集群环境中的故障转移处理。

如果高可用性集群中的主服务器遇到问题,需要辅助服务器充当主服务器角色,那么在执行实际的故障转移之前,在发生故障的主服务器上禁止磁盘 I/O,而在新的主服务器上允许磁盘 I/O 非常重要。 另外,必须阻止对发生故障的主服务器的网络访问。 特别是对 SD 辅助服务器,如果未正确完成这些步骤,有可能损坏磁盘。

从高可用性集群环境中的服务器启用磁盘 I/O 操作的机制称为 I/O 防护。I/O 防护通过回调脚本进行配置。 如果主服务器发生故障,在辅助服务器充当主服务器角色之前,故障转移进程会在辅助服务器上执行回调脚本。 该脚本调用特定于 I/O 的任何命令,以便启用或禁用磁盘存取。该脚本启用对要充当主服务器的服务器上共享磁盘的写访问权,并禁用对发生故障的服务器上共享磁盘的写访问权。

可以通过 FAILOVER_CALLBACK 配置参数指定当数据库服务器从辅助服务器转换为主服务器,或从辅助服务器转换为标准服务器时,要运行的脚本名称。 $GBASEDBTDIR/etc 目录中提供了一个临时脚本,名称为 ifx_failover_callback.sh (UNIX™) 。 配置后,在辅助服务器转换为主服务器或标准服务器之前,将执行由 FAILOVER_CALLBACK 指定的脚本。

可根据高可用性集群的类型执行以下操作之一来测试故障转移脚本:
  • 将 SD 辅助服务器转换为主服务器。
  • 如果 DRAUTO 配置参数设置为 0,那么关闭主服务器并将 HDR 辅助服务器转换为标准方式。
  • 如果 DRAUTO 配置参数设置为 1,那么关闭 HDR 对中的主服务器。
  • 关闭远程独立集群中的主服务器,并将 RS 辅助服务器转换为标准方式。

online.log 中包含 Invoking Failover Callback 消息,运行故障转移脚本后,其中会列出该故障转移脚本的路径和文件名。

请参阅 GBase 8s 管理员参考 中有关 FAILOVER_CALLBACK 配置参数的信息。

如果 FAILOVER_CALLBACK 指定的脚本发生故障(即,如果它返回一个非零退出码),那么从辅助服务器到主服务器(或标准服务器)的故障转移也会失败。 这样的话,DBA 必须手动执行故障转移。