更新时间:2023-09-04
功能说明
DMP支持Oracle、MySQL、PostgreSQL数据库实例的故障自愈,数据库实例发生故障(如节点异常关机、后台进程被kill)时可自动实现分钟级的修复和拉起。
MySQL主要覆盖场景如下表所示:
表 1 MySQL故障自愈主要覆盖场景
Master
|
Slave
|
判断维护模式
|
处理场景
|
说明
|
异常
|
无(单机)
|
是
|
不处理
|
|
否
|
走故障自愈场景
|
检测VM状态是否异常,并尝试进行恢复
|
异常
|
正常
|
是
|
不处理
|
|
否
|
主从切换
|
不能有其他任务正在执行,如备份任务;检测relaylog执行进度,执行完成再切换;切换完成后,需恢复旧主,并作为新的从节点加入集群;
|
异常
|
异常
|
是
|
不处理
|
|
否
|
走故障自愈场景
|
与单机架构下Master异常一致
|
优先尝试拉起Master;拉起完成同步的slave重新选为Master;拉起slave节点,重新恢复集群
|
正常
|
异常
|
是
|
不处理
|
|
否
|
自愈从节点,并加入集群
|
多次自愈未果,短时间内不再自愈;自愈后,加入失败需手动处理
|
短时间内连续故障
|
要设定触发时段,该时段内连续切换2次后,不支持再进行切换
|
Oracle主要覆盖场景如下表所示:
表 2 Oracle故障自愈覆盖场景
故障场景
|
判断维护模式
|
处理方式
|
说明
|
RAC单节点故障
|
是
|
不处理
|
|
否
|
修复故障节点
|
RAC自身机制会保障服务仍可用,但不会处理故障节点;DMP会对其进行修复并重组RAC
|
RAC两节点均故障
|
是
|
不处理
|
|
否
|
修复故障节点
|
不能此时RAC自身也无法工作,DMP会将故障节点一一拉起,并重组RAC,重启RAC服务
|
Oracle服务异常
|
是
|
不处理
|
|
否
|
修复Oracle服务
|
Oracle服务出现异常,其自身机制无法应对,DMP会介入进行修复
|
磁盘组异常
|
是
|
不处理
|
|
否
|
重新扫描磁盘
|
磁盘组出现离线等,DMP会介入重新发现尝试恢复磁盘组连接,再由RAC进行自修复
|
PostgreSQL主要覆盖场景如下表所示:
表 3 PostgreSQL故障自愈覆盖场景
Master
|
Slave
|
判断维护模式
|
处理场景
|
说明
|
异常
|
无(单机)
|
是
|
不处理
|
|
否
|
走故障自愈场景
|
检测数据库状态是否异常,识别到异常后,会重启数据库,重启数据库后会检测数据库是否异常,如果依旧异常会重启DBVM,如果依旧异常,则无法自愈
|
异常
|
正常
|
是
|
不处理
|
|
否
|
主从切换
|
不能有其他任务正在执行,如备份任务;执行完成再切换;切换完成后,需恢复旧主,并作为新的从节点加入集群;
|
异常
|
异常
|
是
|
不处理
|
|
否
|
走故障自愈场景
|
优先尝试拉起Master;与单机架构下Master异常一致
|
正常
|
异常
|
是
|
不处理
|
|
否
|
自愈从节点,并加入集群
|
从库尝试执行pg_rewind同步主库数据,如果pg_rewind失败,会执行pg_basebackup重做从库
|
前提条件
数据库状态为“运行中”。
注意事项
- 数据库未进入“维护模式”。
- 故障自愈功能默认为开启状态。
操作步骤
在[数据库]页面,点击对应数据库名称,跳转至[数据库详情/故障自愈]页面,打开<故障自愈>开关,点击<保存>按钮,完成故障自愈配置。