本主题介绍运行版本 9.0.0 或更高版本的设备的数据库故障切换功能。对于这些设备,故障切换完全自动执行,但服务提供程序设备意外关闭的情况除外,在这种情况下仍需执行手动过程。
注: 本主题仅适用于运行版本 9.0.0 或更高版本的设备。有关旧版设备的信息,请参阅
数据库故障切换 - 旧版设备。
自动故障切换
自动故障切换功能包括以下功能。
- 单个数据源连接 - 所有设备现在使用通过新 pgbouncer 服务代理的单个数据源连接。pgbouncer 是一个连接池程序,可保持与底层 postgres 数据库的连接,同时提供单个连接点以供设备服务使用。此服务还处理所有故障切换和主节点迁移;它会自动更新以指向新的主数据库,从而在主节点之间实现无缝转换。
- 设备关闭或重新启动时对主数据库进行受控切换 - 在客户机对当前数据库主节点启动的任何关闭或重新启动操作期间,主节点角色将以受控方式迁移到 HA 对中的另一设备。此操作只会轻微干扰设备的正常运行,主要会影响通过 Blast (Web) 门户建立的桌面连接。通过 Horizon Client 建立的桌面连接则不会受到影响。此外,还会出现 horizonadmin 在短暂时间内不可用的情况,因此,在切换期间请求桌面连接的用户可能会收到一条错误,指示没有可用的桌面(但稍后重试时,应该会允许用户连接到桌面)。
- 租户设备出现意外故障时对主数据库执行自动故障切换 - 现在会自动检测主节点故障,之后向服务提供程序设备发出请求,以验证设备是否确实已关闭。然后,将在延迟三分钟后启动故障切换过程。与过去的故障切换过程相比,新的故障切换过程的破坏性较小,可使 slony 集群随后处于正常复制状态,如此一来,在发生故障切换后,便无需重新初始化 slony。
这些功能受下述服务支持。
服务 | 描述 | 日志位置 | 注释 |
---|---|---|---|
Pgbouncer | 连接池程序,可代理平台服务与 postgres 之间的数据库连接。 | /var/log/pgbouncer/ |
|
Dbmonitor | 监控服务,可执行以下操作:
|
/var/log/dbmonitor/ | |
切换 | 在关机时运行脚本以执行切换操作。 | /var/log/desktone/slony-services | |
重新订阅 | 在启动时运行脚本以执行重新订阅操作。 | /var/log/desktone/slony-services |
服务提供程序设备的手动故障切换
如果服务提供程序设备意外关闭,您可以通过对其他服务提供程序设备执行以下步骤来执行手动故障切换。
- 以 root 用户身份运行 failover-slony-master 脚本(位于 /usr/local/desktone/scripts/ 中):
failover-slony-master <database type> '<database password>'
其中 <database type> 为 fdb、edb 或 avdb。 - 确认 pgbouncer.ini 文件指向当前设备的前端 IP 地址:
/usr/local/desktone/scripts# grep '<IP address>' /etc/pgbouncer/pgbouncer.ini
- 重新加载 pgbouncer 服务:
service pgbouncer reload
- 通过运行 slony-status,确认主节点状态和复制:
/usr/local/desktone/scripts# slony-status <org #>