云原生内存数据库Tair支持节点健康状态监测,当监测到实例中的主节点不可用时,会自动触发主备切换,例如将主节点和从节点进行互换,保障实例的高可用性。除此之外,云原生内存数据库Tair还支持手动触发主备切换,可用于容灾演练或多可用区场景下的就近连接等需求。
触发原因
- 手动触发
您或者您授权的阿里云技术专家手动触发的主备切换。具体操作,请参见手动执行主备切换。
- 风险隐患触发
阿里云检测到实例存在潜在风险,此类风险可能会在未来影响实例的正常使用。系统会自动下发主动运维任务来处理此类风险项,并在可维护时间段触发主备切换,替换掉存在风险的节点。紧急风险修复类事件通常会在第一时间修复并触发主备切换。
您可以在历史事件中查询到此类触发方式的记录,更多信息请参见查询历史事件。您也可以管理待处理的主备切换事件,更多信息请参见查看并管理待处理事件。
- 实例故障触发
阿里云检测到实例发生故障,无法正常使用时,系统会立即触发主备切换,及时恢复实例,降低故障影响时长。
此类触发方式会以短信或站内信、邮件等形式通知到您,通知示例如下:
【阿里云】尊敬的****:您的云原生内存数据库Tair实例:r-bp1zxszhcgatnx****(名称:****)出现异常,高可用系统已经触发切换,确保实例稳定运行。请检查程序连接是否正常,建议设置自动重连机制以避免切换影响。
切换影响
触发原因 | 影响 |
---|---|
手动触发 |
|
风险隐患触发 | |
实例故障触发 |
|
说明 完成主备切换后,实例状态会显示为运行中。
操作建议
- 请提前为您的应用设计重连机制和异常处理的能力,否则业务应用可能在实例切换阶段产生间歇性的异常信息,例如:
READONLY You can't write against a read only instance
或DISABLE You can't write or read against a disable instance
。 - 当实例触发主备切换后,实例会自动完成完整的切换流程,您无需进行任何操作。
说明 双可用区实例在主备切换后,主节点位于备可用区、备节点位于主可用区,此时可能产生实例与其他业务跨机房访问的情况。如需解决上述问题,您可以手动切换可用区。
常见问题
- Q:实例故障触发主备切换的原理是什么?
A:依赖高可用HA(High Availability)系统的探活机制实现故障检测,具体如下:
主要事件 说明 健康检测 HA系统会探测确认主备节点健康状态。 主节点异常 - 发现主节点不可用,会将备节点提升为主节点,同时将虚拟IP地址VIP(Virtual IP Address)切换至备节点,但不会变更实例连接地址。
- 创建新的备节点并完成数据同步。
备节点异常 发现备节点不可用,HA系统将自动创建新的备节点并完成数据同步,保障主备双副本架构的持续性。 说明 由于主备节点间的同步数据是异步实现的,可能会丢失主节点最近写入的部分数据。 - Q:实例为读写分离架构时,主备切换对只读节点的使用有影响吗?
A:不影响。
- Q:实例为集群架构时,切换某个数据分片中的主备节点对实例整体有什么影响?
A:不会影响整体实例,仅影响该数据分片,具体信息,请参见切换影响。